Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Baca dokumentasi
Apigee Edge.
Halaman ini menjelaskan langkah-langkah yang harus Anda selesaikan sebelum dapat menginstal dan mengonfigurasi Operator APIM Apigee untuk Kubernetes (Pratinjau). Untuk mempelajari lebih lanjut manfaat penggunaan Operator APIM, lihat Ringkasan Operator APIM Apigee untuk Kubernetes.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menyiapkan resource yang diperlukan untuk menginstal dan menggunakan Operator APIM, minta administrator untuk memberi Anda peran IAM berikut di organisasi:
-
Membuat dan mengelola cluster Google Kubernetes Engine (GKE):
Container Admin (
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.
Tugas penyiapan yang diperlukan
Sebelum menginstal Operator APIM, pastikan untuk menyelesaikan tugas berikut guna menyiapkan resource yang Anda perlukan untuk menggunakan fitur ini:
Sediakan instance Apigee menggunakan versi
1-14-0-apigee-4
atau yang lebih baru.Anda dapat melihat versi instance di halaman Detail instance di UI Apigee di konsol Google Cloud.Buka halaman Instance di konsol Google Cloud untuk memilih instance dan melihat detailnya:
Anda dapat menggunakan Operator APIM dengan organisasi Apigee Langganan atau Bayar sesuai penggunaan. 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 konfigurasikan alat command line
kubectl
. - Instal Helm (versi v3.14.3 atau yang lebih baru).
Buat cluster GKE dengan Workload Identity Federation for GKE dan GKE Gateway diaktifkan.
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 guna membuat cluster baru dengan Workload Identity Federation untuk GKE dan GKE Gateway yang diaktifkan menggunakan Autopilot, lihat Men-deploy Gateway.
- Deploy GKE Gateway 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 tujuan panduan ini, sebaiknya Anda men-deploy Gateway eksternal. Untuk 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 ditampilkan 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 informasi selengkapnya tentang resource HTTPRoute, lihat Men-deploy HTTPRoute (untuk Gateway internal) atau Membuat HTTPRoute (untuk Gateway eksternal).
Untuk tujuan panduan ini, sebaiknya deploy Gateway dan HTTPRoute eksternal, dengan mengikuti langkah-langkah di Membuat HTTPRoute. Saat Anda membuat HTTPRoute, gunakan konfigurasi
yaml
berikut:# 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: - apigee-apim-operator-test.apigee.net 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
. - Deskripsikan Gateway untuk mengonfirmasi bahwa rute telah dilampirkan:
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 telah dilampirkan. - Kirim permintaan ke Gateway:
curl http://GATEWAY_IP_ADDRESS/get \ -H "Host: HOST_NAME"
Dengan keterangan:
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 diHTTPRoute
Gateway. Anda dapat mengambil HOST_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 terlihat 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.