Dokumen ini menjelaskan cara menyiapkan cluster GKE, lalu menginstal Kf dan dependensinya menggunakan fitur baru dalam pratinjau.
- Kf akan menggunakan stack yang digabungkan v2 baru untuk memberikan manfaat buildpack berbasis cloud bagi aplikasi lama.
- Menghapus Config Connector sebagai dependensi.
- Menghapus peran IAM khusus
serviceAccountUpdater
.
Sebelum memulai
Persyaratan cluster GKE
Opsional, tetapi direkomendasikan, cluster harus dikhususkan untuk Kf. Sebaiknya Anda hanya menginstal Kf dan dependensinya untuk memastikan matriks kompatibilitas tetap dipertahankan.
Minimal empat node. Jika Anda perlu menambahkan node, lihat Mengubah ukuran cluster.
Jenis mesin minimum yang memiliki setidaknya empat vCPU, seperti
e2-standard-4
. Jika jenis mesin untuk cluster Anda tidak memiliki setidaknya empat vCPU, ubah jenis mesin seperti yang dijelaskan dalam Memigrasikan workload ke jenis mesin yang berbeda.Opsional, tetapi direkomendasikan, daftarkan cluster di saluran rilis. Ikuti petunjuk di Mendaftarkan cluster yang ada di saluran rilis jika Anda memiliki versi GKE statis.
Workload Identity diaktifkan.
Persyaratan Kf
Tinjau dan pahami izin akses komponen di Kf di halaman dependensi dan arsitektur Kf.
Matriks dependensi mencantumkan versi tertentu.
Tekton untuk digunakan oleh Kf; ini bukan layanan yang ditujukan untuk pengguna
Akun Layanan Google khusus
Mengaktifkan dukungan untuk Compute Engine
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
- Aktifkan Compute Engine API.
- Aktifkan Artifact Registry API.
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
. Buat akun layanan yang akan digunakan Kf.
gcloud iam service-accounts create ${CLUSTER_NAME}-sa \ --project=${CLUSTER_PROJECT_ID} \ --description="GSA for Kf ${CLUSTER_NAME}" \ --display-name="${CLUSTER_NAME}"
Berikan peran metrik pemantauan ke akun layanan untuk akses tulis ke Cloud Monitoring.
gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}." \ --role="roles/monitoring.metricWriter"
Berikan peran logging ke akun layanan untuk akses tulis ke Cloud Logging.
gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}." \ --role="roles/logging.logWriter"
Buat Artifact Registry untuk menyimpan image container.
gcloud artifacts repositories create ${CLUSTER_NAME} \ --project=${CLUSTER_PROJECT_ID} \ --repository-format=docker \ --location=${COMPUTE_REGION}
Berikan izin akun layanan di repositori Artifact Registry.
gcloud artifacts repositories add-iam-policy-binding ${CLUSTER_NAME} \ --project=${CLUSTER_PROJECT_ID} \ --location=${COMPUTE_REGION} \ --member="serviceAccount:${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}." \ --role='roles/artifactregistry.writer'
Instal Cloud Service Mesh.
Setelah menginstal Cloud Service Mesh, Anda harus membuat gateway ingress menggunakan panduan penginstalan gateway.
Instal Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.29.0/release.yaml"
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 sendiri.
gcloud storage cp gs://kf-releases/v2.7.3/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 di sistem.gcloud storage cp gs://kf-releases/v2.7.3/kf-darwin /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Cloud Shell
Perintah ini menginstal
kf
di instance Cloud Shell Anda jika Anda menggunakanbash
, petunjuknya mungkin perlu diubah untuk shell lainnya.mkdir -p ~/bin
gcloud storage cp gs://kf-releases/v2.7.3/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.gcloud storage cp gs://kf-releases/v2.7.3/kf-windows.exe kf.exe
Instal operator:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.7.3/operator.yaml"
Instal Kf
AppDevExperience Build
(ADX Build).export CONTAINER_REGISTRY=${COMPUTE_REGION}-docker.pkg.dev/${CLUSTER_PROJECT_ID}/${CLUSTER_NAME}
cat << EOF | kubectl apply --filename - apiVersion: builds.appdevexperience.dev/v1alpha1 kind: BuildSystem metadata: name: buildsystem spec: secrets: workloadidentity: googleprojectid: ${CLUSTER_PROJECT_ID} googleserviceaccount: ${CLUSTER_NAME}-sa containerRegistry: ${CONTAINER_REGISTRY} enabled: true EOF
Konfigurasi Build ADX untuk Workload Identity.
gcloud iam service-accounts add-iam-policy-binding \ --project=${CLUSTER_PROJECT_ID} \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:${CLUSTER_PROJECT_ID}.svc.id.goog[adx-builds-system/controller]" \ "${GSA_NAME}@${CLUSTER_PROJECT_ID}."
Konfigurasi operator untuk Kf:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.7.3/kfsystem.yaml"
Menyiapkan secret dan default:
export CONTAINER_REGISTRY=${COMPUTE_REGION}-docker.pkg.dev/${CLUSTER_PROJECT_ID}/${CLUSTER_NAME} kubectl patch \ kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': true, 'config': {'featureFlags': {'enable_appdevexperience_builds': true}, 'spaceContainerRegistry': '${CONTAINER_REGISTRY}', 'secrets':{'workloadidentity':{'googleserviceaccount':'${CLUSTER_NAME}-sa', 'googleprojectid':'${CLUSTER_PROJECT_ID}'}}}}}]"
Hapus Akun Layanan Google:
gcloud iam service-accounts delete ${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.
Hapus binding kebijakan IAM:
gcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}." \ --role="roles/iam.serviceAccountAdmin"
gcloud projects remove-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}." \ --role="roles/monitoring.metricWriter"
Hapus repositori image container:
gcloud artifacts repositories delete ${CLUSTER_NAME} \ --location=${COMPUTE_REGION}
Meng-uninstal Kf:
kubectl patch kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': false, }}]"
Hapus cluster GKE:
gcloud container clusters delete ${CLUSTER_NAME} --zone ${CLUSTER_LOCATION}
Mengaktifkan dukungan untuk Artifact Registry
Mengaktifkan dan mengonfigurasi GKE
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
Menyiapkan cluster GKE 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
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
Menyiapkan akun layanan
Buat akun layanan Google Cloud yang akan dikaitkan dengan Akun Layanan Kubernetes melalui Workload Identity. Hal ini mencegah kebutuhan untuk membuat dan menyuntikkan kunci akun layanan.
Buat cluster GKE
gcloud container clusters create ${CLUSTER_NAME} \ --project=${CLUSTER_PROJECT_ID} \ --zone=${CLUSTER_LOCATION} \ --num-nodes=${NODE_COUNT} \ --machine-type=${MACHINE_TYPE} \ --disk-size "122" \ --network=${NETWORK} \ --addons HorizontalPodAutoscaling,HttpLoadBalancing,GcePersistentDiskCsiDriver \ --enable-dataplane-v2 \ --enable-stackdriver-kubernetes \ --enable-ip-alias \ --enable-autorepair \ --enable-autoupgrade \ --scopes cloud-platform \ --release-channel=regular \ --workload-pool="${CLUSTER_PROJECT_ID}.svc.id.goog" \ --service-account="${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}."
Menetapkan aturan firewall
Kf memerlukan beberapa port firewall agar terbuka. Node master harus dapat berkomunikasi dengan pod di port 80, 443, 8080, 8443, dan 6443.
Aktifkan Workload Identity
Setelah memiliki akun layanan dan cluster GKE, kaitkan namespace identitas cluster dengan cluster.
gcloud iam service-accounts add-iam-policy-binding \ --project=${CLUSTER_PROJECT_ID} \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:${CLUSTER_PROJECT_ID}.svc.id.goog[kf/controller]" \ "${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}." gcloud iam service-accounts add-iam-policy-binding \ --project=${CLUSTER_PROJECT_ID} \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:${CLUSTER_PROJECT_ID}.svc.id.goog[cnrm-system/cnrm-controller-manager]" \ "${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}."
Cluster GKE target
Konfigurasi akses command line kubectl dengan menjalankan perintah berikut.
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --project=${CLUSTER_PROJECT_ID} \ --zone=${CLUSTER_LOCATION}
Membuat repositori Artifact Registry
Menginstal dependensi software di cluster
Menginstal Kf
Memvalidasi penginstalan
kf doctor --retries=20
Pembersihan
Langkah-langkah ini akan menghapus semua komponen yang dibuat di bagian Buat dan siapkan cluster GKE baru.