Menginstal Operator APIM Apigee untuk Kubernetes

Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

Halaman ini menjelaskan langkah-langkah yang diperlukan untuk menginstal dan mengonfigurasi Operator APIM Apigee untuk Kubernetes. Untuk mempelajari lebih lanjut manfaat penggunaan APIM Operator, lihat Ringkasan Apigee APIM Operator untuk Kubernetes.

Sebelum memulai

Sebelum mulai menginstal Operator APIM, pastikan Anda memiliki peran dan izin yang diperlukan untuk menyelesaikan langkah-langkahnya dan Anda telah menyelesaikan tugas prasyarat yang dijelaskan dalam Operator APIM: Sebelum memulai.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk menginstal APIM Operator, minta administrator Anda untuk memberi Anda peran IAM berikut di organisasi:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.

Menginstal dan mengonfigurasi Operator APIM

Bagian berikut menjelaskan langkah-langkah yang diperlukan untuk menginstal dan mengonfigurasi Operator APIM:

  1. Tetapkan variabel lingkungan.
  2. Aktifkan API yang diperlukan.
  3. Mengambil dan mengonfigurasi kredensial.
  4. Instal APIM Operator.
  5. Buat identitas workload.
  6. Buat lingkungan Apigee.
  7. Verifikasi penyiapan GKE Gateway.

Menetapkan variabel lingkungan

Di project Google Cloud yang berisi instance Apigee, gunakan perintah berikut untuk menetapkan variabel lingkungan:

export PROJECT_ID=PROJECT_ID
export CLUSTER_NAME=CLUSTER_NAME
export REGION=REGION
export APIGEE_ORG=APIGEE_ORG

Dengan:

  • PROJECT_ID adalah ID project dengan instance Apigee Anda.
  • CLUSTER_NAME adalah nama cluster GKE Anda.
  • REGION adalah region cluster GKE Anda.
  • APIGEE_ORG ditetapkan ke nilai yang sama dengan PROJECT_ID.

Untuk mengonfirmasi bahwa variabel lingkungan telah ditetapkan dengan benar, jalankan perintah berikut:

echo $PROJECT_ID $CLUSTER_NAME $REGION $APIGEE_ORG

Mengaktifkan API yang diperlukan

Operator APIM memerlukan akses ke API berikut:

Nama Judul
apigee.googleapis.com Apigee API
compute.googleapis.com Compute Engine API
networkservices.googleapis.com Network Services API
container.googleapis.com Google Kubernetes Engine API

Gunakan perintah berikut untuk mengonfirmasi bahwa API yang diperlukan telah diaktifkan:

gcloud services list --project=$PROJECT_ID

Jika Anda tidak melihat API yang diperlukan tercantum dalam output perintah, aktifkan API tersebut:

gcloud services enable apigee.googleapis.com --project=$PROJECT_ID
gcloud services enable compute.googleapis.com --project=$PROJECT_ID
gcloud services enable networkservices.googleapis.com --project=$PROJECT_ID
gcloud services enable container.googleapis.com --project=$PROJECT_ID

Mengambil dan mengonfigurasi kredensial

Ambil kredensial cluster Anda dan buat akun layanan untuk terhubung ke layanan Google Cloud :

  1. Dapatkan kredensial cluster menggunakan perintah berikut:

    gcloud container clusters get-credentials $CLUSTER_NAME --location=$REGION --project=$PROJECT_ID

    Kredensial ini digunakan untuk berkomunikasi dengan cluster GKE yang dibuat pada langkah prasyarat.

  2. Siapkan Kredensial Akun Layanan untuk terhubung ke layanan Google Cloud :
    gcloud iam service-accounts create apigee-apim-gsa
  3. Berikan peran dan izin yang diperlukan ke akun layanan yang Anda buat menggunakan perintah berikut:
    • Peran Admin Apigee: Diperlukan untuk membuat dan mengelola resource Apigee.
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID." \
          --role "roles/apigee.admin"
    • Peran admin ekstensi layanan: Diperlukan untuk membuat dan mengelola ekstensi layanan.
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID." \
          --role "roles/networkservices.serviceExtensionsAdmin"
    • Peran admin jaringan: Diperlukan untuk mengelola akses ke Apigee menggunakan ekstensi layanan.
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID." \
          --role "roles/compute.networkAdmin"
    • Peran admin load balancer: Diperlukan untuk mengelola akses antara grup endpoint jaringan (NEG) dan layanan backend.
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID." \
          --role "roles/compute.loadBalancerAdmin"
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member "serviceAccount:apigee-apim-gsa@$PROJECT_ID." \
          --role "roles/iam.workloadIdentityUser"

Membuat workload identity

Penginstalan helm APIM Operator di langkah berikutnya akan membuat akun layanan Kubernetes (KSA) yang diperlukan bernama apim-ksa di namespace apim. Saat dibuat, KSA berisi anotasi yang diperlukan untuk dikaitkan dengan identitas workload yang digunakan oleh APIM Operator untuk mengakses resource Apigee dan Service Networking yang diperlukan.

Untuk membuat workload identity, gunakan perintah berikut:

gcloud iam service-accounts add-iam-policy-binding apigee-apim-gsa@$PROJECT_ID. --role roles/iam.workloadIdentityUser --member "serviceAccount:$PROJECT_ID.svc.id.goog[apim/apim-ksa]"

Perintah ini mengikat KSA dengan akun layanan Google yang Anda buat di Mengambil dan mengonfigurasi kredensial dan menetapkan peran workloadIdentityUser.

Mungkin perlu waktu beberapa menit, bahkan hingga 7 menit atau lebih, agar perubahan identitas beban kerja diterapkan di seluruh sistem.

Untuk mengonfirmasi bahwa workload identity telah dibuat, gunakan perintah berikut:

gcloud config set project $PROJECT_ID
kubectl run --rm -it --image google/cloud-sdk:slim \
  --namespace apim workload-identity-test \
  --overrides='{ "spec": { "serviceAccountName": "apim-ksa" } }'  \
  -- gcloud auth list

Output-nya akan terlihat seperti berikut:

Credentialed Accounts
  ACTIVE  ACCOUNT
  *       GSA@$PROJECT_ID.

Instal Definisi Resource Kustom (CRD) dan Operator APIM

Instal definisi resource kustom (CRD) Kubernetes dan Operator APIM:

  1. Buat namespace untuk APIM Operator:
    kubectl create ns apim
  2. Instal definisi resource kustom (CRD) APIM Operator:
    helm install apigee-apim-crds -n apim \
      oci://us-docker.pkg.dev/apigee-release/apigee-k8s-tooling-helm-charts/apigee-apim-operator-crds \
      --version 1.0.0 \
      --atomic
  3. Instal Operator APIM:
    helm install apigee-apim-operator -n apim \
      oci://us-docker.pkg.dev/apigee-release/apigee-k8s-tooling-helm-charts/apigee-apim-operator-helm \
      --version 1.0.0 \
      --set projectId=$PROJECT_ID \
      --set serviceAccount=apigee-apim-gsa@$PROJECT_ID. \
      --set apigeeOrg=$PROJECT_ID \
      --set generateEnv=TRUE \
      --atomic
  4. Pastikan penginstalan berhasil diselesaikan:
    helm list -n apim

    Output-nya akan terlihat seperti berikut:

    NAME                	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART                          	APP VERSION
    apigee-apim-crds    	apim     	1       	2025-02-01 00:17:03.399810627 +0000 UTC	deployed	apigee-apim-operator-crds-1.0.0	1.0.0
    apigee-apim-operator	apim     	1       	2025-02-01 00:15:00.362829981 +0000 UTC	deployed	apigee-apim-operator-helm-1.0.0	1.0.0   

  5. Konfirmasi bahwa KSA dibuat dengan anotasi yang diperlukan:
    kubectl describe serviceaccounts apim-ksa -n apim

    Output-nya akan terlihat seperti berikut:

    Name:                apim-ksa
    Namespace:           apim
    ...
    Annotations:         iam.gke.io/gcp-service-account: apigee-apim-gsa@my-project-id.
  6. Pastikan operator APIM telah aktif dan berjalan di pod cluster:
    kubectl get pods -n apim

    Output-nya akan terlihat seperti berikut:

    NAME                                    READY   STATUS    RESTARTS     AGE
    apigee-apim-operator-8559d4994b-h55fl   1/1     Running   0            8m34s
    

    Jika STATUS bukan Running, atau READY tidak menampilkan 1/1, lihat Memecahkan masalah Operator APIM untuk memecahkan masalah penginstalan.

Membuat lingkungan Apigee

Jika Anda menginstal APIM Operator menggunakan generateEnv=TRUE pada langkah sebelumnya, operator akan membuat lingkungan Apigee baru saat kebijakan Ekstensi APIM dibuat dan diterapkan. Nama lingkungan baru akan memiliki awalan: apim-enabled-dep-env.

Jika Anda menginstal APIM Operator dengan generateEnv=FALSE, Anda harus membuat lingkungan Apigee baru:

  1. Tetapkan TOKEN yang diperlukan untuk perintah curl:
    export TOKEN=$(gcloud auth print-access-token)
  2. Buat lingkungan menggunakan salah satu perintah berikut:
    • Untuk organisasi yang berlangganan pada tahun 2021:
      curl -X POST "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/environments" -H \
        "Authorization: Bearer $TOKEN" -H "content-type:application/json" \
          -d '{
            "name": "ENV_NAME",
            "displayName": "ENV_NAME",
            "state": "ACTIVE",
            "deploymentType": "PROXY",
            "apiProxyType": "PROGRAMMABLE",
            "properties": {
              "property": [
                {
                  "name": "apigee-service-extension-enabled",
                  "value": "true"
                }
              ]
            }
        }'

      Dengan ENV_NAME adalah nama lingkungan yang akan dibuat.

    • Untuk organisasi Berlangganan 2024 dan Bayar sesuai penggunaan:
      curl -i -X POST -H "Authorization: Bearer $TOKEN"  "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/environments" -H "Content-Type:application/json" -d '{
        "name": "ENV_NAME",
        "displayName": "ENV_NAME",
        "state": "ACTIVE",
        "deploymentType": "PROXY",
        "apiProxyType": "PROGRAMMABLE",
        "type" : "COMPREHENSIVE",
        "properties": {
          "property": [
            {
              "name": "apigee-service-extension-enabled",
              "value": "true"
            }
          ]
        }
      }'

      Dengan:

      • ENV_NAME adalah nama lingkungan yang akan dibuat.
      • ENV_TYPE adalah jenis lingkungan yang akan dibuat. Misalnya, INTERMEDIATE atau COMPREHENSIVE.

    Untuk memeriksa apakah lingkungan berhasil dibuat:

    curl -i -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/environments"

  3. Lampirkan lingkungan ke instance Apigee Anda:
    curl -i -X POST -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/instances/INSTANCE_NAME/attachments" \
      -H "Content-Type:application/json" -d '{"environment": "ENV_NAME"}'

    Dengan:

    • INSTANCE_NAME adalah nama instance Apigee Anda.
    • ENV_NAME adalah nama lingkungan yang Anda buat di langkah sebelumnya.

    Untuk memeriksa status operasi lampiran lingkungan:

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$APIGEE_ORG/operations/OPERATION_ID"

    Dengan OPERATION_ID adalah ID operasi lampiran lingkungan.

Memecahkan masalah

Jika Anda mengalami masalah saat menginstal APIM Operator, lihat Memecahkan Masalah APIM Operator untuk mengetahui solusi atas error umum.

Langkah berikutnya