Dokumen ini menjelaskan cara menginstal Kf dan dependensinya di cluster lokal Google Distributed Cloud atau Google Distributed Cloud.
Jika Anda sudah terbiasa dengan proses penginstalan Kf di cluster GKE di Google Cloud, perbedaan utama untuk prosedur on-premise adalah:
- Anda tidak perlu menginstal Config Connector untuk penginstalan di infrastruktur lokal.
- Prosedur on-premise menggunakan kredensial Docker, bukan Workload Identity.
Sebelum memulai
Persyaratan GKE Enterprise
Cluster pengguna yang memenuhi persyaratan Cloud 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 di Kf di halaman dependensi dan arsitektur Kf.
Tekton untuk digunakan oleh Kf. Ini bukan layanan yang ditampilkan kepada pengguna.
Akun Layanan Google khusus.
Menyiapkan cluster GKE Enterprise baru 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.comWindows 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.comMenyiapkan akun layanan
Buat Google Cloud akun layanan (GSA) dan kunci akun layanan yang digunakan untuk build agar dapat membaca/menulis dari Container Registry. Langkah ini berbeda jika Anda menggunakan registry penampung yang berbeda karena registry tersebut dapat memiliki cara yang berbeda untuk mendapatkan kredensial guna mengakses registry.
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.adminyang diperlukan untuk membaca/menulis dari Container Registry ke 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.jsongcloud iam service-accounts keys create --iam-account ${SA_EMAIL} ${key_path}key_json=$(cat ${key_path})rm -rf ${temp_dir}
Menginstal dependensi software di cluster
Instal Cloud Service Mesh v1.12.
Setelah menginstal Cloud Service Mesh, Anda harus membuat gateway ingress menggunakan panduan penginstalan gateway.
Jika di Google Distributed Cloud, tetapkan
loadBalancerIPke IP yang dialokasikan ke cluster seperti yang dijelaskan dalam Mengonfigurasi alamat IP eksternal untuk Google Distributed Cloud.
Instal Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.29.0/release.yaml"
Menginstal Kf
Instal Kf CLI:
Linux
Perintah ini menginstal Kf CLI untuk semua pengguna di sistem. Ikuti petunjuk di tab Cloud Shell untuk menginstalnya hanya untuk Anda.
gcloud storage cp gs://kf-releases/v2.7.3/kf-linux /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfMac
Perintah ini menginstal
kfuntuk semua pengguna di sistem.gcloud storage cp gs://kf-releases/v2.7.3/kf-darwin /tmp/kfchmod a+x /tmp/kfsudo mv /tmp/kf /usr/local/bin/kfCloud Shell
Perintah ini menginstal
kfdi instance Cloud Shell Anda jika Anda menggunakanbash, petunjuk mungkin perlu diubah untuk shell lain.mkdir -p ~/bingcloud storage cp gs://kf-releases/v2.7.3/kf-linux ~/bin/kfchmod a+x ~/bin/kfecho "export PATH=$HOME/bin:$PATH" >> ~/.bashrcsource ~/.bashrcWindows
Perintah ini mendownload
kfke direktori saat ini. Tambahkan ke jalur jika Anda ingin memanggilnya dari mana saja selain direktori saat ini.gcloud storage cp gs://kf-releases/v2.7.3/kf-windows.exe kf.exeInstal operator:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.7.3/operator.yaml"
Konfigurasikan operator untuk Kf:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.7.3/kfsystem.yaml"
Membuat secret Kubernetes untuk kredensial Docker
Buat secret Kubernetes di namespace Kf untuk kredensial Docker
yang Anda buat di atas di Penyiapan akun layanan. Kemudian, patch secret Kubernetes ke deployment subresource-apiserver untuk upload sumber.
Aktifkan dan perbarui operator Kf untuk menggunakan Container Registry sebagai registry container.
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
kftelah dibuat oleh operator Kf. Mungkin perlu waktu beberapa menit untuk menyelesaikan prosesnya.kubectl get namespace kf
Buat secret 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 secret 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