Operator APIM: Sebelum memulai

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:

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:

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

    Buka Instance

    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.

  2. Instal Google Cloud CLI.

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

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

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

  7. Deploy aplikasi backend ke cluster Anda.

    Untuk men-deploy aplikasi backend yang diekspos 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 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 mengganti HOST_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

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

    3. 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, 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 dalam 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 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"
        }

Langkah berikutnya

Pelajari cara Menginstal Operator APIM.