Menerapkan konfigurasi ke cluster
Untuk menginstal Apigee Hybrid ke dalam cluster Anda:
- Pastikan Anda berada di direktori
hybrid-base-directory/hybrid-files
. - Pastikan
kubectl
disetel ke konteks yang benar. Konteks saat ini harus ditetapkan ke cluster tempat Anda men-deploy:kubectl config get-contexts
- 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. - 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.
- 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
-
Jika tidak ada error, Anda dapat menerapkan komponen runtime khusus Apigee ke cluster:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- 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.
- 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
- 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
- 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.
- Download kunci akun layanan ke sistem Anda. Ikuti petunjuk di Membuat kunci akun layanan dalam dokumentasi GCP.
- Pindahkan kunci akun layanan yang telah didownload ke direktori akun layanan: /hybrid-base-directory
/hybrid-files/service-accounts
. - 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.
- 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"]}'
- 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:
- 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. - Temukan kunci akun layanan dengan peran Apigee Organization Admin yang Anda download sebelumnya, di bagian Enable syncr access.
- 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.
- 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.