Dokumen ini memandu Anda melalui proses langkah demi langkah untuk menginstal Apigee hybrid v1.10 menggunakan diagram Helm.
Versi
Diagram Helm Apigee hybrid ditujukan untuk digunakan dengan Apigee hybrid v1.10.x. Lihat Histori rilis Apigee hybrid untuk daftar rilis hybrid.
Prasyarat
- Apigee Hybrid 1.10.5
- Helm v3.10+
-
Akses ke repositori diagram Helm Apigee hybrid di:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
- gcloud CLI
- Project Google Cloud untuk penginstalan hybrid Apigee Anda. Lihat Membuat dan mengelola project
- Cluster Kubernetes untuk penginstalan Apigee hybrid Anda. Lihat:
Cakupan
- Rilis ini hanya mendukung Apigee hybrid versi 1.10.5.
-
Rilis ini mendukung:
- Penginstalan Apigee hybrid baru.
- Penginstalan hybrid Apigee yang ada diupgrade ke versi 1.10.5 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, kita akan menggunakan perintah
kubectl -k
untuk menginstal dan mengupgradenya. Kami berupaya mengikuti praktik terbaik komunitas dan Google terkait pengelolaan Kubernetes. Deployment CRD melalui Helm belum mencapai status komunitas tempat kami melihat dukungan yang luas, atau permintaan untuk model tersebut. Oleh karena itu, pengelolaan CRD Apigee harus dilakukan menggunakankubectl
seperti yang disebutkan dalam dokumen ini. -
Di
apigeectl
, kita telah menggunakan file di seluruhoverrides.yaml
untuk akun layanan dan sertifikat; namun, Helm tidak mendukung file referensi di luar direktori diagram. Pilih salah satu opsi berikut untuk akun layanan dan file sertifikat:- Menempatkan 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 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 secret Kubernetes yang Anda buat.
- CLOUD_IAM_FILE_NAME.json dengan nama file JSON yang didownload.
Platform dan versi Kubernetes yang didukung
Untuk daftar platform yang didukung, lihat kolom v1.10 di tabel platform yang didukung Apigee hybrid.
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, ketikkan istilah penelusuran, atau klik judul kolom untuk mengurutkan.
Kategori | Resource | Jenis resource | 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 |
Env | apigeeenvironments.apigee.cloud.google.com |
Apigee | create delete patch update |
Env | secrets |
Kubernetes | create delete patch update |
Env | serviceaccounts |
Kubernetes | create delete patch update |
Pengelola ingress | certificates.cert-manager.io |
Kubernetes | create delete patch update |
Pengelola ingress | configmaps |
Kubernetes | create delete patch update |
Pengelola ingress | deployments.apps |
Kubernetes | create get delete patch update |
Pengelola ingress | horizontalpodautoscalers.autoscaling |
Kubernetes | create delete patch update |
Pengelola ingress | issuers.cert-manager.io |
Kubernetes | create delete patch update |
Pengelola ingress | serviceaccounts |
Kubernetes | create delete patch update |
Pengelola ingress | 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 | create 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 hybrid Apigee dihosting di Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
Menarik diagram Helm Apigee
Dengan menggunakan perintah pull
, salin semua diagram Helm hibrida 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.5
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
Pemasangan komponen dilakukan dari kiri ke kanan secara berurutan seperti yang ditunjukkan pada gambar berikut. Komponen yang ditumpuk secara vertikal dalam gambar dapat diinstal bersama 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 untuk menginstal Apigee hybrid dengan diagram Helm
-
Buat namespace yang akan digunakan untuk resource
apigee
. Nama ini harus cocok dengan kolom namespace dalam fileoverrides.yaml
. Jika tidak ada dioverrides.yaml
, defaultnya adalahapigee
.Periksa apakah namespace sudah ada:
kubectl get namespace apigee
Jika namespace ada, output Anda akan menyertakan:
NAME STATUS AGE apigee Active 1d
-
Jika namespace belum ada, buat namespace:
kubectl create namespace apigee
-
Buat namespace
apigee-system
yang digunakan oleh resource operator Apigee.Periksa apakah namespace sudah ada:
kubectl get namespace apigee-system
-
Jika namespace belum ada, buat namespace:
kubectl create namespace apigee-system
-
Buat akun layanan dan tetapkan peran IAM yang sesuai kepada akun tersebut. Apigee hybrid menggunakan akun layanan berikut:
Akun layanan Peran IAM apigee-cassandra
Storage Object Admin apigee-logger
Penulis Log apigee-mart
Apigee Connect Agent apigee-metrics
Penulis Metrik Pemantauan apigee-runtime
Tidak ada peran yang diperlukan apigee-synchronizer
Apigee Synchronizer Manager apigee-udca
Apigee Analytics Agent apigee-watcher
Apigee Runtime Agent Apigee menyediakan alat,
create-service-account
, di 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 dengan satu perintah dengan
opsi berikut:
APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --env prod --dir SERVICE_ACCOUNTS_PATH
- Cantumkan nama akun layanan Anda 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 selengkapnya, 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 lainnya, lihat Referensi properti konfigurasi.
Untuk contoh file penggantian lainnya, lihat Langkah 6: Mengonfigurasi runtime campuran.
- 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 Synchronizer dalam dokumentasi penginstalan hybrid Apigee untuk mengetahui informasi yang lebih mendetail.
-
- Instal Pengelola Sertifikat 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 uji coba, 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 di node cluster. Secara default, Apigee menjadwalkan pod data di node dengan label
cloud.google.com/gke-nodepool=apigee-data
dan pod runtime dijadwalkan di node dengan labelcloud.google.com/gke-nodepool=apigee-runtime
. Anda dapat menyesuaikan label node pool di fileoverrides.yaml
.Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi node pool khusus.
Menginstal diagram Helm Apigee hybrid
Instal Operator/Pengontrol Apigee:
helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f overrides.yaml
Verifikasi penginstalan Apigee Operator:
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.5 1.10.5
Pastikan server sudah 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
Verifikasi bahwa
apigeedatastore
sudah 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 sudah 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
Pastikan server tersebut 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 server sudah 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
-
Menginstal organisasi Apigee:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Pastikan aplikasi tersebut sudah aktif dan berjalan dengan memeriksa status organisasi masing-masing:
kubectl -n apigee get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
-
Instal lingkungan.
Anda harus menginstal satu lingkungan dalam satu waktu. 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
Pastikan aplikasi sudah aktif dan berjalan dengan memeriksa status setiap lingkungan:
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 ingress runtime dalam konfigurasi campuran Apigee.
-
Buat sertifikat. Dalam lingkungan produksi, Anda harus menggunakan sertifikat yang ditandatangani. Anda dapat menggunakan sertifikat dan pasangan kunci atau secret Kubernetes.
Untuk penginstalan demonstrasi dan pengujian, gateway runtime dapat menerima kredensial yang ditandatangani sendiri. Pada 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 informasi selengkapnya, lihat Langkah 5: Membuat sertifikat TLS.
-
Buat secret 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
Tindakan ini akan membuat ApigeeRouteConfig (ARC) yang secara internal membuat ApigeeRoute (AR) setelah pengamat Apigee mengambil detail terkait grup env dari bidang kontrol. Oleh karena itu, pastikan 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 dalam file
overrides.yaml
:cassandra: backup: enabled: true serviceAccountPath: PATH_TO_GSA_FILE dbStorageBucket: BUCKET_LINK schedule: "45 23 * * 6"
-
Jalankan upgrade Helm pada diagram
apigee-datastore
:helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
-
- Demikian pula, untuk mengaktifkan pemulihan:
-
Perbarui detail pemulihan Cassandra dalam file
overrides.yaml
:cassandra: restore: enabled: true snapshotTimestamp: TIMESTAMP serviceAccountPath: PATH_TO_GSA_FILE cloudProvider: "CSI"
-
Jalankan upgrade Helm pada diagram
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.
Perluasan 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 untuk mengonfigurasi hybrid untuk multi-region sama dengan prosedur yang ada hingga proses mengonfigurasi host seed multi-region dan menyiapkan cluster dan konteks Kubernetes.
Mengonfigurasi region pertama
Gunakan langkah-langkah berikut untuk mengonfigurasi region pertama dan bersiap untuk mengonfigurasi region kedua:
- Ikuti langkah-langkah di artikel 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 seed multi-region untuk Cassandra di region ini, misalnya
10.0.0.11
. -
Siapkan file
overrides.yaml
untuk region kedua dan 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 seed, 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 region.
- SEED_HOST_IP_ADDRESS dengan alamat IP host seed, misalnya
Mengonfigurasi region kedua
Untuk menyiapkan wilayah 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
- Salin sertifikat Anda dari cluster yang ada ke cluster baru.
Root CA baru digunakan oleh Cassandra dan komponen campuran lainnya untuk mTLS.
Oleh karena itu, penting untuk memiliki sertifikat yang konsisten di seluruh cluster.
-
Tetapkan 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 secret
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 yang berbeda di region baru:
kubectl apply -f apigee-namespace.yaml
-
Impor secret ke cluster baru:
kubectl -n cert-manager apply -f apigee-ca.yaml
-
-
Sekarang, gunakan diagram Helm untuk menginstal Apigee hybrid di region baru dengan perintah Diagram Helm berikut (seperti yang dilakukan di region 1):
helm upgrade operator apigee-operator \ --install \ --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
.Entri
multiRegionSeedHost
tidak lagi diperlukan setelah replikasi data dibuat, dan IP pod diperkirakan akan berubah dari waktu ke waktu. -
Terapkan kembali perubahan untuk memperbarui CR datastore apigee:
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 dapat memilih untuk menghosting image secara pribadi. Daripada mengganti setiap komponen, Anda dapat menambahkan detail hub pada penggantian:
hub: PRIVATE_REPO
Misalnya, jika hub berikut disediakan, hub tersebut akan otomatis me-resolve jalur gambar:
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.5 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 di command line:
./apigee-operator/etc/tools/apigee-pull-push.sh --list
Toleransi
Untuk menggunakan
fitur Taints dan Tolerations Kubernetes, Anda harus menentukan
properti penggantian tolerations
untuk setiap komponen campuran Apigee.
Komponen berikut mendukung penentuan 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 StatefulSet Cassandra:
cassandra: tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" tolerationSeconds: 3600
Meng-uninstal Apigee hybrid dengan Helm
Untuk meng-uninstal update atau rilis tertentu, Anda dapat menggunakan perintah helm [uninstall/delete] RELEASE-NAME -n NAMESPACE
.
Gunakan langkah-langkah berikut untuk meng-uninstal Apigee Hybrid sepenuhnya dari cluster:
- Hapus virtualhost. Jalankan perintah ini untuk setiap virtualhost:
helm -n apigee delete VIRTUALHOST_RELEASE-NAME
- Hapus lingkungan. Jalankan perintah ini untuk setiap env:
helm -n apigee delete ENV_RELEASE-NAME
- hapus organisasi Apigee:
helm -n apigee delete ORG_RELEASE-NAME
- delete telemetry:
helm -n apigee delete TELEMETRY_RELEASE-NAME
- Menghapus redis:
helm -n apigee delete REDIS_RELEASE-NAME
- Hapus pengelola ingress:
helm -n apigee delete INGRESS_MANAGER_RELEASE-NAME
- Hapus datastore:
helm -n apigee delete DATASTORE_RELEASE-NAME
- Menghapus operator.
- Pastikan semua CR dihapus sebelum:
kubectl -n apigee get apigeeds, apigeetelemetry, apigeeorg, apigreeenv, arc, apigeeredis
- Hapus Operator Apigee:
helm -n apigee-system delete OPERATOR_RELEASE-NAME
- Pastikan semua CR dihapus sebelum:
- Hapus CRD hybrid Apigee:
kubectl delete -k apigee-operator/etc/crds/default/