Langkah 4: Instal hybrid di GKE lokal

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 Pengontrol Deployment Apigee dan Webhook Penerimaan Apigee, serta men-deploy aplikasi 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

    Jika pod sudah siap, lanjutkan ke langkah berikutnya.

  5. Lakukan "uji coba" diinstal. Jalankan perintah apply dengan flag --dry-run=true. Melakukan pengeringan dapat digunakan untuk memeriksa 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 konfigurasi komponen runtime 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 siap. Pod mungkin memerlukan waktu beberapa menit untuk memulai.

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, lalu menambahkannya ke file /etc/hosts Anda. Saat menggunakan jaringan host, pod menggunakan IP dan nama host node. Nama host node tidak ada di DNS; Oleh karena itu, Anda harus menambahkan entri nama host statis di /etc/hosts untuk setiap node pekerja Cassandra.

  1. Jalankan perintah ini untuk mendapatkan node pekerja Cassandra. Parameter apigee-data adalah label node default yang ditetapkan ke Cassandra. Jika Anda menggunakan label {i>node<i} yang berbeda, menggantikan yang Anda gunakan. Lihat Caranya untuk memberi label node pekerja.
    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 masing-masing node pekerja Cassandra ke File /etc/hosts:
    cat /etc/hosts
    
    127.0.0.1 localhost
    21.0.129.248   my-cluster1-844788cc8c-2gx7d
    

Aktifkan akses sinkronisasi

  1. Membuat akun layanan GCP dan menambahkan peran Apigee Organization Admin IP eksternal mana pun yang ditetapkan pada instance tersebut. Akun layanan ini akan digunakan untuk mengautentikasi panggilan API yang akan Anda lakukan di langkah selanjutnya. Cara mudah untuk membuat akun layanan adalah melalui GCP Console. Untuk petunjuk, 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 telah didownload ke direktori akun layanan Anda: /hybrid-base-directory/hybrid-files/service-accounts
  4. Jalankan dua perintah berikut 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 layanan kunci akun yang didownload dengan peran Apigee Organization Admin.

  5. Memanggil 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 dibentuk seperti alamat email. Contoh: apigee-synchronizer@my-project.

    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."]}'
    
  6. Untuk memverifikasi bahwa akun layanan sudah disetel, 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."
       ],
       "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 ditetapkan nilai properti mart.hostAlias dalam penggantian Anda . Bidang pengelolaan memerlukan alamat ini agar dapat berkomunikasi dengan runtime pesawat di atas MART.

Ikuti langkah-langkah berikut untuk menambahkan IP MART ke organisasi Anda:

  1. Dapatkan nilai yang Anda tetapkan sebelumnya dalam file penggantian untuk mart.hostAlias. Agar MART dapat berfungsi, alias host harus menjadi nama domain yang sepenuhnya memenuhi syarat
  2. Temukan kunci akun layanan dengan peran Apigee Organization Admin yang telah Anda unduh sebelumnya, di bagian Aktifkan akses sinkronisasi.
  3. Jalankan dua perintah berikut 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 layanan kunci akun yang didownload dengan peran Apigee Organization Admin.

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

Menyimpan file penggantian

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