Menginstal Operator APIM Apigee untuk Kubernetes

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

Baca dokumentasi Apigee Edge.

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

Sebelum memulai

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

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menginstal Operator APIM, minta administrator 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 khusus atau peran bawaan 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 Operator APIM.
  5. Buat workload identity.
  6. Buat lingkungan Apigee.
  7. Pastikan penyiapan GKE Gateway.

Menetapkan variabel lingkungan

Dalam project Google Cloud yang berisi instance Apigee Anda, 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 keterangan:

  • 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 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}.iam.gserviceaccount.com" \
          --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}.iam.gserviceaccount.com" \
          --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}.iam.gserviceaccount.com" \
          --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}.iam.gserviceaccount.com" \
          --role "roles/compute.loadBalancerAdmin"
      gcloud projects add-iam-policy-binding ${PROJECT_ID} \
          --member "serviceAccount:apigee-apim-gsa@${PROJECT_ID}.iam.gserviceaccount.com" \
          --role "roles/iam.workloadIdentityUser"

Membuat workload identity

Penginstalan helm Operator APIM pada 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 beban kerja yang digunakan oleh Operator APIM untuk mengakses resource Apigee dan Service Networking yang diperlukan.

Untuk membuat identitas beban kerja, gunakan perintah berikut:

gcloud iam service-accounts add-iam-policy-binding apigee-apim-gsa@${PROJECT_ID}.iam.gserviceaccount.com --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, mungkin 7 menit atau lebih, agar perubahan identitas beban kerja diterapkan di seluruh sistem.

Untuk mengonfirmasi bahwa identitas beban kerja 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\
  -- gcloud auth list

Output-nya akan terlihat seperti berikut:

Credentialed Accounts
  ACTIVE  ACCOUNT
  *       GSA@PROJECT_ID.iam.gserviceaccount.com

Menginstal Definisi Resource Kustom (CRD) dan Operator APIM

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

  1. Buat namespace untuk Operator APIM:
    kubectl create ns apim
  2. Instal definisi resource kustom (CRD) Operator APIM:
    helm install apigee-apim-crds oci://us-docker.pkg.dev/apigee-release/apigee-k8s-tooling-helm-charts/apigee-apim-operator-crds --version 0.6.0 -n apim --atomic
  3. Instal Operator APIM:
    helm install apigee-apim-operator oci://us-docker.pkg.dev/apigee-release/apigee-k8s-tooling-helm-charts/apigee-apim-operator-helm --version 0.6.0 --set project_id=${PROJECT_ID} --set serviceAccount=apigee-apim-gsa@${PROJECT_ID}.iam.gserviceaccount.com --set apigeeOrg=${PROJECT_ID} --set generateEnv=TRUE --set apigeeMgmtUrl="https://apigee.googleapis.com" -n apim --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-0.6.0	0.6.0      
    apigee-apim-operator	apim     	1       	2025-02-01 00:15:00.362829981 +0000 UTC	deployed	apigee-apim-operator-helm-0.6.0	0.6.0   

  5. Pastikan 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.iam.gserviceaccount.com
  6. Pastikan operator APIM sudah 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 Operator APIM menggunakan generateEnv=TRUE di 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 menginstal Operator APIM 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 Langganan 2021:
      curl -X POST "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments" -H \
         "Authorization: Bearer $TOKEN" -H "content-type:application/json" \
          -d '{
            "name": "ENV_NAME",
            "properties": {
                "apigee-service-extension-enabled":"true"
          }
        }'

      Dengan ENV_NAME adalah nama lingkungan yang akan dibuat.

    • Untuk organisasi Langganan 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" : ENV_TYPE,
        "properties": {
          "property": [
            {
              "name": "apigee-service-extension-enabled", 
              "value": "true"  
            }
          ]
        }
      }'

      Dengan keterangan:

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

  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 keterangan:

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

Memecahkan masalah

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

Langkah berikutnya