Operator APIM: Sebelum memulai

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:

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:

  1. 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:

    Buka Instance

    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.

  2. Instal Google Cloud CLI.

    Setelah Google Cloud CLI diinstal, jalankan perintah gcloud components update untuk mendapatkan komponen gcloud terbaru.

  3. Instal dan konfigurasikan alat command line kubectl.
  4. Instal Helm (versi v3.14.3 atau yang lebih baru).
  5. 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.

  6. 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

  7. Deploy aplikasi backend ke cluster Anda.

    Untuk men-deploy aplikasi backend yang ditampilkan oleh Gateway global-ext-lb1 yang Anda buat dan deploy:

    1. Membuat file baru bernama target.yaml.
    2. 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
    3. 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.

  8. 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

  9. Verifikasi penyiapan GKE Gateway untuk mengonfirmasi bahwa penyiapan tersebut berfungsi seperti yang diharapkan.
    1. 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 adalah True.

    2. 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 adalah 1, yang menunjukkan bahwa rute telah dilampirkan.

    3. 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, dengan GATEWAY_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 di HTTPRoute 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"
        }

Langkah berikutnya

Pelajari cara Menginstal Operator APIM.