Langkah 4: Instal hybrid di GKE

Menerapkan konfigurasi ke cluster

Untuk menginstal Apigee Hybrid ke dalam cluster Anda:

  1. Pastikan Anda berada di direktori hybrid-base-directory/hybrid-files.
  2. Pastikan kubectl disetel 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 Registration 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

    Saat pod sudah siap, lanjutkan ke langkah berikutnya.

  5. Lakukan penginstalan "dry run". Jalankan perintah apply dengan flag --dry-run=true. Dengan melakukan uji coba, Anda dapat memeriksa apakah ada error sebelum melakukan perubahan 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 sampai semua pod sudah siap. Pod mungkin memerlukan waktu beberapa menit untuk dimulai.

Aktifkan 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 buat di langkah berikutnya. Cara mudah untuk membuat akun layanan adalah melalui konsol GCP. Untuk mengetahui petunjuknya, lihat Membuat dan mengelola akun layanan di 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 telah didownload ke direktori akun layanan: /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 didownload dengan peran Apigee Organization Admin.

  5. Panggil setSyncAuthorization API guna 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 tersebut akan dibuat seperti alamat email. Contoh: 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 sudah 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="
    }
        

Tambahkan alias host MART ke organisasi Anda

Anda harus menambahkan alias host dari endpoint MART ke organisasi Apigee Anda. Anda menetapkan nilai ini sebelumnya saat menetapkan nilai properti mart.hostAlias dalam file penggantian. Bidang pengelolaan memerlukan alamat ini agar dapat berkomunikasi dengan bidang 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 dapat 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 syncr 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 didownload dengan peran Apigee Organization Admin.

  4. Panggil API pengelolaan berikut untuk mengupdate 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"
        } ]
      }
    }'

    Berikut adalah 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"
        } ]
      }
    }'

Simpan file penggantian

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