Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Halaman ini menjelaskan langkah-langkah yang harus Anda selesaikan sebelum dapat menginstal dan mengonfigurasi Apigee APIM Operator untuk Kubernetes. Untuk mempelajari lebih lanjut manfaat penggunaan APIM Operator, lihat Ringkasan Apigee APIM Operator untuk Kubernetes.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk menyiapkan resource yang diperlukan guna menginstal dan menggunakan APIM Operator, minta administrator untuk memberi Anda peran IAM berikut pada organisasi:
-
Buat dan kelola cluster Google Kubernetes Engine (GKE):
Admin Container (
roles/container.admin
) -
Membuat dan mengelola akun layanan:
Service Account Admin (
roles/iam.serviceAccountAdmin
) -
Membuat dan mengelola ekstensi layanan:
Admin Ekstensi Layanan (
roles/networkservices.serviceExtensionsAdmin
) -
Membuat dan mengelola grup endpoint jaringan (NEG):
Admin Instance Compute (
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 kustom atau peran yang telah ditentukan lainnya.
Tugas penyiapan yang diperlukan
Sebelum menginstal APIM Operator, pastikan untuk menyelesaikan tugas berikut guna menyiapkan resource yang diperlukan untuk menggunakan fitur ini:
Sediakan instance Apigee menggunakan versi
1-15-0-apigee-4
atau yang lebih baru.Anda dapat melihat versi instance di halaman Instance details di UI Apigee di konsol Google Cloud .Buka halaman Instances di konsol Google Cloud untuk memilih instance dan melihat detailnya:
Anda dapat menggunakan APIM Operator dengan Subscription atau organisasi Apigee Pay-as-you-go. Untuk mengetahui detail selengkapnya tentang penyediaan instance Apigee berbayar, lihat Sebelum memulai.
Instal Google Cloud CLI.
Setelah Google Cloud CLI diinstal, jalankan perintah
gcloud components update
untuk mendapatkan komponen gcloud terbaru.- Instal dan konfigurasi alat command line
kubectl
. - Instal Helm (versi v3.14.3 atau yang lebih baru).
Buat cluster GKE menggunakan GKE versi 1.27 atau yang lebih baru dengan Workload Identity Federation untuk GKE dan GKE Gateway diaktifkan.
Jika sudah memiliki cluster yang memenuhi persyaratan ini, Anda dapat melewati langkah ini.
Workload Identity Federation untuk GKE diaktifkan secara default saat menggunakan mode Autopilot untuk membuat dan mengelola cluster Anda. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Autopilot.
Untuk mengetahui langkah-langkah yang diperlukan untuk membuat cluster baru dengan Workload Identity Federation untuk GKE dan GKE Gateway yang diaktifkan menggunakan Autopilot, lihat Men-deploy Gateway.
- Deploy Gateway GKE ke cluster Anda.
Anda dapat memilih untuk mengonfigurasi dan men-deploy Gateway internal atau Gateway eksternal untuk digunakan dengan APIM Operator. Jika Anda memilih untuk men-deploy Gateway internal, subnet khusus proxy dan VPC bersama diperlukan. Untuk menguji langkah-langkah dalam panduan ini, sebaiknya Anda men-deploy Gateway eksternal. Untuk mengetahui informasi selengkapnya, lihat Persyaratan pengontrol GKE Gateway.
Untuk men-deploy GKE Gateway, gunakan langkah-langkah yang diuraikan dalam Men-deploy Gateway eksternal. Saat Anda membuat Gateway, gunakan konfigurasi
yaml
berikut:# gateway.yaml kind: Gateway apiVersion: gateway.networking.k8s.io/v1beta1 metadata: name: global-ext-lb1 namespace: default spec: gatewayClassName: gke-l7-global-external-managed listeners: - name: http protocol: HTTP allowedRoutes: kinds: - kind: HTTPRoute namespaces: from: All port: 80
Terapkan file ke cluster Anda:
kubectl apply -f gateway.yaml
- Deploy aplikasi backend ke cluster Anda.
Untuk men-deploy aplikasi backend yang diekspos oleh Gateway
global-ext-lb1
yang Anda buat dan deploy:- Membuat file baru bernama
target.yaml
. - Salin konten berikut ke dalam file baru:
# target.yaml apiVersion: v1 kind: Namespace metadata: name: http --- apiVersion: v1 kind: ServiceAccount metadata: name: httpbin namespace: http --- apiVersion: v1 kind: Service metadata: name: httpbin namespace: http labels: app: httpbin service: httpbin spec: type: LoadBalancer ports: - name: https port: 80 targetPort: 80 selector: app: httpbin --- apiVersion: apps/v1 kind: Deployment metadata: name: httpbin namespace: http spec: replicas: 1 selector: matchLabels: app: httpbin version: v1 template: metadata: labels: app: httpbin version: v1 spec: serviceAccountName: httpbin containers: - image: docker.io/kennethreitz/httpbin imagePullPolicy: IfNotPresent name: httpbin ports: - containerPort: 80 resources: requests: cpu: 1 memory: 1024Mi limits: cpu: 1 memory: 1024Mi
- Terapkan konfigurasi ke cluster Anda:
kubectl apply -f target.yaml
Untuk mengetahui informasi selengkapnya tentang men-deploy aplikasi backend ke cluster GKE, lihat Men-deploy aplikasi demo.
- Membuat file baru bernama
- Deploy resource HTTPRoute ke cluster Anda untuk memetakan traffic dari Gateway ke layanan backend Anda.
Untuk mengetahui informasi selengkapnya tentang resource HTTPRoute, lihat Men-deploy HTTPRoute (untuk Gateway internal) atau Membuat HTTPRoute (untuk Gateway eksternal).
Untuk tujuan panduan ini, sebaiknya Anda men-deploy Gateway dan HTTPRoute eksternal, dengan mengikuti langkah-langkah di Membuat HTTPRoute. Saat Anda membuat HTTPRoute, gunakan konfigurasi
yaml
berikut, dengan menggantiHOST_NAME
dengan nama host yang ingin Anda gunakan:# httproute.yaml kind: HTTPRoute apiVersion: gateway.networking.k8s.io/v1beta1 metadata: name: http-bin-route namespace: http spec: parentRefs: - kind: Gateway name: global-ext-lb1 namespace: default hostnames: - HOST_NAME rules: - matches: - path: value: / backendRefs: - name: httpbin kind: Service port: 80 namespace: http
Terapkan file ke cluster Anda:
kubectl apply -f httproute.yaml
- Verifikasi penyiapan GKE Gateway untuk mengonfirmasi bahwa penyiapan tersebut berfungsi seperti yang diharapkan.
- Dapatkan detail Gateway menggunakan perintah berikut:
kubectl get gateway global-ext-lb1
Output akan muncul seperti berikut:
NAME CLASS ADDRESS PROGRAMMED AGE global-ext-lb1 gke-l7-global-external-managed 34.54.193.72 True 11d
Pastikan alamat IP ditetapkan ke Gateway dan nilai
PROGRAMMED
adalahTrue
. - Jelaskan Gateway untuk mengonfirmasi bahwa rute terlampir:
kubectl describe gateway global-ext-lb1
Output-nya akan terlihat seperti berikut:
... Listeners: Attached Routes: 1 Conditions: Last Transition Time: 2024-10-03T03:10:17Z ...
Konfirmasi bahwa nilai
Attached Routes
adalah1
, yang menunjukkan bahwa rute terpasang. - Kirim permintaan ke Gateway:
curl http://GATEWAY_IP_ADDRESS/get \ -H "Host: HOST_NAME"
Dengan:
GATEWAY_IP_ADDRESS
adalah alamat IP Gateway. Anda dapat mengambil alamat IP Gateway menggunakan perintah berikut, denganGATEWAY_NAME
adalah nama Gateway:kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
HOST_NAME
adalah nama host yang ditentukan dalamHTTPRoute
Gateway. Anda dapat mengambilHOST_NAME
menggunakan perintah berikut:kubectl get HTTPRoute HTTPROUTE_NAME -n NAMESPACE
For example:
curl http://34.54.193.72/get \ -H "Host: apigee-apim-operator-test.apigee.net"
Responsnya akan muncul seperti berikut:
{ "args": {}, "headers": { "Accept": "*/*", "Host": "apigee-apim-operator-test.apigee.net", "User-Agent": "curl/8.7.1", "X-Cloud-Trace-Context": "2bb8a80e29e80662ff9cb89971c447d9/13083106619927322701" }, "origin": "67.164.1.10,34.54.193.72", "url": "http://apigee-apim-operator-test.apigee.net/get" }
- Dapatkan detail Gateway menggunakan perintah berikut:
Langkah berikutnya
Pelajari cara Menginstal Operator APIM.