Langkah 8: Instal runtime hybrid

Menerapkan konfigurasi ke cluster

Gunakan langkah-langkah berikut untuk menginstal Apigee Hybrid ke cluster Anda:

  1. Pastikan Anda berada di direktori hybrid-base-directory/hybrid-files.
    cd $HYBRID_FILES
  2. 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 konteks kubectl:

    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
  3. Khusus untuk platform Anthos on bare metal, AWS di GKE, EKS, dan GKE lokal, Verifikasi yang KUBECONFIG variabel diatur menggunakan perintah berikut:
    echo ${KUBECONFIG}
  4. 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
  5. 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.

  6. 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.

  7. Lakukan penginstalan dry run. Jalankan perintah apply dengan tanda --dry-run.
    ${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --dry-run=client
  8. Jika tidak ada kesalahan, Anda dapat menerapkan Komponen runtime khusus Apigee ke cluster dengan perintah berikut:
    ${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml
  9. 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 menginstal apigeectl.
  • 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, misalnya hybrid-base-directory/hybrid-files.
  • ORG_NAME: Nama organisasi Apigee Anda.
  • PROJECT_ID: ID project Google Cloud Anda.

Verifikasi variabel lingkungan:

echo $APIGEECTL_HOME
echo $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/apigeectl
export 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
  1. 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
  2. Periksa apakah konfigurasi gcloud saat ini ke project ID Google Cloud Anda dengan perintah berikut:
    gcloud config get project
  3. Jika perlu, setel konfigurasi gcloud saat ini:

    gcloud config set project $PROJECT_ID
  4. 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, jalankan apigeectl apply dengan flag --restore:

    $APIGEECTL_HOME/apigeectl apply -f $HYBRID_FILES/overrides/overrides.yaml --restore
  5. 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
  6. 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 dan apigee-runtime.

  7. 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
    
  8. 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
        
  9. 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.
    • 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

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:
        GSA_NAME="apigee-non-prod"
        KSA_NAME="apigee-cassandra-backup"
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. 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

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-restore"
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-cassandra-schema-setup Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
        misalnya: apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-cassandra-schema-val Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-schema-val-service-account-name"
        misalnya: apigee-cassandra-schema-val-hybrid-example-project-123abcd.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-cassandra-user-setup Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
        misalnya: apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-datastore-default-sa Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-datastore-default-sa"
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      apigee-cassandra-backup Akun layanan Kubernetes

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:
        GSA_NAME="apigee-cassandra"
        KSA_NAME="apigee-cassandra-backup"
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
      5. Output Anda harus memiliki baris yang menjelaskan anotasi, mirip dengan:

        Annotations:         iam.gke.io/gcp-service-account: apigee-cassandra@my-project-id.
      6. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-cassandra-restore Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-restore"
      2. 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
      3. 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

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
        misalnya: apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-cassandra-schema-val Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-schema-val-service-account-name"
        misalnya: apigee-cassandra-schema-val-hybrid-example-project-123abcd.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-cassandra-user-setup Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
        misalnya: apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      apigee-datastore-default-sa Akun layanan Kubernetes

      1. Tentukan ulang variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-datastore-default-sa"
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • Apigee Connect

      Non-produk

      1. Tentukan variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-connect-agent-service-account-name-sa"
        misalnya: apigee-connect-agent-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:
        GSA_NAME="apigee-mart"
        KSA_NAME="apigee-connect-agent-service-account-name-sa"
        misalnya: apigee-connect-agent-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • MART

      Non-produk

      1. Tentukan variabel lingkungan KSA_NAME:

        KSA_NAME="apigee-mart-service-account-name-sa"
        misalnya: apigee-mart-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:

        GSA_NAME="apigee-mart"
        KSA_NAME="apigee-mart-service-account-name-sa"
        misalnya: apigee-mart-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • Metrik Apigee

      Non-produk

      1. Tentukan KSA_NAMEvariabel lingkungan:

        KSA_NAME="apigee-metrics-sa"
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:

        GSA_NAME="apigee-metrics"
        KSA_NAME="apigee-metrics-sa"
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
        --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • 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 tempat my-project-id adalah nama project ID.
      • Tingkat Env: apigee-udca-my-project-id-my-env-234bcde-sa dengan my-env adalah nama lingkungannya.

      Non-produk

      1. Tentukan KSA_NAMEvariabel lingkungan:

        KSA_NAME="apigee-udca-service-account-name-sa"
        misalnya: apigee-udca-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
          kubectl annotate serviceaccount \
            --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:

        GSA_NAME="apigee-udca"
        KSA_NAME="apigee-udca-service-account-name-sa"
        misalnya: apigee-udca-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • Apigee Watcher

      Non-produk

      1. Tentukan KSA_NAMEvariabel lingkungan:

        KSA_NAME="apigee-watcher-service-account-name-sa"
        misalnya: apigee-watcher-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:

        GSA_NAME="apigee-watcher"
        KSA_NAME="apigee-watcher-service-account-name-sa"
        misalnya: apigee-watcher-hybrid-example-project-123abcd-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • Runtime

      Non-produk

      1. Tentukan KSA_NAMEvariabel lingkungan:

        KSA_NAME="apigee-runtime-env-level-service-account-name-sa"
        misalnya: apigee-runtime-hybrid-example-project-example-env-234bcde-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:

        GSA_NAME="apigee-runtime"
        KSA_NAME="apigee-runtime-env-level-service-account-name-sa"
        misalnya: apigee-runtime-hybrid-example-project-example-env-234bcde-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • Sinkronisasi

      Non-produk

      1. Tentukan KSA_NAMEvariabel lingkungan:

        KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"
        misalnya: apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:

        GSA_NAME="apigee-synchronizer"
        KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"
        misalnya: apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
    • UDCA (tingkat env)

      Non-produk

      1. Tentukan KSA_NAMEvariabel lingkungan:

        KSA_NAME="apigee-udca-env-level-service-account-name-sa"
        misalnya: apigee-udca-hybrid-example-project-example-env-234bcde-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME

      Prod

      1. Tentukan variabel lingkungan KSA_NAME dan GSA_NAME:

        GSA_NAME="apigee-udca"
        KSA_NAME="apigee-udca-env-level-service-account-name-sa"
        misalnya: apigee-udca-hybrid-example-project-example-env-234bcde-sa.
      2. 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
      3. Anotasikan akun layanan:
        kubectl annotate serviceaccount \
          --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.
      4. Verifikasi anotasi:
        kubectl describe serviceaccount \
          --namespace $NAMESPACE $KSA_NAME
  10. (Opsional) Anda dapat melihat status akun layanan Kubernetes di Kubernetes: Workloads Overview di Google Cloud Console.

    Buka Workloads

  11. Untuk memeriksa kembali status deployment dengan apigeectl check-ready:
    ${APIGEECTL_HOME}/apigeectl check-ready -f ${HYBRID_FILES}/overrides/overrides.yaml
1 2 3 4 5 6 7 8 (BERIKUTNYA) Langkah 9: Ekspos traffic masuk Apigee 10