Dokumen ini memandu Anda melakukan proses langkah demi langkah untuk menginstal Apigee Hybrid v1.10 menggunakan chart Helm.
Versi
Diagram Helm hybrid Apigee digunakan dengan Apigee Hybrid v1.10.x. Lihat Histori rilis Apigee Hybrid untuk mengetahui daftar rilis hybrid.
Prasyarat
- Apigee Hybrid 1.10.4
- Helm v3.10+
-
Akses ke repositori diagram Helm hybrid Apigee di:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
- gcloud CLI
- Membuat dan mengelola project
- Cluster Kubernetes untuk penginstalan hybrid Apigee. Lihat:
Cakupan
- Rilis ini hanya mendukung Apigee Hybrid versi 1.10.4.
-
Rilis ini mendukung:
- Penginstalan hybrid Apigee baru.
- Penginstalan hybrid Apigee yang sudah ada telah diupgrade ke versi 1.10.4 dan dimigrasikan ke pengelolaan Helm menggunakan alat migrasi Helm hybrid Apigee.
- Rilis ini mendukung:
Platform dan versi Kubernetes yang didukung
Platform | Versi |
---|---|
GKE | 1,24, 1,25, 1,26 |
AKS | 1,24, 1,25, 1,26 |
EKS | 1,24, 1,25, 1,26 |
OpenShift | 4,11, 4,12 |
Batasan
-
Diagram helm tidak sepenuhnya mendukung CRD; oleh karena itu, kami akan menggunakan
perintah
kubectl -k
untuk menginstal dan mengupgradenya. Kami bertujuan untuk mengikuti praktik terbaik komunitas dan Google seputar pengelolaan Kubernetes. Deployment CRD melalui Helm belum mencapai status komunitas yang memungkinkan kami mendapatkan dukungan yang luas, atau permintaan untuk model semacam itu. Oleh karena itu, pengelolaan CRD Apigee harus dilakukan menggunakankubectl
seperti yang disebutkan dalam dokumen ini. -
Di
apigeectl
, kami telah menggunakan file di seluruhoverrides.yaml
untuk akun layanan dan sertifikat; tetapi, Helm tidak mendukung file referensi di luar direktori diagram. Pilih salah satu opsi berikut untuk akun layanan dan file sertifikat:- Tempatkan salinan file yang relevan dalam setiap direktori diagram
-
Buat link simbolis dalam setiap direktori diagram untuk setiap file, atau
folder. Helm akan mengikuti link simbolis keluar dari direktori diagram, tetapi akan menampilkan peringatan seperti berikut:
apigee-operator/gsa -> ../gsa
-
Menggunakan secret Kubernetes. Misalnya, untuk akun layanan:
kubectl create secret generic SECRET_NAME \ --from-file="client_secret.json=CLOUD_IAM_FILE_NAME.json" \ -n apigee
-
Ganti kode berikut:
- SECRET_NAME dengan nama rahasia Kubernetes yang Anda buat.
- CLOUD_IAM_FILE_NAME.json dengan nama file JSON yang didownload.
Platform dan versi Kubernetes yang didukung
Untuk mengetahui daftar platform yang didukung, lihat kolom v1.10 dalam tabel platform yang didukung hybrid Apigee.
Izin diperlukan
Tabel ini mencantumkan resource dan izin yang diperlukan untuk Kubernetes dan Apigee.
Untuk memfilter tabel ini, lakukan satu atau beberapa tindakan berikut: pilih kategori, ketik istilah penelusuran, atau klik judul kolom untuk mengurutkan.
Kategori | Resource | Jenis aset | Izin RBAC Kubernetes |
---|---|---|---|
Datastore | apigeedatastores.apigee.cloud.google.com |
Apigee | create delete patch update |
Datastore | certificates.cert-manager.io |
Kubernetes | create delete patch update |
Datastore | cronjobs.batch |
Kubernetes | create delete patch update |
Datastore | jobs.batch |
Kubernetes | create delete patch update |
Datastore | secrets |
Kubernetes | create delete patch update |
LV | apigeeenvironments.apigee.cloud.google.com |
Apigee | create delete patch update |
LV | secrets |
Kubernetes | create delete patch update |
LV | serviceaccounts |
Kubernetes | create delete patch update |
Pengelola traffic masuk | certificates.cert-manager.io |
Kubernetes | create delete patch update |
Pengelola traffic masuk | configmaps |
Kubernetes | create delete patch update |
Pengelola traffic masuk | deployments.apps |
Kubernetes | create delete patch update |
Pengelola traffic masuk | horizontalpodautoscalers.autoscaling |
Kubernetes | create delete patch update |
Pengelola traffic masuk | issuers.cert-manager.io |
Kubernetes | create delete patch update |
Pengelola traffic masuk | serviceaccounts |
Kubernetes | create delete patch update |
Pengelola traffic masuk | services |
Kubernetes | create delete patch update |
Operator | apigeedatastores.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operator | apigeedatastores.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | apigeedatastores.apigee.cloud.google.com/status |
Apigee | get patch update |
Operator | apigeedeployments.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operator | apigeedeployments.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | apigeedeployments.apigee.cloud.google.com/status |
Apigee | get patch update |
Operator | apigeeenvironments.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operator | apigeeenvironments.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | apigeeenvironments.apigee.cloud.google.com/status |
Apigee | get patch update |
Operator | apigeeissues.apigee.cloud.google.com |
Apigee | create delete get list watch |
Operator | apigeeorganizations.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operator | apigeeorganizations.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | apigeeorganizations.apigee.cloud.google.com/status |
Apigee | get patch update |
Operator | apigeeredis.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operator | apigeeredis.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | apigeeredis.apigee.cloud.google.com/status |
Apigee | get patch update |
Operator | apigeerouteconfigs.apigee.cloud.google.com |
Apigee | get list |
Operator | apigeeroutes.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operator | apigeeroutes.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | apigeeroutes.apigee.cloud.google.com/status |
Apigee | get patch update |
Operator | apigeetelemetries.apigee.cloud.google.com |
Apigee | create delete get list patch update watch |
Operator | apigeetelemetries.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | apigeetelemetries.apigee.cloud.google.com/status |
Apigee | get list patch update |
Operator | cassandradatareplications.apigee.cloud.google.com |
Apigee | get list patch update watch |
Operator | cassandradatareplications.apigee.cloud.google.com/finalizers |
Apigee | get patch update |
Operator | cassandradatareplications.apigee.cloud.google.com/status |
Apigee | get patch update |
Operator | *.networking.x.k8s.io |
Kubernetes | get list watch |
Operator | apiservices.apiregistration.k8s.io |
Kubernetes | create delete get list patch update watch |
Operator | certificates.cert-manager.io |
Kubernetes | create delete get list patch update watch |
Operator | certificates.cert-manager.io/finalizers |
Kubernetes | create delete get list patch update watch |
Operator | certificatesigningrequests.certificates.k8s.io |
Kubernetes | create delete get update watch |
Operator | certificatesigningrequests.certificates.k8s.io/approval |
Kubernetes | create delete get update watch |
Operator | certificatesigningrequests.certificates.k8s.io/status |
Kubernetes | create delete get update watch |
Operator | clusterissuers.cert-manager.io |
Kubernetes | create get watch |
Operator | clusterrolebindings.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operator | clusterroles.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operator | configmaps |
Kubernetes | create delete get list patch update watch |
Operator | configmaps/status |
Kubernetes | get patch update |
Operator | cronjobs.batch |
Kubernetes | create delete get list patch update watch |
Operator | customresourcedefinitions.apiextensions.k8s.io |
Kubernetes | get list watch |
Operator | daemonsets.apps |
Kubernetes | create delete get list patch update watch |
Operator | deployments.apps |
Kubernetes | get list watch |
Operator | deployments.extensions |
Kubernetes | get list watch |
Operator | destinationrules.networking.istio.io |
Kubernetes | create delete get list patch update watch |
Operator | endpoints |
Kubernetes | get list watch |
Operator | endpointslices.discovery.k8s.io |
Kubernetes | get list watch |
Operator | events |
Kubernetes | create delete get list patch update watch |
Operator | gateways.networking.istio.io |
Kubernetes | create delete get list patch update watch |
Operator | horizontalpodautoscalers.autoscaling |
Kubernetes | create delete get list patch update watch |
Operator | ingressclasses.networking.k8s.io |
Kubernetes | get list watch |
Operator | ingresses.networking.k8s.io/status |
Kubernetes | all verbs |
Operator | issuers.cert-manager.io |
Kubernetes | create delete get list patch update watch |
Operator | jobs.batch |
Kubernetes | create delete get list patch update watch |
Operator | leases.coordination.k8s.io |
Kubernetes | create get list update |
Operator | namespaces |
Kubernetes | get list watch |
Operator | nodes |
Kubernetes | get list watch |
Operator | peerauthentications.security.istio.io |
Kubernetes | create delete get list patch update watch |
Operator | persistentvolumeclaims |
Kubernetes | create delete get list patch update watch |
Operator | persistentvolumes |
Kubernetes | get list watch |
Operator | poddisruptionbudgets.policy |
Kubernetes | create delete get list patch update watch |
Operator | pods |
Kubernetes | create delete get list patch update watch |
Operator | pods/exec |
Kubernetes | create |
Operator | replicasets.apps |
Kubernetes | create delete get list patch update watch |
Operator | replicasets.extensions |
Kubernetes | get list watch |
Operator | resourcequotas |
Kubernetes | create delete get list patch update watch |
Operator | rolebindings.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operator | roles.rbac.authorization.k8s.io |
Kubernetes | create delete get list patch update watch |
Operator | secrets |
Kubernetes | batch create delete get list patch update watch |
Operator | securitycontextconstraints.security.openshift.io |
Kubernetes | create get list |
Operator | serviceaccounts |
Kubernetes | create delete get list patch update watch |
Operator | services |
Kubernetes | batch create delete get list patch update watch |
Operator | signers.certificates.k8s.io |
Kubernetes | approve |
Operator | statefulsets.apps |
Kubernetes | create delete get list patch update watch |
Operator | subjectaccessreviews.authorization.k8s.io |
Kubernetes | create get list |
Operator | tokenreviews.authentication.k8s.io |
Kubernetes | create |
Operator | virtualservices.networking.istio.io |
Kubernetes | create delete get list patch update watch |
Org | apigeeorganizations.apigee.cloud.google.com |
Apigee | create delete patch update |
Org | secrets |
Kubernetes | create delete patch update |
Org | serviceaccounts |
Kubernetes | create delete patch update |
Redis | apigeeredis.apigee.cloud.google.com |
Apigee | create delete patch update |
Redis | secrets |
Kubernetes | create delete patch update |
Telemetri | apigeetelemetry.apigee.cloud.google.com |
Apigee | create delete patch update |
Telemetri | secrets |
Kubernetes | create delete patch update |
Telemetri | serviceaccounts |
Kubernetes | create delete patch update |
Host virtual | apigeerouteconfigs.apigee.cloud.google.com |
Apigee | create delete patch update |
Host virtual | secrets |
Kubernetes | create delete patch update |
Lihat juga:
Menyiapkan penginstalan
Diagram campuran Apigee dihosting di Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
Mendapatkan diagram Helm Apigee
Dengan menggunakan perintah pull
, salin semua diagram Helm hybrid Apigee ke penyimpanan lokal Anda dengan perintah berikut:
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsexport CHART_VERSION=1.10.4
helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
Menginstal Apigee Hybrid
Ringkasan urutan penginstalan
Penginstalan komponen dilakukan dari kiri ke kanan secara berurutan seperti yang ditunjukkan pada gambar berikut. Komponen yang ditumpuk secara vertikal dalam gambar dapat dipasang bersamaan dan dalam urutan apa pun. Setelah menginstal komponen apa pun, Anda dapat mengupdate komponen tersebut satu per satu dan kapan saja; misalnya, replika, memori, CPU, dan sebagainya.
Bersiap menginstal Apigee Hybrid dengan diagram Helm
-
Buat namespace yang akan digunakan untuk resource
apigee
. Kolom ini harus cocok dengan kolom namespace dalam fileoverrides.yaml
. Jika ini tidak ada dioverrides.yaml
, maka defaultnya adalahapigee
.Periksa apakah namespace sudah ada:
kubectl get namespace apigee
Jika namespace ada, output Anda akan mencakup:
NAME STATUS AGE apigee Active 1d
-
Jika namespace belum ada, buat namespace:
kubectl create namespace apigee
-
Buat akun layanan dan tetapkan peran IAM yang sesuai untuk akun tersebut. Apigee Hybrid menggunakan akun layanan berikut:
Akun layanan Peran IAM apigee-cassandra
Storage Object Admin apigee-logger
Logs Writer apigee-mart
Apigee Connect Agent apigee-metrics
Monitoring Metric Writer apigee-runtime
Peran tidak diperlukan apigee-synchronizer
Apigee Synchronizer Manager apigee-udca
Apigee Analytics Agent apigee-watcher
Apigee Runtime Agent Apigee menyediakan alat,
create-service-account
, dalam direktoriapigee-operator/etc/tools
:APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Alat ini membuat akun layanan, menetapkan peran IAM ke setiap akun, dan mendownload file sertifikat dalam format JSON untuk setiap akun.
- Buat direktori tempat Anda ingin mendownload file sertifikat akun layanan. Anda akan menentukannya dalam perintah berikut sebagai pengganti SERVICE_ACCOUNTS_PATH.
-
Anda dapat membuat semua akun layanan menggunakan satu perintah dengan
opsi berikut:
APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --env prod --dir SERVICE_ACCOUNTS_PATH
- Tampilkan daftar nama akun layanan untuk file penggantian:
ls service-accounts
my_project-apigee-cassandra.json my_project-apigee-runtime.json my_project-apigee-logger.json my_project-apigee-synchronizer.json my_project-apigee-mart.json my_project-apigee-udca.json my_project-apigee-metrics.json my_project-apigee-watcher.json
Untuk informasi lebih lanjut, lihat:
- Sebelum menginstal, lihat file
overrides.yaml
untuk memverifikasi setelan:instanceID: UNIQUE_ID_TO_IDENTIFY_THIS_CLUSTER namespace: apigee # required for Helm charts installation # By default, logger and metrics are enabled and requires below details # Google Cloud project and cluster gcp: projectID: PROJECT_ID region: REGION k8sCluster: name: CLUSTER_NAME region: REGION org: ORG_NAME envs: - name: "ENV_NAME" serviceAccountPaths: runtime: "PATH_TO_RUNTIME_SVC_ACCOUNT" synchronizer: "PATH_TO_SYNCHRONIZER_SVC_ACCOUNT" udca: "PATH_TO_UDCA_SVC_ACCOUNT" ingressGateways: - name: GATEWAY_NAME # maximum 17 characters, eg: "ingress-1". See Known issue 243167389. replicaCountMin: 1 replicaCountMax: 2 svcType: LoadBalancer virtualhosts: - name: ENV_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: GATEWAY_NAME sslSecret: SECRET_NAME mart: serviceAccountPath: "PATH_TO_MART_SVC_ACCOUNT" logger: enabled: TRUE_FALSE # lowercase without quotes, eg: true serviceAccountPath: "PATH_TO_LOGGER_SVC_ACCOUNT" metrics: enabled: TRUE_FALSE # lowercase without quotes, eg: true serviceAccountPath: "PATH_TO_METRICS_SVC_ACCOUNT" udca: serviceAccountPath: "PATH_TO_UDCA_SVC_ACCOUNT" connectAgent: serviceAccountPath: "PATH_TO_MART_SVC_ACCOUNT" watcher: serviceAccountPath: "PATH_TO_WATCHER_SVC_ACCOUNT"
Ini adalah konfigurasi penggantian yang sama dengan yang akan Anda gunakan untuk penginstalan Helm ini. Untuk setelan selengkapnya, lihat Referensi properti konfigurasi.
Untuk contoh file penggantian lainnya, lihat Langkah 6: Konfigurasi runtime hybrid.
- Aktifkan akses sinkronisasi. Ini adalah prasyarat untuk menginstal Apigee Hybrid.
-
Periksa apakah akses sinkronisasi sudah diaktifkan dengan perintah berikut:
export TOKEN=$(gcloud auth print-access-token)
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME:getSyncAuthorization" \ -d ''
Output Anda akan terlihat seperti berikut:
{ "identities":[ "serviceAccount:SYNCHRONIZER_SERVICE_ACCOUNT_ID" ], "etag":"BwWJgyS8I4w=" }
-
Jika output tidak menyertakan ID akun layanan, aktifkan akses sinkronisasi. Akun Anda harus memiliki peran IAM Admin Organisasi Apigee (
roles/apigee.admin
) untuk melakukan tugas ini.curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:SYNCHRONIZER_SERVICE_ACCOUNT_ID"'"]}'
Lihat Langkah 7: Mengaktifkan akses Sinkronisasir dalam dokumentasi penginstalan hybrid Apigee untuk mengetahui informasi yang lebih mendetail.
-
- Instal Cert Manager dengan perintah berikut:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
-
Instal CRD Apigee:
-
Gunakan fitur uji coba
kubectl
dengan menjalankan perintah berikut:kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
-
Setelah memvalidasi dengan perintah dry-run, jalankan perintah berikut:
kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
- Validasi penginstalan dengan perintah
kubectl get crds
:kubectl get crds | grep apigee
Output Anda akan terlihat seperti berikut:
apigeedatastores.apigee.cloud.google.com 2023-10-09T14:48:30Z apigeedeployments.apigee.cloud.google.com 2023-10-09T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2023-10-09T14:48:31Z apigeeissues.apigee.cloud.google.com 2023-10-09T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2023-10-09T14:48:32Z apigeeredis.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeeroutes.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2023-10-09T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2023-10-09T14:48:35Z
-
-
Periksa label yang ada pada node cluster. Secara default, Apigee menjadwalkan pod data pada node dengan label
cloud.google.com/gke-nodepool=apigee-data
, dan pod runtime dijadwalkan pada node dengan labelcloud.google.com/gke-nodepool=apigee-runtime
. Anda dapat menyesuaikan label kumpulan node dalam fileoverrides.yaml
.Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi node pool khusus.
Menginstal diagram Helm hybrid Apigee
Instal Operator/Pengontrol Apigee:
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace apigee-system \ --atomic \ -f overrides.yaml
Verifikasi penginstalan Operator Apigee:
helm ls -n apigee-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee-system 3 2023-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.10.4 1.10.4
Pastikan aplikasi aktif dan berjalan dengan memeriksa ketersediaannya:
kubectl -n apigee-system get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
-
Instal datastore Apigee:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Pastikan
apigeedatastore
aktif dan berjalan dengan memeriksa statusnya:kubectl -n apigee get apigeedatastore default
NAME STATE AGE default running 2d
-
Instal telemetri Apigee:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifikasi bahwa aplikasi aktif dan berjalan dengan memeriksa statusnya:
kubectl -n apigee get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
-
Instal Apigee Redis:
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifikasi bahwa aplikasi aktif dan berjalan dengan memeriksa statusnya:
kubectl -n apigee get apigeeredis default
NAME STATE AGE default running 2d
-
Instal pengelola ingress Apigee:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Pastikan aplikasi aktif dan berjalan dengan memeriksa ketersediaannya:
kubectl -n apigee get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
-
Instal organisasi Apigee:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Verifikasi bahwa SDK ini aktif dan berjalan dengan memeriksa statusnya dari masing-masing organisasi:
kubectl -n apigee get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
-
Menginstal lingkungan.
Anda harus menginstal lingkungan satu per satu. Tentukan lingkungan dengan
--set env=
ENV_NAME:helm upgrade apigee-env-ENV_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f overrides.yaml
Verifikasi bahwa server tersebut aktif dan berjalan dengan memeriksa status lingkungan masing-masing:
kubectl -n apigee get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
- Buat sertifikat TLS. Anda harus memberikan sertifikat TLS untuk gateway masuk runtime dalam konfigurasi hybrid Apigee.
-
Buat sertifikat. Dalam lingkungan produksi, Anda harus menggunakan sertifikat yang ditandatangani. Anda dapat menggunakan sertifikat dan pasangan kunci atau rahasia Kubernetes.
Untuk demonstrasi dan pengujian penginstalan, gateway runtime dapat menerima kredensial yang ditandatangani sendiri. Dalam contoh berikut, openssl digunakan untuk membuat kredensial yang ditandatangani sendiri:
openssl req -nodes -new -x509 \ -keyout PATH_TO_CERTS_DIRECTORY/keystore_ENV_GROUP_NAME.key \ -out PATH_TO_CERTS_DIRECTORY/keystore_ENV_GROUP_NAME.pem \ -subj '/CN='YOUR_DOMAIN'' -days 3650
Untuk mengetahui informasi selengkapnya, lihat Langkah 5: Buat sertifikat TLS.
-
Buat rahasia Kubernetes untuk mereferensikan sertifikat:
kubectl create secret generic NAME \ --from-file="cert=PATH_TO_CRT_FILE" \ --from-file="key=PATH_TO_KEY_FILE" \ -n apigee
-
-
Instal host virtual.
Anda harus menginstal satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan
--set envgroup=
ENV_GROUP_NAME:# repeat the following command for each env group mentioned in the overrides.yaml file helm upgrade apigee-virtualhost-ENV_GROUP_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f overrides.yaml
Langkah ini menghasilkan ApigeeRouteConfig (ARC) yang secara internal membuat ApigeeRoute (AR) setelah Apigee watcher mengambil detail terkait grup env dari bidang kontrol. Oleh karena itu, periksa apakah status AR yang sesuai sedang berjalan:
kubectl -n apigee get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n apigee get ar
NAME STATE AGE apigee-org1-dev-egroup-xxxxxx running 2d
Kasus penggunaan tambahan untuk diagram Helm dengan Apigee Hybrid
Pencadangan dan pemulihan Cassandra
- Untuk mengaktifkan pencadangan:
-
Perbarui detail pencadangan Cassandra di file
overrides.yaml
:cassandra: backup: enabled: true serviceAccountPath: PATH_TO_GSA_FILE dbStorageBucket: BUCKET_LINK schedule: "45 23 * * 6"
-
Jalankan upgrade Helm pada chart
apigee-datastore
:helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
-
- Demikian pula, untuk mengaktifkan pemulihan:
-
Perbarui detail pemulihan Cassandra di file
overrides.yaml
:cassandra: restore: enabled: true snapshotTimestamp: TIMESTAMP serviceAccountPath: PATH_TO_GSA_FILE cloudProvider: "CSI"
-
Jalankan upgrade Helm pada chart
apigee-datastore
:helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
-
Lihat Ringkasan pencadangan Cassandra untuk mengetahui detail selengkapnya tentang pencadangan dan pemulihan Cassandra.
Ekspansi multi-region
Penyiapan multi-region dengan diagram Helm memerlukan prasyarat yang sama dengan prosedur apigeectl
saat ini. Untuk mengetahui detailnya, lihat
Prasyarat untuk deployment multi-region.
Prosedur mengonfigurasi hybrid untuk multi-region sama dengan prosedur yang ada melalui proses konfigurasi seed host multi-region serta penyiapan cluster dan konteks Kubernetes.
Mengonfigurasi region pertama
Gunakan langkah-langkah berikut untuk mengonfigurasi region pertama dan bersiap mengonfigurasi region kedua:
- Ikuti langkah-langkah di Mengonfigurasi Apigee Hybrid untuk multi-region guna Mengonfigurasi host seed multi-region di platform Anda.
-
Untuk region pertama yang dibuat, dapatkan pod di namespace apigee:
kubectl get pods -o wide -n apigee
- Identifikasi alamat host inti multi-region untuk Cassandra di wilayah ini, misalnya
10.0.0.11
. -
Siapkan file
overrides.yaml
untuk region kedua, lalu tambahkan alamat IP host seed sebagai berikut:cassandra: multiRegionSeedHost: "SEED_HOST_IP_ADDRESS" datacenter: "DATACENTER_NAME" rack: "RACK_NAME" clusterName: CLUSTER_NAME hostNetwork: false
Ganti kode berikut:
- SEED_HOST_IP_ADDRESS dengan alamat IP host awal, misalnya
10.0.0.11
. - DATACENTER_NAME dengan nama pusat data, misalnya
dc-2
. - RACK_NAME dengan nama rak, misalnya
ra-1
. - CLUSTER_NAME dengan nama cluster Apigee Anda. Secara default, nilainya adalah
apigeecluster
. Jika menggunakan nama cluster yang berbeda, Anda harus menentukan nilai untuk cassandra.clusterName. Nilai ini harus sama di semua wilayah.
- SEED_HOST_IP_ADDRESS dengan alamat IP host awal, misalnya
Mengonfigurasi region kedua
Untuk menyiapkan region baru:
-
Instal
cert-manager
di region 2:kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
- Buat secret Kubernetes untuk akun layanan Anda.
- Buat rahasia Kubernetes untuk sertifikat ingress Anda.
- Salin sertifikat Anda dari cluster yang ada ke cluster baru.
Root CA yang baru digunakan oleh Cassandra dan komponen hibrida lainnya untuk mTLS.
Oleh karena itu, penting untuk memiliki sertifikat yang konsisten di seluruh cluster.
-
Setel konteks ke namespace asli:
kubectl config use-context ORIGINAL_CLUSTER_NAME
-
Ekspor konfigurasi namespace saat ini ke file:
kubectl get namespace apigee -o yaml > apigee-namespace.yaml
-
Ekspor rahasia
apigee-ca
ke file:kubectl -n cert-manager get secret apigee-ca -o yaml > apigee-ca.yaml
-
Tetapkan konteks ke nama cluster region baru:
kubectl config use-context NEW_CLUSTER_NAME
-
Impor konfigurasi namespace ke cluster baru. Pastikan untuk memperbarui namespace dalam file jika Anda menggunakan namespace berbeda di region baru:
kubectl apply -f apigee-namespace.yaml
-
Impor rahasia ke cluster baru:
kubectl -n cert-manager apply -f apigee-ca.yaml
-
-
Sekarang, gunakan chart Helm untuk menginstal Apigee Hybrid di region baru dengan perintah Helm Chart berikut (seperti yang dilakukan di region 1):
helm upgrade operator apigee-operator \ --install \ --create-namespace \ --namespace apigee-system \ --atomic -f overrides-DATACENTER_NAME.yaml
helm upgrade datastore apigee-datastore \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade telemetry apigee-telemetry \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade redis apigee-redis \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade ingress-manager apigee-ingress-manager \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
helm upgrade ORG_NAME apigee-org \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
# repeat the below command for each env mentioned on the overrideshelm upgrade apigee-env-ENV_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f overrides-DATACENTER_NAME.yaml
# repeat the below command for each env group mentioned on the overrideshelm upgrade apigee-virtualhost-ENV_GROUP_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f overrides-DATACENTER_NAME.yaml
- Setelah semua komponen diinstal, siapkan Cassandra di semua pod di pusat data baru. Untuk mengetahui petunjuknya, lihat Mengonfigurasi Apigee Hybrid untuk multi-region, pilih platform Anda, scroll ke Menyiapkan region baru, lalu temukan langkah 5.
- Setelah replikasi data selesai dan diverifikasi, perbarui host seed:
-
Menghapus
multiRegionSeedHost: 10.0.0.11
darioverrides-DATACENTER_NAME.yaml
. -
Terapkan kembali perubahan untuk memperbarui CR apigee datastore:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f overrides-DATACENTER_NAME.yaml
-
Menghapus
Menghosting gambar secara pribadi
Daripada mengandalkan repositori Google Cloud publik, Anda juga dapat menghosting image secara pribadi. Daripada mengganti setiap komponen, Anda dapat menambahkan detail hub pada penggantian:
hub: PRIVATE_REPO
Misalnya, jika hub berikut disediakan, hub ini akan otomatis me-resolve jalur image:
hub: private-docker-host.com
sebagai:
## an example of internal component vs 3rd party containers: - name: apigee-udca image: private-docker-host.com/apigee-udca:1.10.4 imagePullPolicy: IfNotPresent containers: - name: apigee-ingressgateway image: private-docker-host.com/apigee-asm-ingress:1.17.2-asm.8-distroless imagePullPolicy: IfNotPresent
Untuk menampilkan daftar image Apigee yang dihosting di repositori Google Cloud pada command line:
./apigee-operator/etc/tools/apigee-pull-push.sh --list
Toleransi
Untuk menggunakan
fitur Taint dan Toleransi di Kubernetes, Anda harus menentukan properti pengganti tolerations
untuk setiap komponen hybrid Apigee.
Komponen berikut mendukung penetapan toleransi:
ao
apigeeIngressGateway
cassandra
cassandraSchemaSetup
cassandraSchemaValidation
cassandraUserSetup
connectAgent
istiod
logger
mart
metrics
mintTaskScheduler
redis
runtime
synchronizer
udca
Watcher
Lihat Referensi properti konfigurasi untuk mengetahui informasi selengkapnya tentang komponen ini.
Misalnya, untuk menerapkan toleransi ke deployment operator Apigee:
ao: tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" tolerationSeconds: 3600
Untuk menerapkan toleransi ke Cassandra StatefulSet:
cassandra: tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" tolerationSeconds: 3600