Langkah 4: Instal hybrid di GKE lokal

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.

Tambahkan nama host statis untuk Cassandra di /etc/hosts (khusus Anthos 1.2.x)

Pada langkah ini, Anda akan mendapatkan IP dan nama host node pekerja yang ditetapkan untuk Cassandra, dan menambahkannya ke file /etc/hosts Anda. Saat menggunakan jaringan host, pod menggunakan nama host dan IP node. Nama host node tidak ada di DNS; sehingga Anda harus menambahkan entri nama host statis di /etc/hosts untuk setiap node pekerja Cassandra.

  1. Jalankan perintah ini untuk mendapatkan worker node Cassandra. Parameter apigee-data adalah label node default yang ditetapkan ke Cassandra. Jika Anda menggunakan label node yang berbeda, ganti label node yang Anda gunakan. Lihat Cara memberi label worker node.
    kubectl  get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide

    Contoh output:

    kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d
    
    NAME                           STATUS   ROLES    AGE   VERSION          INTERNAL-IP    EXTERNAL-IP    OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    my-cluster1-844788cc8c-2gx7d   Ready    none     19d   v1.14.7-gke.24   21.0.129.248   21.0.129.248   Ubuntu 18.04.3 LTS   4.15.0-62-generic   docker://17.3.2
  2. Tambahkan nama node dan IP eksternal yang ditampilkan oleh perintah sebelumnya untuk setiap node pekerja Cassandra ke file /etc/hosts Anda:
    cat /etc/hosts
    
    127.0.0.1 localhost
    21.0.129.248   my-cluster1-844788cc8c-2gx7d
    

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 IP MART ke organisasi Anda

Anda harus menambahkan alamat IP 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 IP 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 nama domain.

    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.