Prosedur ini mencakup upgrade dari Apigee hybrid versi 1.12.x ke Apigee hybrid versi 1.13.2.
Perubahan dari Apigee hybrid v1.12
Perhatikan perubahan berikut:
-
apigee-operator
di namespace Apigee: Mulai versi 1.13,apigee-operator
berjalan di namespace Kubernetes yang sama dengan komponen campuran Apigee lainnya,apigee
secara default. Anda dapat memberikan nama apa pun untuk namespace. Pada versi sebelumnya,apigee-operator
harus berjalan di namespace-nya sendiri,apigee-system
. - Anthos (di bare metal atau VMware) kini menjadi Google Distributed Cloud (untuk bare metal atau VMware): Untuk informasi selengkapnya, lihat ringkasan produk untuk Google Distributed Cloud untuk bare metal dan Google Distributed Cloud untuk VMware.
Prasyarat
Sebelum mengupgrade ke versi campuran 1.13, pastikan penginstalan Anda memenuhi persyaratan berikut:
- Jika penginstalan campuran Anda menjalankan versi yang lebih lama dari v1.12, Anda harus mengupgrade ke versi 1.12 sebelum mengupgrade ke v1.13. Lihat Mengupgrade Apigee hybrid ke versi 1.12.
- Helm versi v3.14.2+.
kubectl
: Versikubectl
yang didukung dan sesuai untuk versi platform Kubernetes Anda. lihat Platform dan versi yang didukung:kubectl
.- cert-manager: Versi cert-manager yang didukung. Lihat Platform dan versi yang didukung: cert-manager. Jika perlu, Anda akan mengupgrade cert-manager di bagian Bersiap untuk mengupgrade ke versi 1.13 di bawah.
Ringkasan upgrade ke versi 1.13.2
Prosedur untuk mengupgrade Apigee hybrid diatur dalam bagian berikut:
Bersiap untuk mengupgrade ke versi 1.13
Mencadangkan penginstalan hybrid
- Petunjuk ini menggunakan variabel lingkungan APIGEE_HELM_CHARTS_HOME untuk direktori
dalam sistem file tempat Anda menginstal diagram Helm. Jika perlu, ubah direktori ke direktori ini dan tentukan variabel dengan perintah berikut:
Linux
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOME
Mac OS
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOME
Windows
set APIGEE_HELM_CHARTS_HOME=%CD%
echo %APIGEE_HELM_CHARTS_HOME%
- Buat salinan cadangan direktori
$APIGEE_HELM_CHARTS_HOME/
versi 1.12. Anda dapat menggunakan proses pencadangan apa pun. Misalnya, Anda dapat membuat filetar
dari seluruh direktori dengan:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.12-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
- Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra.
- Jika Anda menggunakan file sertifikat layanan (
.json
) dalam penggantian untuk mengautentikasi akun layanan, pastikan file sertifikat akun layanan Anda berada di direktori diagram Helm yang benar. Diagram Helm tidak dapat membaca file di luar setiap direktori diagram.Langkah ini tidak diperlukan jika Anda menggunakan secret Kubernetes atau Workload Identity untuk mengautentikasi akun layanan.
Tabel berikut menunjukkan tujuan untuk setiap file akun layanan, bergantung pada jenis penginstalan Anda:
Prod
Akun layanan Nama file default Direktori diagram Helm apigee-cassandra
PROJECT_ID-apigee-cassandra.json
$APIGEE_HELM_CHARTS_HOME/apigee-datastore/
apigee-logger
PROJECT_ID-apigee-logger.json
$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
apigee-mart
PROJECT_ID-apigee-mart.json
$APIGEE_HELM_CHARTS_HOME/apigee-org/
apigee-metrics
PROJECT_ID-apigee-metrics.json
$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
apigee-runtime
PROJECT_ID-apigee-runtime.json
$APIGEE_HELM_CHARTS_HOME/apigee-env
apigee-synchronizer
PROJECT_ID-apigee-synchronizer.json
$APIGEE_HELM_CHARTS_HOME/apigee-env/
apigee-udca
PROJECT_ID-apigee-udca.json
$APIGEE_HELM_CHARTS_HOME/apigee-org/
apigee-watcher
PROJECT_ID-apigee-watcher.json
$APIGEE_HELM_CHARTS_HOME/apigee-org/
Non-prod
Buat salinan file akun layanan
apigee-non-prod
di setiap direktori berikut:Akun layanan Nama file default Direktori diagram Helm apigee-non-prod
PROJECT_ID-apigee-non-prod.json
$APIGEE_HELM_CHARTS_HOME/apigee-datastore/
$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
$APIGEE_HELM_CHARTS_HOME/apigee-org/
$APIGEE_HELM_CHARTS_HOME/apigee-env/
-
Pastikan sertifikat TLS dan file kunci (
.crt
,.key
, dan/atau.pem
) berada di direktori$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/
.
Mengupgrade versi Kubernetes
Periksa versi platform Kubernetes Anda dan jika perlu, upgrade platform Kubernetes ke versi yang didukung oleh hybrid 1.12 dan hybrid 1.13. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan.
Menginstal runtime hybrid 1.13.2
Bersiap untuk upgrade diagram Helm
- Ambil diagram Helm Apigee.
Diagram hybrid Apigee dihosting di Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
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-charts
export CHART_VERSION=1.13.2
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
- Upgrade cert-manager jika diperlukan.
Jika Anda perlu mengupgrade versi cert-manager, instal versi baru dengan perintah berikut:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.1/cert-manager.yaml
Lihat Platform dan versi yang didukung: cert-manager untuk mengetahui daftar versi yang didukung.
- Jika namespace Apigee Anda bukan
apigee
, edit fileapigee-operator/etc/crds/default/kustomization.yaml
dan ganti nilainamespace
dengan namespace Apigee Anda.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
Jika menggunakan
apigee
sebagai namespace, Anda tidak perlu mengedit file. - Instal CRD Apigee yang telah diperbarui:
-
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 2024-08-21T14:48:30Z apigeedeployments.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeissues.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2024-08-21T14:48:32Z apigeeredis.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeeroutes.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2024-08-21T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2024-08-21T14:48:35Z
-
-
Migrasikan
apigee-operator
dari namespaceapigee-system
ke APIGEE_NAMESPACE.- Anotasikan
clusterIssuer
dengan namespace barukubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='APIGEE_NAMESPACE'
- Jika Anda mengubah nama rilis untuk
apigee-operator
, anotasikanclusterIssuer
dengan nama rilis baru.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='APIGEE_OPERATOR_RELEASE_NAME'
- Anotasikan
- Perbarui replika deployment Apigee Operator yang ada di namespace
apigee-system
menjadi 0 (nol) untuk menghindari rekonsiliasi kedua pengontrol.kubectl scale deployment apigee-controller-manager -n apigee-system --replicas=0
- Perbarui replika deployment Apigee Operator yang ada di namespace
apigee-system
menjadi 0 (nol) untuk menghindari rekonsiliasi kedua pengontrol.kubectl delete mutatingwebhookconfiguration apigee-mutating-webhook-configuration
kubectl delete validatingwebhookconfiguration apigee-validating-webhook-configuration
-
Periksa label pada 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
- Jika belum, buka direktori
APIGEE_HELM_CHARTS_HOME
. Jalankan perintah berikut dari direktori tersebut. - Upgrade Operator/Pengontrol Apigee:
Uji coba:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Upgrade diagram:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifikasi penginstalan Apigee Operator:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2024-08-21 00:42:44.492009 -0800 PST deployed apigee-operator-1.13.2 1.13.2
Pastikan server sudah aktif dan berjalan dengan memeriksa ketersediaannya:
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
- Upgrade datastore Apigee:
Uji coba:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Upgrade diagram:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifikasi bahwa
apigeedatastore
sudah aktif dan berjalan dengan memeriksa statusnya:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 2d
- Mengupgrade telemetri Apigee:
Uji coba:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Upgrade diagram:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa statusnya:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Mengupgrade Redis Apigee:
Uji coba:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Upgrade diagram:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa statusnya:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- Mengupgrade pengelola ingress Apigee:
Uji coba:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Upgrade diagram:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan server sudah aktif dan berjalan dengan memeriksa ketersediaannya:
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
- Upgrade organisasi Apigee:
Uji coba:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Upgrade diagram:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan aplikasi tersebut sudah aktif dan berjalan dengan memeriksa status organisasi masing-masing:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
- Mengupgrade lingkungan.
Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan
--set env=
ENV_NAME.Uji coba:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run
- ENV_RELEASE_NAME adalah nama yang Anda gunakan untuk menginstal diagram
apigee-env
sebelumnya. Di hybrid v1.10, biasanyaapigee-env-ENV_NAME
. Di Hybrid v1.11 dan yang lebih baru, biasanya ENV_NAME. - ENV_NAME adalah nama lingkungan yang Anda upgrade.
- OVERRIDES_FILE adalah file penggantian baru untuk v.1.13.2
Upgrade diagram:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
Pastikan aplikasi sudah aktif dan berjalan dengan memeriksa status setiap lingkungan:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
- ENV_RELEASE_NAME adalah nama yang Anda gunakan untuk menginstal diagram
-
Upgrade grup lingkungan (
virtualhosts
).- Anda harus mengupgrade satu grup lingkungan (virtualhost) satu per satu. Tentukan grup lingkungan dengan
--set envgroup=
ENV_GROUP_NAME. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file overrides.yaml:Uji coba:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE \ --dry-run
ENV_GROUP_RELEASE_NAME adalah nama yang Anda gunakan untuk menginstal diagram
apigee-virtualhost
sebelumnya. Di hybrid v1.10, biasanyaapigee-virtualhost-ENV_GROUP_NAME
. Di Hybrid v1.11 dan yang lebih baru, nilai ini biasanya ENV_GROUP_NAME.Upgrade diagram:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
- Periksa status ApigeeRoute (AR).
Menginstal
virtualhosts
akan membuat ApigeeRouteConfig (ARC) yang secara internal membuat ApigeeRoute (AR) setelah pengamat Apigee mengambil detail terkait grup lingkungan dari bidang kontrol. Oleh karena itu, pastikan status AR yang sesuai sedang berjalan:kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-org1-dev-egroup-xxxxxx running 2d
- Anda harus mengupgrade satu grup lingkungan (virtualhost) satu per satu. Tentukan grup lingkungan dengan
- Setelah Anda memverifikasi bahwa semua penginstalan berhasil diupgrade, hapus rilis
apigee-operator
yang lebih lama dari namespaceapigee-system
.- Uninstal rilis
operator
lama:helm delete operator -n apigee-system
- Hapus namespace
apigee-system
:kubectl delete namespace apigee-system
- Uninstal rilis
- Upgrade
operator
lagi di namespace Apigee Anda untuk menginstal ulang resource cakupan cluster yang dihapus:helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
Melakukan roll back ke versi sebelumnya
Untuk melakukan rollback ke versi sebelumnya, gunakan versi diagram yang lebih lama untuk melakukan rollback proses upgrade dalam urutan terbalik. Mulai dengan apigee-virtualhost
dan kembali ke apigee-operator
, lalu kembalikan CRD.
Karena perubahan namespace untuk apigee-operator
, Anda perlu melakukan langkah tambahan untuk menghapus hook validasi dan mutasi. Dengan begitu, saat Anda menginstal kembali apigee-operator
di namespace apigee-system
, apigee-operator
akan dibuat ulang untuk mengarah ke endpoint Operator Apigee yang benar.
- Perbarui replika deployment Operator Apigee yang ada di Apigee menjadi 0 (nol) agar kedua pengontrol tidak merekonsiliasi Resource Kustom untuk menghindari konflik saat melakukan rollback di namespace
apigee-system
.kubectl scale deployment apigee-controller-manager -n APIGEE_NAMESPACE --replicas=0
kubectl delete mutatingwebhookconfiguration \ apigee-mutating-webhook-configuration-APIGEE_NAMESPACE
kubectl delete validatingwebhookconfiguration \ apigee-validating-webhook-configuration-APIGEE_NAMESPACE
- Kembalikan semua diagram dari
apigee-virtualhost
keapigee-datastore
. Perintah berikut mengasumsikan bahwa Anda menggunakan diagram dari versi sebelumnya (v1.12.x).Jalankan perintah berikut untuk setiap grup lingkungan:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f 1.12_OVERRIDES_FILE
Jalankan perintah berikut untuk setiap lingkungan:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f 1.12_OVERRIDES_FILE
Kembalikan diagram yang tersisa kecuali
apigee-operator
.helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f 1.12_OVERRIDES_FILE
- Buat namespace
apigee-system
.kubectl create namespace apigee-system
- Patch anotasi resource kembali ke namespace
apigee-system
.kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
- Jika Anda juga telah mengubah nama rilis, perbarui anotasi dengan nama rilis
operator
.kubectl annotate --overwrite cluseterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
- Instal
apigee-operator
kembali ke namespaceapigee-system
.helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.12_OVERRIDES_FILE
- Kembalikan CRD dengan menginstal ulang CRD lama.
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
- Bersihkan rilis
apigee-operator
dari namespace APIGEE_NAMESPACE untuk menyelesaikan proses rollback.helm uninstall operator -n APIGEE_NAMESPACE
- Beberapa resource cakupan cluster, seperti
clusterIssuer
, akan dihapus saatoperator
di-uninstal. Instal ulang dengan perintah berikut:helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.12_OVERRIDES_FILE