Prosedur ini mencakup upgrade dari Apigee Hybrid versi 1.12.x ke Apigee Hybrid versi 1.13.0.
Perubahan dari Apigee Hybrid v1.12
Harap perhatikan perubahan berikut:
-
apigee-operator
di namespace Apigee: Mulai versi 1.13,apigee-operator
berjalan di namespace Kubernetes yang sama dengan komponen hybrid Apigee lainnya,apigee
secara default. Anda dapat memberikan nama apa pun untuk namespace. Di versi sebelumnya,apigee-operator
telah yang diperlukan agar dapat berjalan di namespace-nya sendiri,apigee-system
. - Anthos (on bare metal atau VMware) kini menjadi Google Distributed Cloud (untuk bare metal atau VMware): Untuk informasi selengkapnya lihat ringkasan produk untuk Google Distributed Cloud for bare metal dan Google Distributed Cloud for VMware.
Prasyarat
Sebelum mengupgrade ke hybrid versi 1.13, pastikan penginstalan 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.10+.
kubectl
versi 1.27, 1.28, atau 1.29 (direkomendasikan).- cert-manager versi v1.15.1. Jika perlu, Anda akan mengupgrade cert-manager di bagian Bersiap untuk mengupgrade ke versi di bawah.
Upgrade ke ringkasan versi 1.13.0
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
di sistem file Anda di mana Anda
menginstal bagan 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
) di untuk mengautentikasi akun layanan, pastikan file sertifikat akun layanan Anda berada di direktori {i> Helm chart <i}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 layanan file akun, bergantung pada jenis penginstalan Anda:
Prod
Akun layanan Nama file default Direktori chart 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-produk
Buat salinan file akun layanan
apigee-non-prod
di setiap direktori berikut:Akun layanan Nama file default Direktori chart 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 Anda (
.crt
,.key
, dan/atau.pem
) berada di direktori$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/
.
Mengupgrade versi Kubernetes Anda
Periksa versi platform Kubernetes Anda, dan jika perlu, upgrade platform Kubernetes Anda ke versi baru yang didukung oleh model hybrid 1.12 dan hybrid 1,13. Ikuti dokumentasi platform jika Anda memerlukan bantuan.
Menginstal runtime hybrid 1.13.0
Bersiap untuk upgrade diagram Helm
- Ambil chart Helm Apigee.
Diagram hybrid Apigee dihosting di Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
Menggunakan perintah
pull
, salin semua Helm hybrid Apigee diagram 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.0-hotfix.1
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 pengelola sertifikat 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
- Jika namespace Apigee bukan
apigee
, edit fileapigee-operator/etc/crds/default/kustomization.yaml
dan ganti nilainamespace
dengan namespace Apigee.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
- Update replika deployment Operator Apigee yang ada di namespace
apigee-system
menjadi 0 (nol) agar kedua pengontrol tidak disesuaikan.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 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 informasi selengkapnya, lihat Mengonfigurasi kumpulan node khusus.
Menginstal diagram Helm hybrid Apigee
- Jika belum, buka direktori
APIGEE_HELM_CHARTS_HOME
Anda. 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
Tingkatkan diagram:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifikasi penginstalan Operator Apigee:
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.0 1.13.0
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
Tingkatkan diagram:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan
apigeedatastore
sudah aktif dan berjalan dengan memeriksa statusnya:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 2d
- Upgrade telemetri Apigee:
Uji coba:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Tingkatkan diagram:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan aplikasi tersebut aktif dan berjalan dengan memeriksa statusnya:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Upgrade Apigee Redis:
Uji coba:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Tingkatkan diagram:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan aplikasi tersebut aktif dan berjalan dengan memeriksa statusnya:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- Upgrade ingress manager Apigee:
Uji coba:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
Tingkatkan 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
Tingkatkan diagram:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan aplikasi tersebut aktif dan berjalan dengan memeriksa status organisasi masing-masing:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
- Upgrade lingkungan.
Anda harus menginstal lingkungan satu per satu. 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. Pada v1.10 hibrida, biasanyaapigee-env-ENV_NAME
. Dalam 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.0
Tingkatkan 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 grup lingkungan (virtualhost) dalam satu waktu. 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 sebelumnya Anda gunakan untuk menginstal Diagram
apigee-virtualhost
. Pada v1.10 hibrida, biasanyaapigee-virtualhost-ENV_GROUP_NAME
. Dalam Hybrid v1.11 dan yang lebih baru, biasanya ENV_GROUP_NAME.Tingkatkan 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, periksa bahwa nilai Status AR 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 grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan
- Setelah memastikan bahwa semua penginstalan berhasil diupgrade, hapus rilis
apigee-operator
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 untuk menginstal ulang resource cakupan cluster yang telah dihapus:helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
Melakukan roll back ke versi sebelumnya
Untuk melakukan roll back ke versi sebelumnya, gunakan diagram versi lama untuk me-roll back proses upgrade dalam urutan terbalik. Mulai dengan apigee-virtualhost
dan lanjutkan ke apigee-operator
, lalu kembalikan CRD.
Karena adanya perubahan namespace untuk apigee-operator
, Anda perlu melakukan langkah-langkah tambahan untuk menghapus hook penerimaan yang Memvalidasi dan Memutasi. Dengan demikian, saat Anda menginstal kembali apigee-operator
di namespace apigee-system
, fungsi tersebut akan dibuat ulang agar mengarah ke endpoint Operator Apigee yang benar.
- Update replika deployment Operator Apigee yang ada di Apigee ke 0 (nol) agar kedua pengontrol tidak merekonsiliasi Resource Kustom untuk menghindari konflik saat melakukan roll back 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
- Putar ulang CRD dengan menginstal ulang CRD yang lebih 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 aplikasi tersebut dengan perintah berikut:helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.12_OVERRIDES_FILE