Menerapkan konfigurasi ke cluster
Gunakan langkah-langkah berikut untuk menginstal Apigee Hybrid ke cluster Anda:
- Pastikan Anda berada di direktori
hybrid-base-directory/hybrid-files
.cd $HYBRID_FILES
- Pastikan
kubectl
ditetapkan ke konteks yang benar menggunakan perintah berikut. Konteks saat ini harus ditetapkan ke cluster tempat Anda men-deploy Apigee Hybrid.kubectl config current-context
Hasilnya harus menyertakan nama cluster tempat Anda men-deploy Apigee Hybrid. Sebagai Sebagai contoh, di GKE, nama konteks biasanya berupa
gke_project-id_cluster-location_cluster-name
, sebagai dalam:gke_my-project_us-central1_my-cluster
Jika nama cluster nama dalam konteks tidak cocok, perintah berikut akan mendapatkan Kredensial
gcloud
untuk cluster dan setel 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 on bare metal, AWS di GKE, EKS, dan GKE lokal, Verifikasi
yang
KUBECONFIG
variabel diatur menggunakan perintah berikut:echo ${KUBECONFIG}
- Lakukan inisialisasi dry run. Dengan melakukan uji coba, Anda dapat
memeriksa error sebelum
perubahan dilakukan pada cluster. Jalankan perintah
init
dengan flag--dry-run
sebagai berikut:${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml --dry-run=client
- Jika tidak ada error, jalankan perintah
init
sebagai berikut:${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml
Perintah
init
menginstal deployment Apigee layanan Pengontrol Deployment Apigee dan Webhook Penerimaan Apigee. - Untuk memeriksa status deployment, Anda dapat menggunakan perintah berikut:
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
kubectl get pods -n apigee-system
kubectl get pods -n apigee
Jika pod sudah siap, lanjutkan ke langkah berikutnya.
- Lakukan penginstalan dry run. Jalankan perintah
apply
dengan tanda--dry-run
.${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --dry-run=client
-
Jika tidak ada kesalahan, 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.yaml
Ulangi langkah ini sampai semua pod siap. Pod mungkin memerlukan waktu beberapa menit untuk dimulai.
GKE dengan Workload Identity
Jika Anda menggunakan Workload Identity di GKE, ikuti petunjuk berikut untuk mengaitkan Kubernetes
akun layanan 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. Pilih salah satu di shell perintah Anda atau ganti dalam 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
: Lalu, 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_LOCATION
echo $ENV_NAME
echo $HYBRID_FILES
echo $NAMESPACE
echo $ORG_NAME
echo $PROJECT_ID
Lakukan inisialisasi variabel apa pun yang Anda perlukan:
export APIGEECTL_HOME=hybrid-base-directory/apigeectlexport CLUSTER_LOCATION=my-cluster-location
export ENV_NAME=my-environment-name
export HYBRID_FILES=hybrid-base-directory/hybrid-files
export NAMESPACE=apigee
export ORG_NAME=$PROJECT_ID
export PROJECT_ID=my-project-id
- Opsional: Hapus file kunci akun layanan.
Saat menjalankan Apigee Hybrid di GKE, praktik standarnya adalah membuat dan mendownload data pribadi (
.json
file) 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
gcloud
saat ini ke project ID Google Cloud Anda dengan perintah berikut:gcloud config get project
- Buat akun layanan Kubernetes
apigee-cassandra-restore
.Ketika 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 apply
dengan flag--restore
:$APIGEECTL_HOME/apigeectl apply -f $HYBRID_FILES/overrides/overrides.yaml --restore
- Pastikan Workload Identity sudah aktif untuk Cluster GKE Anda. Saat Anda membuat cluster
pada Langkah 1: Membuat cluster, langkah 6 adalah Mengaktifkannya
Workload Identity. Anda dapat mengonfirmasi apakah Workload Identity diaktifkan dengan menjalankan perintah berikut
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 tersebut, output-nya akan terlihat seperti berikut:
--- workloadPool: PROJECT_ID.svc.id.goog
Jika Anda melihat
null
dalam hasil Anda, 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
- Pastikan Workload Identity diaktifkan pada kumpulan node 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:
--- diskSizeGb: 100 diskType: pd-standard ... workloadMetadataConfig: mode: GKE_METADATA
Jika output Anda tidak berisi baris untuk
workloadMetadataConfig:
, aktifkan Workload identity untuk setiap kumpulan node dengan perintah berikut. Operasi ini dapat memerlukan 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 kumpulan node. Di sebagian besar Apigee Hybrid penginstalan, dua kumpulan node default bernama
apigee-data
danapigee-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:
Non-produk
Untuk lingkungan non-produksi:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my_project_id. False
Prod
Untuk lingkungan non-produksi:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my_project_id. False apigee-logger apigee-logger@my_project_id. False apigee-mart apigee-mart@my_project_id. False apigee-metrics apigee-metrics@my_project_id. False apigee-runtime apigee-runtime@my_project_id. False apigee-synchronizer apigee-synchronizer@my_project_id. False apigee-udca apigee-udca@my_project_id. False apigee-watcher apigee-watcher@my_project_id. False
- Verifikasi akun layanan dengan perintah berikut:
kubectl get sa -n $NAMESPACE
Output Anda akan terlihat seperti berikut. Akun layanan Kubernetes di tebal adalah informasi yang perlu Anda anotasi dengan akun layanan Google:
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 tag
Akun layanan Google untuk komponen tersebut.
Langkah-langkah berikut menggunakan dua variabel lingkungan. Anda akan mereset nilai variabel sebelum setiap set perintah:
- GSA_NAME: Nama akun layanan Google. Berikut adalah
akun layanan yang Anda buat dengan alat
create-service-account
di Langkah 4: Buat akun layanan. - KSA_NAME: Nama akun layanan Kubernetes. Berikut adalah
akun yang tercantum di atas dengan
kubectl get sa -n $NAMESPACE
, misalnya:apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa
.
- GSA_NAME: Nama akun layanan Google. Berikut adalah
akun layanan yang Anda buat dengan alat
- Cassandra
Komponen Cassandra memiliki enam akun layanan Kubernetes terkait:
apigee-cassandra-backup
apigee-cassandra-restore
apigee-cassandra-schema-setup
apigee-cassandra-schema-val
(val
= validasi)apigee-cassandra-user-setup
apigee-datastore-default
Non-produk
Langkah-langkah berikut menggunakan dua variabel lingkungan. Anda akan mereset nilai variabel sebelum setiap set perintah:
- GSA_NAME: Nama akun layanan Google. Berikut adalah
akun layanan yang Anda buat dengan alat
create-service-account
di Langkah 4: Buat akun layanan. - KSA_NAME: Nama akun layanan Kubernetes. Berikut adalah
akun yang tercantum di atas dengan
kubectl get sa -n $NAMESPACE
perintah.
apigee-cassandra-backup
Akun layanan Kubernetes- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Output Anda harus memiliki baris yang menjelaskan anotasi, mirip dengan:
Annotations: iam.gke.io/gcp-service-account: apigee-non-prod@my-project-id.
apigee-cassandra-restore
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-setup
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-val
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setup
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-sa
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
apigee-cassandra-backup
Akun layanan Kubernetes- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Output Anda harus memiliki baris yang menjelaskan anotasi, mirip dengan:
Annotations: iam.gke.io/gcp-service-account: apigee-cassandra@my-project-id.
apigee-cassandra-restore
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
apigee-cassandra-schema-setup
Akun 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
. - Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- 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. \ --project $PROJECT_ID
apigee-cassandra-schema-val
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setup
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-sa
Akun 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Apigee Connect
Non-produk
- 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- MART
Non-produk
- 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan variabel lingkungan
- Metrik Apigee
Non-produk
- Tentukan
KSA_NAME
variabel lingkungan: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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan
- UDCA (tingkat organisasi)
UDCA diterapkan baik dalam cakupan tingkat organisasi maupun tingkat lingkungan. Oleh karena itu, ada dua akun layanan Kubernetes terpisah untuk UDCA, satu untuk setiap cakupan. Anda dapat membedakannya berdasarkan nama akun. Akun {i>env-scope<i} mencakup lingkungan dalam nama akun layanan. Contoh:
- Tingkat organisasi:
apigee-udca-my-project-id-123abcd-sa
tempatmy-project-id
adalah nama project ID. - Tingkat Env:
apigee-udca-my-project-id-my-env-234bcde-sa
denganmy-env
adalah nama lingkungannya.
Non-produk
- Tentukan
KSA_NAME
variabel lingkungan: 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tingkat organisasi:
- Apigee Watcher
Non-produk
- Tentukan
KSA_NAME
variabel lingkungan: 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan
- Runtime
Non-produk
- Tentukan
KSA_NAME
variabel lingkungan: 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan
- Sinkronisasi
Non-produk
- Tentukan
KSA_NAME
variabel lingkungan: 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan
- UDCA (tingkat env)
Non-produk
- Tentukan
KSA_NAME
variabel lingkungan: 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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
Prod
- Tentukan variabel lingkungan
KSA_NAME
danGSA_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. \ --project $PROJECT_ID
- Anotasikan akun layanan:
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
- Verifikasi anotasi:
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Tentukan
- (Opsional) Anda dapat melihat status akun layanan Kubernetes di Kubernetes: Workloads Overview di Google Cloud Console.
- Untuk memeriksa kembali status deployment dengan
apigeectl check-ready
:${APIGEECTL_HOME}/apigeectl check-ready -f ${HYBRID_FILES}/overrides/overrides.yaml
Jika perlu, setel konfigurasi gcloud
saat ini:
gcloud config set project $PROJECT_ID