Terapkan konfigurasi ke cluster
Gunakan langkah-langkah berikut untuk menginstal Apigee Hybrid ke dalam cluster Anda:
- Pastikan Anda berada di direktori
hybrid-base-directory/hybrid-files.cd $HYBRID_FILES
- Pastikan
kubectldisetel ke konteks yang benar menggunakan perintah berikut. Konteks saat ini harus disetel ke cluster tempat Anda men-deploy Apigee hybrid.kubectl config current-context
Hasilnya harus menyertakan nama cluster tempat Anda men-deploy Apigee hybrid. Misalnya, di GKE, nama konteks biasanya dalam bentuk
gke_project-id_cluster-location_cluster-name, seperti dalam:gke_my-project_us-central1_my-cluster
Jika nama cluster dalam konteks tidak cocok, perintah berikut akan mendapatkan kredensial
gcloudcluster dan menetapkan kontekskubectl:Cluster regional
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID
Cluster zona
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- Khusus untuk platform Anthos di bare metal, AWS di GKE, EKS, dan GKE secara lokal, Verifikasi
bahwa variabel
KUBECONFIGdisetel menggunakan perintah berikut:echo ${KUBECONFIG} - Lakukan inisialisasi uji coba. Dengan melakukan uji coba, Anda dapat memeriksa apakah ada error sebelum
perubahan dilakukan pada cluster. Jalankan perintah
initdengan flag--dry-runsebagai berikut:${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml --dry-run=client - Jika tidak ada error, jalankan perintah
initsebagai berikut:${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yamlPerintah
initmenginstal layanan deployment Apigee Apigee Deployment Controller dan Apigee Admission Webhook. - Untuk memeriksa status deployment, Anda dapat menggunakan perintah berikut:
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yamlkubectl get pods -n apigee-system
kubectl get pods -n apigee
Setelah pod siap, lanjutkan ke langkah berikutnya.
- Lakukan penginstalan uji coba. Jalankan perintah
applydengan flag--dry-run.${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --dry-run=client -
Jika tidak ada error, Anda dapat menerapkan
komponen runtime khusus Apigee ke cluster dengan perintah berikut:
${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml - Untuk memeriksa status deployment, jalankan perintah berikut:
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yamlUlangi langkah ini hingga semua pod siap. Pod mungkin memerlukan waktu beberapa menit untuk dimulai.
GKE dengan Workload Identity
Jika Anda menggunakan Workload Identity di GKE, ikuti petunjuk ini untuk mengaitkan akun layanan Kubernetes yang dibuat oleh apigeectl dengan akun layanan Google yang Anda buat di Langkah 4: Buat akun layanan dan kredensial.
Prosedur ini menggunakan variabel lingkungan berikut. Tetapkan nilai ini di shell perintah atau ganti di contoh kode dengan nilai sebenarnya:
APIGEECTL_HOME: Direktori tempat Anda menginstalapigeectl.CLUSTER_LOCATION: Region atau zona cluster Anda, misalnya:us-west1.CLUSTER_LOCATION: Nama cluster Anda.ENV_NAME: Nama lingkungan Apigee.NAMESPACE: namespace Apigee Anda. Secara default,apigee.HYBRID_FILES: Direktori file hybrid Anda, misalnyahybrid-base-directory/hybrid-files.ORG_NAME: Nama organisasi Apigee Anda.PROJECT_ID: ID project Google Cloud Anda.
Verifikasi variabel lingkungan:
echo $APIGEECTL_HOMEecho $CLUSTER_LOCATIONecho $ENV_NAMEecho $HYBRID_FILESecho $NAMESPACEecho $ORG_NAMEecho $PROJECT_ID
Lakukan inisialisasi variabel yang Anda butuhkan:
export APIGEECTL_HOME=hybrid-base-directory/apigeectlexport CLUSTER_LOCATION=my-cluster-locationexport ENV_NAME=my-environment-nameexport HYBRID_FILES=hybrid-base-directory/hybrid-filesexport NAMESPACE=apigeeexport ORG_NAME=$PROJECT_IDexport PROJECT_ID=my-project-id
- Opsional: Hapus file kunci akun layanan.
Saat menjalankan Apigee hybrid di GKE, praktik standarnya adalah membuat dan mendownload kunci pribadi (file
.json) untuk setiap akun layanan. Saat menggunakan Workload Identity, Anda tidak perlu mendownload kunci pribadi akun layanan dan menambahkannya ke cluster GKE.Anda dapat menghapus file kunci dengan perintah berikut:
rm $HYBRID_FILES/service-accounts/*.json
- Periksa apakah konfigurasi
gcloudsaat ini ke project ID Google Cloud Anda dengan perintah berikut:gcloud config get project
- Buat akun layanan Kubernetes
apigee-cassandra-restore.Saat Anda menerapkan konfigurasi dengan menjalankan
apigeectl apply, perintah membuat sebagian besar akun layanan Kubernetes yang diperlukan untuk workload identity.Untuk membuat akun layanan Kubernetes
apigee-cassandra-restore, jalankanapigeectl applydengan tanda--restore:$APIGEECTL_HOME/apigeectl apply -f $HYBRID_FILES/overrides/overrides.yaml --restore
- Pastikan Workload Identity diaktifkan untuk Cluster GKE Anda. Saat Anda membuat cluster
di Langkah 1: Buat cluster, langkah 6 adalah Mengaktifkan
Workload Identity. Anda dapat mengonfirmasi apakah Workload Identity diaktifkan dengan menjalankan
perintah berikut:
Cluster regional
gcloud container clusters describe $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten 'workloadIdentityConfig'
Cluster zona
gcloud container clusters describe $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten 'workloadIdentityConfig'
Jika Workload Identity diaktifkan untuk cluster, output-nya akan terlihat seperti berikut:
--- workloadPool: PROJECT_ID.svc.id.goog
Jika Anda melihat
nulldi hasil, jalankan perintah berikut untuk mengaktifkan Workload Identity untuk cluster Anda:Cluster regional
gcloud container clusters update $CLUSTER_NAME \ --workload-pool=$PROJECT_ID.svc.id.goog \ --project $PROJECT_ID \ --region $CLUSTER_LOCATION
Cluster zona
gcloud container clusters update $CLUSTER_NAME \ --workload-pool=$PROJECT_ID.svc.id.goog \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- Verifikasi bahwa Workload Identity diaktifkan di node pool Anda dengan perintah berikut:
Cluster regional
gcloud container node-pools describe apigee-data \ --cluster $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
gcloud container node-pools describe apigee-runtime \ --cluster $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
Cluster zona
gcloud container node-pools describe apigee-data \ --cluster $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
gcloud container node-pools describe apigee-runtime \ --cluster $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
Output Anda akan terlihat seperti ini:
--- diskSizeGb: 100 diskType: pd-standard ... workloadMetadataConfig: mode: GKE_METADATAJika output Anda tidak berisi baris untuk
workloadMetadataConfig:, aktifkan Workload Identity untuk setiap node pool dengan perintah berikut. Operasi ini dapat memerlukan waktu hingga 30 menit:Cluster regional
gcloud container node-pools update NODE_POOL_NAME \ --cluster=$CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --workload-metadata=GKE_METADATA
Cluster zona
gcloud container node-pools update NODE_POOL_NAME \ --cluster=$CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --workload-metadata=GKE_METADATA
Dengan NODE_POOL_NAME adalah nama setiap node pool. Pada sebagian besar penginstalan Apigee hybrid, dua kumpulan node default diberi nama
apigee-datadanapigee-runtime. - Periksa nama akun layanan Google untuk project Anda dengan perintah berikut:
gcloud iam service-accounts list --project $PROJECT_ID
Output Anda akan terlihat seperti ini:
Non-prod
Untuk lingkungan non-produksi:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my_project_id.iam.gserviceaccount.com False
Prod
Untuk lingkungan non-produksi:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my_project_id.iam.gserviceaccount.com False apigee-logger apigee-logger@my_project_id.iam.gserviceaccount.com False apigee-mart apigee-mart@my_project_id.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my_project_id.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my_project_id.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my_project_id.iam.gserviceaccount.com False apigee-udca apigee-udca@my_project_id.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my_project_id.iam.gserviceaccount.com False
- Verifikasi akun layanan dengan perintah berikut:
kubectl get sa -n $NAMESPACE
Output Anda akan terlihat seperti berikut. Akun layanan Kubernetes yang ditandai dengan huruf tebal adalah akun yang perlu Anda anotasi dengan akun layanan Google Anda:
NAME SECRETS AGE apigee-cassandra-backup 1 11m apigee-cassandra-restore 1 11m apigee-cassandra-schema-setup-my-project-id-123abcd-sa 1 11m apigee-cassandra-schema-val-my-project-id-123abcd 1 11m apigee-cassandra-user-setup-my-project-id-123abcd-sa 1 11m apigee-connect-agent-my-project-id-123abcd-sa 1 11m apigee-datastore-default-sa 1 11m apigee-ingressgateway 1 11m apigee-ingressgateway-my-project-id-123abcd 1 11m apigee-ingressgateway-manager 1 11m apigee-init 1 11m apigee-mart-my-project-id-123abcd-sa 1 11m apigee-metrics-sa 1 11m apigee-mint-task-scheduler-my-project-id-123abcd-sa 1 11m apigee-redis-default-sa 1 11m apigee-redis-envoy-default-sa 1 11m apigee-runtime-my-project-id-env-name-234bcde-sa 1 11m apigee-synchronizer-my-project-id-env-name-234bcde-sa 1 11m apigee-udca-my-project-id-123abcd-sa 1 11m apigee-udca-my-project-id-env-name-234bcde-sa 1 11m apigee-watcher-my-project-id-123abcd-sa 1 11m default 1 11m -
Untuk setiap komponen Apigee, anotasikan akun layanan Kubernetes yang sesuai dengan
akun layanan Google untuk komponen tersebut.
Langkah-langkah berikut menggunakan dua variabel lingkungan. Anda akan mereset nilai variabel ini sebelum setiap set perintah:
- GSA_NAME: Nama akun layanan Google. Ini adalah
akun layanan yang Anda buat dengan alat
create-service-accountdi Langkah 4: Buat akun layanan. - KSA_NAME: Nama akun layanan Kubernetes. Akun tersebut adalah
akun yang Anda cantumkan di atas dengan perintah
kubectl get sa -n $NAMESPACE, misalnya:apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa.
- GSA_NAME: Nama akun layanan Google. Ini adalah
akun layanan yang Anda buat dengan alat
- Cassandra
Komponen Cassandra memiliki enam akun layanan Kubernetes terkait:
apigee-cassandra-backupapigee-cassandra-restoreapigee-cassandra-schema-setupapigee-cassandra-schema-val(val= validasi)apigee-cassandra-user-setupapigee-datastore-default
Non-prod
Langkah-langkah berikut menggunakan dua variabel lingkungan. Anda akan mereset nilai variabel ini sebelum setiap set perintah:
- GSA_NAME: Nama akun layanan Google. Ini adalah
akun layanan yang Anda buat dengan alat
create-service-accountdi Langkah 4: Buat akun layanan. - KSA_NAME: Nama akun layanan Kubernetes. Akun tersebut adalah akun yang Anda cantumkan di atas dengan perintah
kubectl get sa -n $NAMESPACE.
apigee-cassandra-backupAkun layanan Kubernetes- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME:GSA_NAME="apigee-non-prod"
KSA_NAME="apigee-cassandra-backup" - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Output Anda akan memiliki baris yang menjelaskan anotasi, seperti:
Annotations: iam.gke.io/gcp-service-account: apigee-non-prod@my-project-id.iam.gserviceaccount.com
apigee-cassandra-restoreAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME:KSA_NAME="apigee-cassandra-restore"
- Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-setupAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-valAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-cassandra-schema-val-service-account-name"
apigee-cassandra-schema-val-hybrid-example-project-123abcd. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setupAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-saAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME:KSA_NAME="apigee-datastore-default-sa"
- Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
apigee-cassandra-backupAkun layanan Kubernetes- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME:GSA_NAME="apigee-cassandra"
KSA_NAME="apigee-cassandra-backup" - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Output Anda akan memiliki baris yang menjelaskan anotasi, mirip dengan:
Annotations: iam.gke.io/gcp-service-account: apigee-cassandra@my-project-id.iam.gserviceaccount.com
apigee-cassandra-restoreAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME:KSA_NAME="apigee-cassandra-restore"
- Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
apigee-cassandra-schema-setupAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa. - Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
apigee-cassandra-schema-valAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-cassandra-schema-val-service-account-name"
apigee-cassandra-schema-val-hybrid-example-project-123abcd. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setupAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-saAkun layanan Kubernetes- Tentukan ulang variabel lingkungan
KSA_NAME:KSA_NAME="apigee-datastore-default-sa"
- Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Apigee Connect
Non-prod
- Tentukan variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-connect-agent-service-account-name-sa"
apigee-connect-agent-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME: misalnya:GSA_NAME="apigee-mart"
KSA_NAME="apigee-connect-agent-service-account-name-sa"apigee-connect-agent-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- MART
Non-prod
- Tentukan variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-mart-service-account-name-sa"
apigee-mart-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME: misalnya:GSA_NAME="apigee-mart"
KSA_NAME="apigee-mart-service-account-name-sa"apigee-mart-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- Metrik Apigee
Non-prod
- Tentukan variabel lingkungan
KSA_NAME:KSA_NAME="apigee-metrics-sa"
- Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME:GSA_NAME="apigee-metrics"
KSA_NAME="apigee-metrics-sa" - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- UDCA (tingkat organisasi)
UDCA diimplementasikan dalam cakupan tingkat organisasi dan tingkat lingkungan. Oleh karena itu, ada dua akun layanan Kubernetes terpisah untuk UDCA, satu untuk setiap cakupan. Anda dapat membedakannya berdasarkan nama akun. Akun env-scope menyertakan nama lingkungan dalam nama akun layanan. Contoh:
- Tingkat organisasi:
apigee-udca-my-project-id-123abcd-sadenganmy-project-idadalah project ID nama. - Tingkat lingkungan:
apigee-udca-my-project-id-my-env-234bcde-sadenganmy-envadalah nama lingkungan.
Non-prod
- Tentukan variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-udca-service-account-name-sa"
apigee-udca-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID - Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com - Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME: misalnya:GSA_NAME="apigee-udca"
KSA_NAME="apigee-udca-service-account-name-sa"apigee-udca-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tingkat organisasi:
- Apigee Watcher
Non-prod
- Tentukan variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-watcher-service-account-name-sa"
apigee-watcher-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME: misalnya:GSA_NAME="apigee-watcher"
KSA_NAME="apigee-watcher-service-account-name-sa"apigee-watcher-hybrid-example-project-123abcd-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- Runtime
Non-prod
- Tentukan variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-runtime-env-level-service-account-name-sa"
apigee-runtime-hybrid-example-project-example-env-234bcde-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME: misalnya:GSA_NAME="apigee-runtime"
KSA_NAME="apigee-runtime-env-level-service-account-name-sa"apigee-runtime-hybrid-example-project-example-env-234bcde-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- Synchronizer
Non-prod
- Tentukan variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"
apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME: misalnya:GSA_NAME="apigee-synchronizer"
KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- UDCA (tingkat lingkungan)
Non-prod
- Tentukan variabel lingkungan
KSA_NAME: misalnya:KSA_NAME="apigee-udca-env-level-service-account-name-sa"
apigee-udca-hybrid-example-project-example-env-234bcde-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAMEdanGSA_NAME: misalnya:GSA_NAME="apigee-udca"
KSA_NAME="apigee-udca-env-level-service-account-name-sa"apigee-udca-hybrid-example-project-example-env-234bcde-sa. - Ikat peran IAM:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- Beri anotasi pada akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- (Opsional) Anda dapat melihat status akun layanan Kubernetes di halaman Kubernetes: Workloads Overview di Google Cloud console.
- Untuk memeriksa status deployment lagi dengan
apigeectl check-ready:${APIGEECTL_HOME}/apigeectl check-ready -f ${HYBRID_FILES}/overrides/overrides.yaml
Jika perlu, tetapkan konfigurasi gcloud saat ini:
gcloud config set project $PROJECT_ID