Dokumen ini menjelaskan cara menginstal Kf dan dependensinya di cluster lokal GKE di VMware atau GKE di Bare Metal.
Jika Anda sudah terbiasa dengan proses penginstalan Kf di cluster GKE di Google Cloud, perbedaan utama untuk prosedur lokal adalah:
- Anda tidak perlu menginstal Config Connector untuk penginstalan lokal.
- Prosedur lokal menggunakan kredensial Docker, bukan Workload Identity.
Sebelum memulai
Persyaratan GKE di VMware
Cluster pengguna untuk GKE di VMware yang memenuhi persyaratan Anthos Service Mesh.
Dikonfigurasi untuk logging dan pemantauan.
Terdaftar di fleet GKE Enterprise Anda:
Pelajari cara mendaftarkan cluster.
Persyaratan Kf
Tinjau dan pahami izin akses komponen dalam Kf di halaman dependensi dan arsitektur Kf.
Tekton untuk digunakan oleh Kf. Layanan ini bukan layanan yang ditampilkan kepada pengguna.
Akun Layanan Google khusus.
Menyiapkan GKE baru di cluster VMware dan layanan terkait
Menyiapkan variabel lingkungan
Linux dan Mac
export PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=kf-cluster export COMPUTE_ZONE=us-central1-a export COMPUTE_REGION=us-central1 export CLUSTER_LOCATION=${COMPUTE_ZONE} # Replace ZONE with REGION to switch export NODE_COUNT=4 export MACHINE_TYPE=e2-standard-4 export NETWORK=default export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=kf-cluster export DOCKER_SERVER=YOUR_DOCKER_SERVER_URL export SA_NAME=${CLUSTER_NAME}-sa export SA_EMAIL=${SA_NAME}@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Windows PowerShell
Set-Variable -Name PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_NAME -Value kf-cluster Set-Variable -Name COMPUTE_ZONE -Value us-central1-a Set-Variable -Name COMPUTE_REGION -Value us-central1 Set-Variable -Name CLUSTER_LOCATION -Value $COMPUTE_ZONE # Replace ZONE with REGION to switch Set-Variable -Name NODE_COUNT -Value 4 Set-Variable -Name MACHINE_TYPE -Value e2-standard-4 Set-Variable -Name NETWORK -Value default Set-Variable -Name CLUSTER_PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_NAME -Value kf-cluster Set-Variable -Name DOCKER_SERVER -Value YOUR_DOCKER_SERVER_URL Set-Variable -Name SA_NAME -Value ${CLUSTER_NAME}-sa Set-Variable -Name SA_EMAIL -Value ${SA_NAME}@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Menyiapkan akun layanan
Buat akun layanan Google Cloud (GSA) dan kunci akun layanan yang digunakan untuk build agar dapat membaca/menulis dari Container Registry. Langkah ini berbeda jika Anda menggunakan container registry yang berbeda karena cara mendapatkan kredensial untuk mengakses registry juga berbeda.
Buat akun layanan yang digunakan oleh Kf:
gcloud beta iam service-accounts create ${SA_NAME} \ --project=${CLUSTER_PROJECT_ID} \ --description="gcr.io admin for ${CLUSTER_NAME}" \ --display-name="${CLUSTER_NAME}"
Tetapkan peran
storage.admin
yang diperlukan untuk membaca/menulis dari Container Registry untuk akun layanan:gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:${SA_NAME}@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/storage.admin"
Buat kunci akun layanan:
temp_dir=$(mktemp -d)
key_path=${temp_dir}/key.json
gcloud iam service-accounts keys create --iam-account ${SA_EMAIL} ${key_path}
key_json=$(cat ${key_path})
rm -rf ${temp_dir}
Menginstal dependensi software pada cluster
Instal Anthos Service Mesh.
Ikuti panduan penginstalan Anthos Service Mesh untuk menginstal Anthos Service Mesh.
Jika berada di GKE di VMware, tetapkan
loadBalancerIP
ke IP yang dialokasikan ke cluster seperti yang dijelaskan dalam Mengonfigurasi alamat IP eksternal untuk GKE di VMware.
Instal Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.26.0/release.yaml"
Instal Kf
Instal Kf CLI:
Linux
Perintah ini menginstal Kf CLI untuk semua pengguna di sistem. Ikuti petunjuk di tab Cloud Shell untuk menginstalnya sendiri.
gsutil cp gs://kf-releases/v2.6.1/kf-linux /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Mac
Perintah ini menginstal
kf
untuk semua pengguna pada sistem.gsutil cp gs://kf-releases/v2.6.1/kf-darwin /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Cloud Shell
Perintah ini menginstal
kf
pada instance Cloud Shell jika Anda menggunakanbash
, petunjuk mungkin perlu diubah untuk shell lainnya.mkdir -p ~/bin
gsutil cp gs://kf-releases/v2.6.1/kf-linux ~/bin/kf
chmod a+x ~/bin/kf
echo "export PATH=$HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
Windows
Perintah ini akan mendownload
kf
ke direktori saat ini. Tambahkan ke jalur jika Anda ingin memanggilnya dari mana saja selain direktori saat ini.gsutil cp gs://kf-releases/v2.6.1/kf-windows.exe kf.exe
Instal operator:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.6.1/operator.yaml"
Konfigurasikan operator untuk Kf:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.6.1/kfsystem.yaml"
Membuat rahasia Kubernetes untuk kredensial Docker
Buat rahasia Kubernetes di namespace Kf untuk kredensial Docker yang Anda buat di atas di Penyiapan akun layanan. Kemudian, patch rahasia Kubernetes ke deployment subresource-apiserver
untuk upload sumber.
Mengaktifkan dan memperbarui operator Kf untuk menggunakan Container Registry sebagai container registry.
export CONTAINER_REGISTRY=gcr.io/${CLUSTER_PROJECT_ID}
kubectl patch kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': true, 'config': {'spaceContainerRegistry':'${CONTAINER_REGISTRY}'}}}]"
Pastikan namespace
kf
telah dibuat oleh operator Kf. Mungkin perlu waktu beberapa menit untuk menyelesaikan prosesnya.kubectl get namespace kf
Buat rahasia Kubernetes untuk digunakan dengan registry Docker.
export secret_name=kf-gcr-key-${RANDOM}
kubectl -n kf create secret docker-registry ${secret_name} \ --docker-username=_json_key --docker-server ${DOCKER_SERVER} \ --docker-password="${key_json}"
Perbarui operator Kf untuk menentukan rahasia yang berisi kredensial Docker.
kubectl patch kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'config': {'secrets':{'build':{'imagePushSecrets':'${secret_name}'}}}}}]"
Memvalidasi penginstalan
kf doctor --retries=20