Buat ApigeeBackendService

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:

  1. Buat file YAML bernama apigee-backend-service.yaml dengan konten berikut:
  2. # 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:

    • ENV_NAME adalah lingkungan Apigee yang akan digunakan. Hal ini mirip dengan kolom apigeeEnv di APIMExtensionPolicy. 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 dan projects/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.

  3. Terapkan file YAML ke cluster Anda di namespace default:
    kubectl apply -f apigee-backend-service.yaml
  4. 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   

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
Untuk kebijakan yang memerlukan pemeriksaan atau modifikasi isi permintaan atau respons (misalnya, JSONThreatProtection), Anda harus menyertakan RequestBody dan ResponseBody dalam daftar supportedEvents. Untuk mengetahui informasi selengkapnya tentang peristiwa yang didukung, lihat dokumentasi ekstensi traffic Cloud Load Balancing.

Untuk membuat GCPTrafficExtension:

  1. 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 and name
            kind: ApigeeBackendService
            name: APIGEE_BACKEND_SERVICE_NAME
            Port: 443

    Dengan:

    • 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 blok extensions harus cocok dengan metadata.name dari ApigeeBackendService 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
      Untuk kebijakan yang memerlukan pemeriksaan atau modifikasi isi permintaan atau respons (misalnya, JSONThreatProtection), Anda harus menyertakan RequestBody dan ResponseBody dalam daftar supportedEvents. Untuk mengetahui informasi selengkapnya tentang peristiwa yang didukung, lihat dokumentasi ekstensi traffic Cloud Load Balancing.
  2. Terapkan file YAML ke cluster Anda:
    kubectl apply -f gcp-traffic-extension.yaml

Langkah Berikutnya