Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Halaman ini menjelaskan cara membuat ApigeeBackendService
dan ekstensi traffic yang diperlukan di Gateway Google Kubernetes Engine (GKE) yang berjalan di cluster Anda.
Pendekatan ini merupakan alternatif untuk menggunakan APIMExtensionPolicy
guna mengidentifikasi bidang data Apigee sebagai Policy Decision Point (PDP) untuk GKE Gateway.
Saat Anda membuat ApigeeBackendService
, Apigee Operator untuk Kubernetes akan otomatis membuat
APIMExtensionPolicy
dengan nama dan namespace yang sama dengan ApigeeBackendService
.
Ini adalah APIMExtensionPolicy
pendukung.
Sebaiknya gunakan pendekatan ini jika Anda membuat dan mengelola
ekstensi traffic Cloud Load Balancing
dan ingin menambahkan Apigee sebagai ekstensi di resource ekstensi traffic Anda. Anda harus menggunakan
ApigeeBackendService
jika ekstensi traffic Apigee berfungsi bersama
dengan ekstensi traffic lainnya.
Sebelum memulai
Sebelum Anda memulai tugas ini, selesaikan langkah-langkah berikut:
- Pastikan penerapan GKE Anda menggunakan GKE versi 1.34.x atau yang lebih baru.
- Pastikan cluster GKE Anda telah dikonfigurasi dengan Workload Identity. Lihat Membuat workload identity untuk mengetahui langkah-langkah yang diperlukan.
- Pastikan cluster Anda telah dikonfigurasi dan berfungsi dengan GKE Gateway. Lihat Men-deploy gateway untuk mengetahui detail selengkapnya.
- Instal Apigee Operator untuk Kubernetes. Lihat Menginstal Apigee Operator untuk Kubernetes untuk mengetahui petunjuk penginstalan.
Peran yang diperlukan
Jika Anda menetapkan peran yang diperlukan ke akun layanan seperti yang dijelaskan dalam Menginstal Apigee Operator untuk Kubernetes, tidak ada peran atau izin IAM tambahan yang diperlukan untuk menyelesaikan tugas ini.
Anda dapat mengizinkan tindakan pada resource di cluster Google Kubernetes Engine menggunakan mekanisme role-based access control (RBAC) bawaan di Kubernetes. Untuk mengetahui informasi selengkapnya, lihat Memberikan otorisasi pada tindakan dalam cluster menggunakan role-based access control.
Buat Resource ApigeeBackendService
Untuk mengonfigurasi ekstensi layanan traffic di Gateway GKE, buat dua resource utama:
- ApigeeBackendService: Resource kustom ini menentukan bidang data Apigee sebagai Policy Decision Point (PDP) dan mengonfigurasi detail jaringan untuk Grup Endpoint Jaringan (NEG) Private Service Connect (PSC).
- GCPTrafficExtension: Resource GKE Gateway API ini menentukan rantai ekstensi, termasuk cara traffic diarahkan ke ApigeeBackendService.
Membuat ApigeeBackendService
Resource ApigeeBackendService
menentukan bidang data Apigee sebagai
PDP untuk GCPTrafficExtension
.
Untuk membuat ApigeeBackendService
:
- Buat file YAML bernama
apigee-backend-service.yaml
dengan konten berikut: - ENV_NAME adalah lingkungan Apigee yang akan digunakan. Hal ini mirip dengan kolom
apigeeEnv
diAPIMExtensionPolicy
. Kolom ini bersifat opsional untuk Apigee dan wajib diisi untuk hybrid. - SECURITY_ENABLED (Opsional) menentukan apakah kebijakan Apigee default untuk validasi kunci API dan pemeriksaan Kuota diaktifkan secara otomatis. Jika tidak ditentukan, nilai defaultnya adalah
true
. - REGION_NAME_1 menentukan region tempat Anda men-deploy GKE Gateway.
- NETWORK_NAME_1 dan SUBNET_NAME_1 menentukan URI resource lengkap dari jaringan dan subnetwork tempat NEG PSC dibuat. Misalnya,
projects/my-project/global/networks/my-default
danprojects/my-project/regions/us-central1/subnetworks/my-default
. Biasanya, ini sama dengan jaringan dan subnetwork cluster GKE. - REGION_NAME_2, NETWORK_NAME_2, dan SUBNET_NAME_2 bersifat opsional. Anda memerlukannya jika men-deploy ekstensi traffic Apigee di beberapa region.
- Terapkan file YAML ke cluster Anda di namespace
default
:kubectl apply -f apigee-backend-service.yaml
- Konfirmasi bahwa
ApigeeBackendService
berhasil dibuat:kubectl get apigeebackendservice
Output-nya akan terlihat seperti berikut:
NAMESPACE NAME STATE ERRORMESSAGE default default-ext-lb1-apim-policy CREATED
# apigee-backend-service.yaml kind: ApigeeBackendService apiVersion: apim.googleapis.com/v1 metadata: name: my-apigee-extension-backend-service spec: apigeeEnv: ENV_NAME # optional for Apigee, required for hybrid defaultSecurityEnabled: SECURITY_ENABLED locations: # required field - name: REGION_NAME_1 network: NETWORK_NAME_1 subnet: SUBNET_NAME_1 - name: REGION_NAME_2 network: NETWORK_NAME_2 subnet: SUBNET_NAME_2
Dengan:
Saat Anda membuat ApigeeBackendService
, Apigee Operator untuk Kubernetes akan otomatis
membuat APIMExtensionPolicy
dengan nama dan namespace yang sama dengan ApigeeBackendService
.
Ini adalah APIMExtensionPolicy
pendukung.
Jika defaultSecurityEnabled
disetel ke true
, Apigee Operator untuk Kubernetes
akan otomatis menambahkan kunci API default dan kebijakan Kuota ke APIMExtensionPolicy
. Untuk menambahkan
kebijakan tambahan, lihat Menambahkan kebijakan ke GKE Gateway.
Buat resource GCPTrafficExtension
ResourceGCPTrafficExtension
menentukan ekstensi untuk Apigee dan mereferensikan
ApigeeBackendService
yang dibuat pada langkah sebelumnya sebagai backendRef
-nya.
Untuk mengetahui detail selengkapnya tentang cara mengonfigurasi GCPTrafficExtension
, lihat Mengonfigurasi ekstensi layanan.
Kolom supportedEvents
menentukan bagian siklus proses permintaan dan respons mana yang diekspos ke ekstensi. Apigee Operator untuk Kubernetes mendukung peristiwa berikut:
RequestHeaders
RequestBody
RequestTrailers
ResponseHeaders
ResponseBody
ResponseTrailers
RequestBody
dan ResponseBody
dalam daftar supportedEvents
.
Untuk mengetahui informasi selengkapnya tentang peristiwa yang didukung, lihat dokumentasi ekstensi traffic Cloud Load Balancing.
Untuk membuat GCPTrafficExtension
:
- Buat file YAML bernama
gcp-traffic-extension.yaml
dengan konten berikut:# gcp-traffic-extension.yaml kind: GCPTrafficExtension apiVersion: networking.gke.io/v1 metadata: name: my-apigee-extension spec: targetRefs: - group: "gateway.networking.k8s.io" kind: Gateway name: GATEWAY_NAME # Replace with your GKE Gateway name extensionChains: - name: EXTENSION_CHAIN_NAME matchCondition: celExpressions: - celMatcher: request.path.startsWith("/") extensions: - name: EXTENSION_NAME metadata: # This metadata label must match the name of the ApigeeBackendService apigee-extension-processor : APIGEE_BACKEND_SERVICE_NAME failOpen: false supportedEvents: - SUPPORTED_EVENT1 - SUPPORTED_EVENT2 timeout: 1s requestBodySendMode: FullDuplexStreamed backendRef: # References the ApigeeBackendService by
kind
andname
kind: ApigeeBackendService name: APIGEE_BACKEND_SERVICE_NAME Port: 443Dengan:
- GATEWAY_NAME adalah nama GKE Gateway tempat ekstensi diterapkan.
- EXTENSION_CHAIN_NAME adalah nama rantai ekstensi.
- EXTENSION_NAME adalah nama ekstensi layanan traffic.
- APIGEE_BACKEND_SERVICE_NAME adalah nama
ApigeeBackendService
yang dibuat sebelumnya. Label ini di dalam blokextensions
harus cocok denganmetadata.name
dariApigeeBackendService
yang dibuat sebelumnya. - Kolom
supportedEvents
menentukan bagian siklus proses permintaan dan respons yang diekspos ke ekstensi. Apigee Operator untuk Kubernetes mendukung peristiwa berikut:RequestHeaders
RequestBody
RequestTrailers
ResponseHeaders
ResponseBody
ResponseTrailers
RequestBody
danResponseBody
dalam daftarsupportedEvents
. Untuk mengetahui informasi selengkapnya tentang peristiwa yang didukung, lihat dokumentasi ekstensi traffic Cloud Load Balancing.
- Terapkan file YAML ke cluster Anda:
kubectl apply -f gcp-traffic-extension.yaml