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:
-
Membuat dan mengelola cluster GKE:
Admin Penampung (
roles/container.admin
) -
Membuat dan mengelola akun layanan:
Admin Akun Layanan (
roles/iam.serviceAccountAdmin
) -
Membuat dan mengelola ekstensi layanan:
Service Extensions Admin (
roles/networkservices.serviceExtensionsAdmin
) -
Membuat dan mengelola grup endpoint jaringan (NEG):
Compute Instance Admin (
roles/compute.instanceAdmin
) -
Membuat dan mengelola layanan backend:
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin
) -
Membuat dan mengelola resource Apigee:
Apigee Admin (
roles/apigee.admin
)
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:
- Tetapkan variabel lingkungan.
- Aktifkan API yang diperlukan.
- Mengambil dan mengonfigurasi kredensial.
- Instal Operator APIM.
- Buat workload identity.
- Buat lingkungan Apigee.
- 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 denganPROJECT_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 :
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.
- Siapkan Kredensial Akun Layanan untuk terhubung ke layanan Google Cloud :
gcloud iam service-accounts create apigee-apim-gsa
- 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"
- Peran Admin Apigee: Diperlukan untuk membuat dan mengelola resource Apigee.
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:
- Buat namespace untuk Operator APIM:
kubectl create ns apim
- 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
- 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
- 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
- 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
- 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
bukanRunning
, atauREADY
tidak menampilkan1/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:
- Tetapkan
TOKEN
yang diperlukan untuk perintahcurl
:export TOKEN=$(gcloud auth print-access-token)
- 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
atauCOMPREHENSIVE
.
- Untuk organisasi Langganan 2021:
- 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.