Langkah 4: Instal hybrid di GKE

Menerapkan konfigurasi ke cluster

Untuk menginstal Apigee hybrid ke cluster Anda:

  1. Pastikan Anda berada di direktori hybrid-base-directory/hybrid-files.
  2. Pastikan kubectl ditetapkan ke konteks yang benar. Konteks saat ini harus ditetapkan ke cluster tempat Anda men-deploy:
    kubectl config get-contexts
  3. Jalankan perintah init:
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    Perintah init menginstal layanan deployment Apigee Apigee Deployment Controller dan Apigee Admission Webhook, serta men-deploy komponen non-Apigee Istio dan Cert Manager.

  4. Untuk memeriksa status deployment, Anda dapat menggunakan perintah berikut:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    dan

    kubectl get pods -n apigee-system

    dan

    kubectl get pods -n istio-system

    Setelah pod siap, lanjutkan ke langkah berikutnya.

  5. Lakukan penginstalan "uji coba". Jalankan perintah apply dengan flag --dry-run=true. Dengan melakukan pengujian kering, Anda dapat memeriksa error sebelum perubahan apa pun dilakukan pada cluster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. Jika tidak ada error, Anda dapat menerapkan komponen runtime khusus Apigee ke cluster:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. Untuk memeriksa status deployment:
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Ulangi langkah ini hingga semua pod siap. Pod mungkin memerlukan waktu beberapa menit untuk memulai.

Mengaktifkan akses sinkronisasi

  1. Buat akun layanan GCP dan tambahkan peran Apigee Organization Admin ke akun tersebut. Akun layanan ini akan digunakan untuk mengautentikasi panggilan API yang akan Anda lakukan di langkah berikutnya. Cara mudah untuk membuat akun layanan adalah melalui GCP console. Untuk mengetahui petunjuknya, lihat Membuat dan mengelola akun layanan dalam dokumentasi GCP.
  2. Download kunci akun layanan ke sistem Anda. Ikuti petunjuk di Membuat kunci akun layanan dalam dokumentasi GCP.
  3. Pindahkan kunci akun layanan yang didownload ke direktori akun layanan Anda: /hybrid-base-directory/hybrid-files/service-accounts.
  4. Jalankan kedua perintah ini untuk mendapatkan token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Dengan org-admin-service-account-file adalah jalur di sistem Anda ke kunci akun layanan yang Anda download dengan peran Admin Organisasi Apigee.

  5. Panggil setSyncAuthorization API untuk mengaktifkan izin yang diperlukan untuk Synchronizer:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
    

    Dengan keterangan:

    • your_org_name: Nama organisasi campuran Anda.
    • synchronizer-manager-service-account-email: Nama akun layanan dengan peran Apigee Synchronizer Manager. Nama dibuat seperti alamat email. Misalnya: apigee-synchronizer@my-project.iam.gserviceaccount.com

    Contoh:

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
    
  6. Untuk memverifikasi bahwa akun layanan telah ditetapkan, panggil API berikut untuk mendapatkan daftar akun layanan:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''
    

    Outputnya terlihat mirip dengan yang berikut ini:

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }
        

Menambahkan alias host MART ke organisasi Anda

Anda harus menambahkan alias host endpoint MART ke organisasi Apigee Anda. Anda telah menetapkan nilai ini sebelumnya saat menetapkan nilai properti mart.hostAlias dalam file penggantian Anda. Platform pengelolaan memerlukan alamat ini agar dapat berkomunikasi dengan platform runtime melalui MART.

Ikuti langkah-langkah berikut untuk menambahkan alias host MART ke organisasi Anda:

  1. Dapatkan nilai yang Anda tetapkan sebelumnya dalam file penggantian untuk properti mart.hostAlias. Agar MART berfungsi, alias host harus berupa nama domain yang sepenuhnya memenuhi syarat.
  2. Temukan kunci akun layanan dengan peran Apigee Organization Admin yang Anda download sebelumnya, di bagian Enable synchronizer access.
  3. Jalankan kedua perintah ini untuk mendapatkan token:
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    Dengan org-admin-service-account-file adalah jalur di sistem Anda ke kunci akun layanan yang Anda download dengan peran Admin Organisasi Apigee.

  4. Panggil API pengelolaan berikut untuk memperbarui organisasi Anda dengan endpoint MART:
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://HOST_ALIAS_DNS"
        } ]
      }
    }'

    Ini contohnya. Pastikan untuk menambahkan awalan "https://" ke alias host.

    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/my_organization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "my_organization",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://foo-mart.example.com"
        } ]
      }
    }'

Menyimpan file penggantian

Pastikan untuk menyimpan file penggantian. Anda memerlukan file ini untuk melakukan upgrade, patch, atau modifikasi lainnya pada konfigurasi cluster di masa mendatang.