Prosedur ini mencakup upgrade dari Apigee Hybrid versi 1.11.x ke Apigee Hybrid versi 1.12.3.
Perubahan dari Apigee hybrid v1.11
Apigee hybrid versi 1.12 memperkenalkan perubahan berikut yang memengaruhi proses upgrade. Untuk daftar lengkap fitur di v1.12, lihat Catatan Rilis hybrid v1.12.0.
- Cassandra 4.x: Mulai versi 1.12, Apigee hybrid menggunakan Cassandra versi 4+.
-
Penghentian penggunaan
apigeectl
: Mulai versi 1.12, Apigee hybrid hanya mendukung Helm untuk menginstal dan mengelola penginstalan hybrid Anda. -
Rangkaian metrik baru untuk memantau proxy Apigee dan endpoint target kini tersedia. Untuk hybrid v1.12, resource yang dipantau
ProxyV2
danTargetV2
tidak akan lagi digunakan secara default. Semua metrik proxy dan target akan dipublikasikan ke resource yang dimonitorProxy
danTarget
.Untuk terus memunculkan metrik ke resource yang dipantau
ProxyV2
danTargetV2
, tetapkanmetrics.disablePrometheusPipeline
ketrue
dioverrides.yaml
.Jika Anda telah mengonfigurasi pemberitahuan berbasis metrik, konfirmasi penggunaan metrik yang benar untuk penginstalan campuran Anda. Untuk mengetahui informasi selengkapnya, lihat Notifikasi berbasis metrik.
Pertimbangan sebelum memulai upgrade ke versi 1.12
Mengupgrade dari Apigee hybrid versi 1.11 ke versi 1.12 mencakup upgrade database Cassandra dari versi 3.11.x ke versi 4.x. Meskipun upgrade Cassandra ditangani sebagai bagian dari prosedur upgrade hybrid Apigee, harap rencanakan pertimbangan berikut:
- Upgrade versi Cassandra akan dilakukan di latar belakang dan akan dilakukan di 1 pod (atau node Cassandra) pada satu waktu, jadi rencanakan kapasitas database yang berkurang selama upgrade.
- Skalakan kapasitas Cassandra dan pastikan penggunaan disk mendekati atau di bawah 50% sebelum Anda mulai mengupgrade.
- Validasi dan uji prosedur pencadangan dan pemulihan Cassandra Anda.
- Cadangkan data Cassandra di penginstalan hibrida versi 1.11 sebelum Anda mulai mengupgrade dan memvalidasi cadangan.
- Mengupgrade
apigee-datastore
akan menyebabkan peningkatan konsumsi CPU sementara karena tugas pasca-upgrade yang dilakukan olehCassandra
- Setelah mengupgrade komponen
apigee-datastore
(Cassandra), Anda tidak dapat melakukan roll back komponen tersebut ke versi sebelumnya. Ada dua skenario untuk melakukan rollback upgrade ke hybrid v1.12 setelah mengupgrade komponenapigee-datastore
:- Jika komponen
apigee-datastore
dalam status baik, tetapi komponen lain memerlukan rollback, Anda dapat melakukan rollback pada komponen lain tersebut satu per satu. - Jika komponen
apigee-datastore
dalam status buruk, Anda harus memulihkan dari cadangan v1.11 ke penginstalan v1.11.
- Jika komponen
Pertimbangan sebelum mengupgrade penginstalan satu region
Jika Anda perlu melakukan roll back ke versi Apigee hybrid sebelumnya, proses ini mungkin memerlukan periode nonaktif. Oleh karena itu, jika mengupgrade penginstalan satu region, sebaiknya buat region kedua, lalu upgrade hanya satu region pada satu waktu dalam urutan berikut:
- Tambahkan region kedua ke penginstalan yang ada menggunakan versi campuran yang sama. Lihat Deployment multi-region dalam dokumentasi versi 1.11.
- Cadangkan dan validasi data dari region pertama sebelum memulai upgrade. Lihat Ringkasan pencadangan Cassandra dalam dokumentasi versi 1.11.
- Upgrade wilayah yang baru ditambahkan ke hybrid 1.12.
- Alihkan traffic ke region baru dan validasi traffic.
- Setelah divalidasi, upgrade region yang lebih lama dengan hybrid 1.12.
- Alihkan semua traffic kembali ke region lama dan validasi traffic.
- Nonaktifkan region baru.
Pertimbangan sebelum mengupgrade penginstalan multi-region
Apigee merekomendasikan urutan berikut untuk mengupgrade penginstalan multi-region:
- Cadangkan dan validasi data dari setiap region sebelum memulai upgrade.
- Upgrade versi Hybrid di satu region dan pastikan semua pod dalam status berjalan untuk memvalidasi upgrade.
- Validasi traffic di wilayah yang baru diupgrade.
- Upgrade setiap region berikutnya hanya setelah memvalidasi traffic di region sebelumnya.
- Jika ada kemungkinan perlunya melakukan rollback upgrade dalam deployment multi-region, bersiaplah untuk mengalihkan traffic dari region yang gagal, pertimbangkan untuk menambahkan kapasitas yang memadai di region tempat traffic akan dialihkan untuk menangani traffic untuk kedua region.
Prasyarat
Sebelum mengupgrade ke versi campuran 1.12, pastikan penginstalan Anda memenuhi persyaratan berikut:
- Penginstalan Apigee hybrid versi 1.11 yang dikelola dengan Helm.
- Jika mengelola penginstalan hybrid dengan
apigeectl
, Anda harus memigrasikan cluster ke pengelolaan Helm terlebih dahulu. Lihat Memigrasikan Apigee hybrid ke Helm dari apigeectl dalam dokumentasi hybrid v1.11. - Jika penginstalan campuran Anda menjalankan versi yang lebih lama dari v1.11, Anda harus mengupgrade ke versi 1.11 sebelum mengupgrade ke v1.12. lihat Mengupgrade Apigee hybrid ke versi 1.11.
- Jika mengelola penginstalan hybrid dengan
- Helm versi v3.14.2+.
kubectl
versi 1.27, 1.28, atau 1.29 (direkomendasikan).- cert-manager versi v1.13.0. Jika perlu, Anda akan mengupgrade cert-manager di bagian Bersiap untuk mengupgrade ke versi di bawah.
Batasan
Perhatikan batasan berikut saat merencanakan upgrade dari versi hybrid Apigee 1.11 ke versi 1.12. Perencanaan dapat membantu mengurangi kebutuhan untuk periode nonaktif jika Anda perlu melakukan roll back atau pemulihan setelah upgrade.
- Cadangan dari Hybrid 1.12 tidak dapat dipulihkan di Hybrid 1.11 dan sebaliknya, karena inkompatibilitas antara kedua versi tersebut.
- Anda tidak dapat menskalakan pod datastore selama upgrade ke versi 1.12. Atasi kebutuhan penskalaan Anda di semua region sebelum Anda mulai mengupgrade penginstalan campuran.
- Dalam penginstalan campuran satu region, Anda tidak dapat melakukan rollback komponen datastore setelah proses upgrade datastore selesai. Anda tidak dapat memutar kembali datastore Cassandra 4.x ke datastore Cassandra 3.x. Tindakan ini akan memerlukan pemulihan dari cadangan terbaru data Cassandra 3.x (dari penginstalan versi campuran 1.11).
- Penghapusan atau penambahan region tidak didukung selama upgrade. Dalam upgrade multi-region, Anda harus menyelesaikan upgrade semua region sebelum dapat menambahkan atau menghapus region.
Ringkasan upgrade ke versi 1.12.3
Prosedur untuk mengupgrade Apigee hybrid diatur dalam bagian berikut:
Bersiap untuk mengupgrade ke versi 1.12
Mencadangkan cassandra
- Cadangkan database Cassandra di semua region yang berlaku dan validasi data dalam penginstalan hibrida versi 1.11 sebelum memulai upgrade. Lihat Memantau pencadangan dalam dokumentasi versi 1.11.
- Mulai ulang semua pod Cassandra di cluster sebelum Anda memulai proses upgrade, sehingga masalah yang tersisa dapat muncul.
Untuk memulai ulang dan menguji pod Cassandra, hapus setiap pod satu per satu, lalu validasi bahwa pod tersebut kembali dalam status berjalan dan bahwa probe kesiapan lulus:
-
Cantumkan pod cassandra:
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
Contoh:
kubectl get pods -n apigee -l app=apigee-cassandra
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 2h apigee-cassandra-default-1 1/1 Running 0 2h apigee-cassandra-default-2 1/1 Running 0 2h . . . -
Menghapus pod:
kubectl delete pod -n APIGEE_NAMESPACE CASSANDRA_POD_NAME
Contoh:
kubectl delete pod -n apigee apigee-cassandra-default-0
-
Periksa status dengan mencantumkan pod cassandra lagi:
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
Contoh:
kubectl get pods -n apigee -l app=apigee-cassandra
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 16s apigee-cassandra-default-1 1/1 Running 0 2h apigee-cassandra-default-2 1/1 Running 0 2h . . .
-
Cantumkan pod cassandra:
- Terapkan lagi file penggantian terakhir yang diketahui untuk memastikan tidak ada perubahan yang dilakukan sehingga Anda dapat menggunakan konfigurasi yang sama untuk mengupgrade ke versi campuran 1.12.
- Pastikan semua node Cassandra di semua region berada dalam status
UN
(Up / Normal). Jika ada node Cassandra yang berada dalam status yang berbeda, atasi terlebih dahulu sebelum memulai upgrade.Anda dapat memvalidasi status node Cassandra dengan perintah berikut:
- Cantumkan pod cassandra:
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
Contoh:
kubectl get pods -n apigee -l app=apigee-cassandra
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 2h apigee-cassandra-default-1 1/1 Running 0 2h apigee-cassandra-default-2 1/1 Running 0 2h apigee-cassandra-default-3 1/1 Running 0 16m apigee-cassandra-default-4 1/1 Running 0 14m apigee-cassandra-default-5 1/1 Running 0 13m apigee-cassandra-default-6 1/1 Running 0 9m apigee-cassandra-default-7 1/1 Running 0 9m apigee-cassandra-default-8 1/1 Running 0 8m - Periksa status node untuk setiap pod Cassandra dengan perintah
kubectl nodetool status
:kubectl -n APIGEE_NAMESPACE exec -it CASSANDRA_POD_NAME nodetool status
Contoh:
kubectl -n apigee exec -it apigee-cassandra-default-0 nodetool status
Datacenter: us-east1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.16.2.6 690.17 KiB 256 48.8% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 705.55 KiB 256 51.6% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 UN 10.16.11.11 674.36 KiB 256 48.3% c7906366-6c98-4ff6-a4fd-17c596c33cf7 ra-1 UN 10.16.1.11 697.03 KiB 256 49.8% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 703.64 KiB 256 50.9% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 700.42 KiB 256 50.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1 UN 10.16.11.3 697.03 KiB 256 49.8% dad221ff-dad1-de33-2cd3-f1.672367e6f ra-1 UN 10.16.14.16 704.04 KiB 256 50.9% 1feed042-a4b6-24ab-49a1-24d4cef95473 ra-1 UN 10.16.16.1 699.82 KiB 256 50.6% beef93af-fee0-8e9d-8bbf-efc22d653596 ra-1
- Cantumkan pod cassandra:
Mencadangkan direktori 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.11. 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.11-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.11 dan hybrid 1.12. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan.
Menginstal runtime hybrid 1.12.3
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.12.3
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.13.0/cert-manager.yaml
- 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
-
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 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 \ --create-namespace \ --namespace apigee-system \ -f OVERRIDES_FILE \ --dry-run
Upgrade diagram:
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace apigee-system \ -f OVERRIDES_FILE
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.12.3 1.12.3
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
- Upgrade datastore Apigee:
Uji coba:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run
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 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
Pastikan aplikasi sudah aktif dan berjalan dengan memeriksa statusnya:
kubectl -n apigee 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 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 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 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.12.3
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 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 env 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 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
- Anda harus mengupgrade satu grup lingkungan (virtualhost) satu per satu. Tentukan grup lingkungan dengan
Melakukan roll back ke versi sebelumnya
Bagian ini dibagi menjadi beberapa bagian, bergantung pada status komponen apigee-datastore
Anda setelah mengupgrade ke Apigee hybrid versi 1.12. Ada prosedur untuk rollback satu region atau multi-region dengan
komponen apigee-datastore
dalam status yang baik dan prosedur untuk pemulihan atau pemulihan
dari cadangan saat apigee-datastore
dalam status yang buruk.
Pemulihan dan rollback satu region
Melakukan rollback saat apigee-datastore
dalam status yang baik
Prosedur ini menjelaskan cara melakukan rollback setiap komponen Apigee Hybrid dari v1.12 ke v1.11 kecuali apigee-datastore
. Komponen apigee-datastore
v1.12
kompatibel dengan komponen hybrid v1.11.
Untuk melakukan rollback penginstalan satu region ke versi 1.11:
-
Sebelum memulai rollback, validasi semua pod dalam status berjalan:
kubectl get pods -n APIGEE_NAMESPACE
kubectl get pods -n apigee-system
-
Validasi rilis komponen menggunakan helm:
helm -n APIGEE_NAMESPACE list
helm -n apigee-system list
Contohnya
helm -n apigee list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION datastore apigee 2 2024-03-29 17:08:07.917848253 +0000 UTC deployed apigee-datastore-1.12.0 1.12.0 ingress-manager apigee 2 2024-03-29 17:21:02.917333616 +0000 UTC deployed apigee-ingress-manager-1.12.0 1.12.0 redis apigee 2 2024-03-29 17:19:51.143728084 +0000 UTC deployed apigee-redis-1.12.0 1.12.0 telemetry apigee 2 2024-03-29 17:16:09.883885403 +0000 UTC deployed apigee-telemetry-1.12.0 1.12.0 myhybridorg apigee 2 2024-03-29 17:21:50.899855344 +0000 UTC deployed apigee-org-1.12.0 1.12.0
-
Kembalikan setiap komponen kecuali
apigee-datastore
dengan perintah berikut:- Buat variabel lingkungan berikut:
- PREVIOUS_HELM_CHARTS_HOME: Direktori tempat diagram Helm Apigee hybrid sebelumnya diinstal. Ini adalah versi yang Anda roll back.
- Kembalikan virtualhost. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file penggantian.
helm upgrade ENV_GROUP_RELEASE_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f PREVIOUS_OVERRIDES_FILE
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. - Me-rollback Env. Ulangi perintah berikut untuk setiap lingkungan yang disebutkan dalam file penggantian.
helm upgrade apigee-env-ENV_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=ENV_NAME \ -f PREVIOUS_OVERRIDES_FILE
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, nilai ini biasanya ENV_NAME.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
- Roll back Org:
helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
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
- Kembalikan Pengelola Ingress:
helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
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
- Lakukan rollback Redis:
helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
Pastikan server tersebut aktif dan berjalan dengan memeriksa statusnya:
kubectl -n apigee get apigeeredis default
NAME STATE AGE default running 2d
- Melakukan rollback Telemetri Apigee:
helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa statusnya:
kubectl -n apigee get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Kembalikan Apigee Controller:
helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
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.12.3 1.12.3
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
- Kembalikan CRD Apigee hybrid:
kubectl apply -k $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
- Buat variabel lingkungan berikut:
-
Validasi semua pod dalam status berjalan atau selesai:
kubectl get pods -n APIGEE_NAMESPACE
kubectl get pods -n apigee-system
-
Validasi rilis semua komponen. Semua komponen harus berada dalam versi sebelumnya, kecuali datastore:
helm -n APIGEE_NAMESPACE list
helm -n apigee-system list
Contohnya
helm -n apigee list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION datastore apigee 2 2024-03-29 18:47:55.979671057 +0000 UTC deployed apigee-datastore-1.12.0 1.12.0 ingress-manager apigee 3 2024-03-14 19:14:57.905700154 +0000 UTC deployed apigee-ingress-manager-1.11.0 1.11.0 redis apigee 3 2024-03-14 19:15:49.406917944 +0000 UTC deployed apigee-redis-1.11.0 1.11.0 telemetry apigee 3 2024-03-14 19:17:04.803421424 +0000 UTC deployed apigee-telemetry-1.11.0 1.11.0 myhybridorg apigee 3 2024-03-14 19:13:17.807673713 +0000 UTC deployed apigee-org-1.11.0 1.11.0
Memulihkan saat apigee-datastore
tidak dalam status yang baik
Jika upgrade komponen apigee-datastore
tidak berhasil, Anda tidak dapat melakukan rollback apigee-datastore
dari versi 1.12 ke versi 1.11. Sebagai gantinya, Anda
harus memulihkan dari cadangan yang dibuat dari penginstalan v1.11. Gunakan urutan
berikut untuk memulihkan versi sebelumnya.
- Jika Anda tidak memiliki penginstalan aktif Apigee hybrid versi 1.11 (misalnya di wilayah lain), buat penginstalan baru v1.11 menggunakan diagram dan file penggantian yang dicadangkan. Lihat petunjuk penginstalan Apigee hybrid versi 1.11.
- Pulihkan region v1.11 (atau penginstalan baru) dari cadangan Anda
dengan mengikuti petunjuk di:
- Pencadangan Antarmuka Cloud Storage (CSI): Pencadangan dan pemulihan CSI Cassandra.
- Pencadangan non-CSI: Memulihkan di satu region.
- Memverifikasi traffic ke penginstalan yang dipulihkan
- Opsional: Hapus penginstalan versi 1.12 dengan mengikuti petunjuk di bagian Meng-uninstal runtime campuran.
Pemulihan dan rollback multi-region
Melakukan rollback saat apigee-datastore
dalam status yang baik
Prosedur ini menjelaskan cara melakukan rollback setiap komponen Apigee Hybrid dari v1.12 ke v1.11 kecuali apigee-datastore
. Komponen apigee-datastore
v1.12
kompatibel dengan komponen hybrid v1.11.
-
Sebelum memulai rollback, validasi semua pod dalam status berjalan:
kubectl get pods -n APIGEE_NAMESPACE
kubectl get pods -n apigee-system
- Pastikan semua node Cassandra di semua region berada dalam status
UN
(Up / Normal). Jika ada node Cassandra yang berada dalam status yang berbeda, atasi terlebih dahulu sebelum memulai proses upgrade.Anda dapat memvalidasi status node Cassandra dengan perintah berikut:
- Cantumkan pod cassandra:
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
Contoh:
kubectl get pods -n apigee -l app=apigee-cassandra
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 2h apigee-cassandra-default-1 1/1 Running 0 2h apigee-cassandra-default-2 1/1 Running 0 2h apigee-cassandra-default-3 1/1 Running 0 16m apigee-cassandra-default-4 1/1 Running 0 14m apigee-cassandra-default-5 1/1 Running 0 13m apigee-cassandra-default-6 1/1 Running 0 9m apigee-cassandra-default-7 1/1 Running 0 9m apigee-cassandra-default-8 1/1 Running 0 8m - Periksa status node untuk setiap pod Cassandra dengan perintah
kubectl nodetool status
:kubectl -n APIGEE_NAMESPACE exec -it CASSANDRA_POD_NAME -- nodetool -u JMX_USER -pw JMX_PASSWORD
Contoh:
kubectl -n apigee exec -it apigee-cassandra-default-0 -- nodetool -u jmxuser -pw JMX_PASSWORD status
Datacenter: us-east1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.16.2.6 690.17 KiB 256 48.8% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 705.55 KiB 256 51.6% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 UN 10.16.11.11 674.36 KiB 256 48.3% c7906366-6c98-4ff6-a4fd-17c596c33cf7 ra-1 UN 10.16.1.11 697.03 KiB 256 49.8% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 703.64 KiB 256 50.9% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 700.42 KiB 256 50.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1 UN 10.16.11.3 697.03 KiB 256 49.8% dad221ff-dad1-de33-2cd3-f1.672367e6f ra-1 UN 10.16.14.16 704.04 KiB 256 50.9% 1feed042-a4b6-24ab-49a1-24d4cef95473 ra-1 UN 10.16.16.1 699.82 KiB 256 50.6% beef93af-fee0-8e9d-8bbf-efc22d653596 ra-1
Jika tidak semua pod Cassandra berada dalam status
UN
, ikuti petunjuk di Menghapus node DOWN dari Cluster Cassandra. - Cantumkan pod cassandra:
- Buka direktori tempat diagram Helm Apigee Hybrid sebelumnya diinstal
-
Mengubah konteks ke region yang diupgrade
kubectl config use-context UPGRADED_REGION_CONTEXT
-
Validasi bahwa semua pod berada dalam status berjalan:
kubectl get pods -n APIGEE_NAMESPACE
kubectl get pods -n apigee-system
-
Gunakan perintah helm untuk memastikan semua rilis diupgrade ke Hybrid v1.12:
helm -n APIGEE_NAMESPACE list
helm -n apigee-system list
Contohnya
helm -n apigee list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION datastore apigee 2 2024-03-29 17:08:07.917848253 +0000 UTC deployed apigee-datastore-1.12.0 1.12.0 ingress-manager apigee 2 2024-03-29 17:21:02.917333616 +0000 UTC deployed apigee-ingress-manager-1.12.0 1.12.0 redis apigee 2 2024-03-29 17:19:51.143728084 +0000 UTC deployed apigee-redis-1.12.0 1.12.0 telemetry apigee 2 2024-03-29 17:16:09.883885403 +0000 UTC deployed apigee-telemetry-1.12.0 1.12.0 myhybridorg apigee 2 2024-03-29 17:21:50.899855344 +0000 UTC deployed apigee-org-1.12.0 1.12.0
-
Kembalikan setiap komponen kecuali
apigee-datastore
dengan perintah berikut:- Buat variabel lingkungan berikut:
- PREVIOUS_HELM_CHARTS_HOME: Direktori tempat diagram Helm Apigee hybrid sebelumnya diinstal. Ini adalah versi yang Anda roll back.
- Kembalikan virtualhost. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file penggantian.
helm upgrade ENV_GROUP_RELEASE_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f PREVIOUS_OVERRIDES_FILE
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. - Me-rollback Env. Ulangi perintah berikut untuk setiap lingkungan yang disebutkan dalam file penggantian.
helm upgrade apigee-env-ENV_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=ENV_NAME \ -f PREVIOUS_OVERRIDES_FILE
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, nilai ini biasanya ENV_NAME.Verifikasi bahwa setiap env aktif dan berjalan dengan memeriksa status env masing-masing:
kubectl -n apigee get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
- Roll back Org:
helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
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
- Kembalikan Pengelola Ingress:
helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
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
- Lakukan rollback Redis:
helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
Pastikan server tersebut aktif dan berjalan dengan memeriksa statusnya:
kubectl -n apigee get apigeeredis default
NAME STATE AGE default running 2d
- Melakukan rollback Telemetri Apigee:
helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa statusnya:
kubectl -n apigee get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Kembalikan Apigee Controller:
helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
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.12.3 1.12.3
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
- Kembalikan CRD Apigee hybrid:
kubectl apply -k $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
- Buat variabel lingkungan berikut:
-
Validasi rilis semua komponen. Semua komponen harus berada dalam versi sebelumnya
kecuali
datastore
:helm -n APIGEE_NAMESPACE list
helm -n apigee-system list
Contohnya
helm -n apigee list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION datastore apigee 2 2024-03-29 18:47:55.979671057 +0000 UTC deployed apigee-datastore-1.12.0 1.12.0 ingress-manager apigee 3 2024-03-14 19:14:57.905700154 +0000 UTC deployed apigee-ingress-manager-1.11.0 1.11.0 redis apigee 3 2024-03-14 19:15:49.406917944 +0000 UTC deployed apigee-redis-1.11.0 1.11.0 telemetry apigee 3 2024-03-14 19:17:04.803421424 +0000 UTC deployed apigee-telemetry-1.11.0 1.11.0 myhybridorg apigee 3 2024-03-14 19:13:17.807673713 +0000 UTC deployed apigee-org-1.11.0 1.11.0
Pada tahap ini, semua rilis kecuali
datastore
telah di-rollback ke versi sebelumnya.
Memulihkan penginstalan multi-region ke versi sebelumnya
Pulihkan region tempat upgrade gagal dalam upgrade multi-region dengan menghapus referensi ke region tersebut dari beberapa penginstalan region. Metode ini hanya dapat dilakukan jika ada minimal 1 region aktif di Hybrid 1.11. Datastore v1.12 kompatibel dengan komponen v1.11.
Untuk memulihkan region yang gagal dari region yang sehat, lakukan langkah-langkah berikut:
- Alihkan traffic API dari region yang terpengaruh ke region yang berfungsi dengan baik. Rencanakan kapasitas yang sesuai untuk mendukung traffic yang dialihkan dari region yang gagal.
- Nonaktifkan region yang terpengaruh. Untuk setiap region yang terpengaruh, ikuti langkah-langkah yang diuraikan di Menonaktifkan region hybrid. Tunggu hingga penghentian layanan selesai sebelum melanjutkan ke langkah berikutnya.
- Bersihkan region yang gagal dengan mengikuti petunjuk di Memulihkan region dari upgrade yang gagal.
- Pulihkan region yang terpengaruh. Untuk memulihkan, buat region baru, seperti yang dijelaskan dalam Deployment multi-region di GKE, GKE on-prem, dan AKS.
Memulihkan penginstalan multi-region dari cadangan dengan apigee-datastore
dalam status buruk
Jika upgrade komponen apigee-datastore
tidak berhasil, Anda tidak dapat melakukan rollback dari versi 1.12 ke versi 1.11. Sebagai gantinya, Anda
harus memulihkan dari cadangan yang dibuat dari penginstalan v1.11. Gunakan urutan
berikut untuk memulihkan versi sebelumnya.
- Jika Anda tidak memiliki penginstalan aktif Apigee hybrid versi 1.11 (misalnya di wilayah lain), buat penginstalan baru v1.11 menggunakan diagram dan file penggantian yang dicadangkan. Lihat petunjuk penginstalan Apigee hybrid versi 1.11.
- Pulihkan region v1.11 (atau penginstalan baru) dari cadangan Anda
dengan mengikuti petunjuk di:
- Pencadangan Antarmuka Cloud Storage (CSI): Pencadangan dan pemulihan CSI Cassandra.
- Pencadangan non-CSI: Memulihkan di beberapa region.
- Memverifikasi traffic ke penginstalan yang dipulihkan
- Untuk penginstalan multi-region, buat ulang dan pulihkan region berikutnya. Lihat petunjuk di Memulihkan dari cadangan di Memulihkan di beberapa region.
- Hapus penginstalan versi 1.12 dengan mengikuti petunjuk di Menguninstal runtime hybrid.
LAMPIRAN: Memulihkan region dari upgrade yang gagal
Menghapus Datacenter jika upgrade dari 1.11 ke 1.12 gagal.
-
Validasi status cluster Cassandra dari region aktif:
-
Alihkan konteks kubectl ke region yang akan dihapus:
kubectl config use-context CONTEXT_OF_LIVE_REGION
- Cantumkan pod cassandra:
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
Contoh:
kubectl get pods -n apigee -l app=apigee-cassandra
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 2h apigee-cassandra-default-1 1/1 Running 0 2h apigee-cassandra-default-2 1/1 Running 0 2h -
Jalankan ke salah satu pod cassandra:
kubectl exec -it -n CASSANDRA_POD_NAME -- /bin/bash
-
Periksa status cluster Cassandra:
nodetool -u JMX_USER -pw JMX_PASSWORD status
Outputnya akan terlihat seperti berikut:
Datacenter: dc-1 ================ Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.48.12.16 813.84 KiB 256 100.0% a6340ad9-37ba-4ec8-a8c2-f7b7ac931807 ra-1 UN 10.48.14.16 859.89 KiB 256 100.0% 39f03c51-e387-4dac-8360-6d8732e690a7 ra-1 UN 10.48.0.18 888.95 KiB 256 100.0% 0d57df49-52e4-4c01-832d-d9df845ab732 ra-1
-
Deskripsikan cluster untuk memverifikasi bahwa Anda hanya melihat IP pod Cassandra dari region aktif dan semuanya menggunakan versi skema yang sama:
nodetool -u JMX_USER -pw JMX_PASSWORD describecluster
Outputnya akan terlihat seperti berikut:
nodetool -u JMX_USER -pw JMX_PASSWORD describecluster
Schema versions: 4bebf2de-0582-31b4-9c5f-e36f60127e1b: [10.48.14.16, 10.48.12.16, 10.48.0.18]
-
Alihkan konteks kubectl ke region yang akan dihapus:
-
Bersihkan replikasi ruang kunci Cassandra:
-
Dapatkan tugas
user-setup
dan hapus. Tugasuser-setup
baru akan segera dibuat.kubectl get jobs -n APIGEE_NAMESPACE
Contoh:
kubectl get jobs -n apigee
NAME COMPLETIONS DURATION AGE apigee-cassandra-schema-setup-myhybridorg-8b3e61d 1/1 6m35s 3h5m apigee-cassandra-schema-val-myhybridorg-8b3e61d-28499150 1/1 10s 9m22s apigee-cassandra-user-setup-myhybridorg-8b3e61d 0/1 21s 21skubectl delete jobs USER_SETUP_JOB_NAME -n APIGEE_NAMESPACE
Output akan menampilkan tugas baru yang dimulai:
kubectl delete jobs apigee-cassandra-user-setup-myhybridorg-8b3e61d -n apigee
apigee-cassandra-user-setup-myhybridorg-8b3e61d-wl92b 0/1 Init:0/1 0 1s - Validasi setelan replikasi ruang kunci Cassandra dengan membuat penampung klien mengikuti petunjuk di Membuat penampung klien.
-
Mendapatkan semua ruang kunci. Jalankan ke pod cassandra-client, lalu mulai klien cqlsh:
kubectl exec -it -n APIGEE_NAMESPACE cassandra-client -- /bin/bash
Hubungkan ke server Cassandra dengan
ddl user
karena memiliki izin yang diperlukan untuk menjalankan perintah berikut:cqlsh apigee-cassandra-default.apigee.svc.cluster.local -u DDL_USER -p DDL_PASSWORD --ssl
Dapatkan ruang kunci:
select * from system_schema.keyspaces;
Output akan terlihat seperti berikut dengan
dc-1
adalah DC live:select * from system_schema.keyspaces;
keyspace_name | durable_writes | replication --------------------------+----------------+-------------------------------------------------------------------------------- kvm_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_auth | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_schema | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'} quota_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} cache_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} rtc_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_distributed | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'} perses | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_traces | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} kms_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} (11 rows) - Jika karena alasan tertentu tugas
user-setup
terus mengalami error dan validasi gagal, gunakan perintah berikut untuk memperbaiki replikasi di ruang kunci.kubectl exec -it -n APIGEE_NAMESPACE cassandra-client -- /bin/bash
Hubungkan ke server Cassandra dengan
ddl user
karena memiliki izin yang diperlukan untuk menjalankan perintah berikut:cqlsh apigee-cassandra-default.apigee.svc.cluster.local -u DDL_USER -p DDL_PASSWORD --ssl
Dapatkan ruang kunci:
select * from system_schema.keyspaces;
Gunakan nama ruang kunci dari perintah di atas dan ganti di contoh berikut
alter keyspace quota_myhybridorg_hybrid WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace kms_myhybridorg_hybrid WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace kvm_myhybridorg_hybrid WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace cache_myhybridorg_hybrid WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace perses_myhybridorg_hybrid WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace rtc_myhybridorg_hybrid WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace system_distributed WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
alter keyspace system_traces WITH replication = {'class': 'NetworkTopologyStrategy', 'LIVE_DC_NAME':'3'};
- Validasi bahwa semua ruang kunci direplikasi di region yang tepat dengan perintah
cqlsh
berikut:select * from system_schema.keyspaces;
Contoh:
select * from system_schema.keyspaces;
keyspace_name | durable_writes | replication -------------------------+----------------+-------------------------------------------------------------------------------- kvm_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_auth | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_schema | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'} quota_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} cache_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} rtc_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_distributed | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'} perses | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_traces | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} kms_myhybridorg_hybrid | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} (11 rows)
-
Dapatkan tugas
Pada tahap ini, Anda telah menghapus semua referensi untuk DC yang mati dari cluster Cassandra.
LAMPIRAN: Menghapus node DOWN dari Cluster Cassandra
Gunakan prosedur ini saat Anda melakukan rollback penginstalan multi-region dan tidak semua pod Cassandra berada dalam status Aktif / Normal (UN
).
-
Jalankan ke salah satu pod cassandra:
kubectl exec -it -n CASSANDRA_POD_NAME -- /bin/bash
-
Periksa status cluster Cassandra:
nodetool -u JMX_USER -pw JMX_PASSWORD status
-
Validasi bahwa node benar-benar Nonaktif (
DN
). Jalankan ke pod Cassandra di region tempat pod Cassandra tidak dapat muncul.Datacenter: dc-1 ================ Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.48.12.16 1.15 MiB 256 100.0% a6340ad9-37ba-4ec8-a8c2-f7b7ac931807 ra-1 UN 10.48.0.18 1.21 MiB 256 100.0% 0d57df49-52e4-4c01-832d-d9df845ab732 ra-1 UN 10.48.14.16 1.18 MiB 256 100.0% 39f03c51-e387-4dac-8360-6d8732e690a7 ra-1 Datacenter: us-west1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack DN 10.8.4.4 432.42 KiB 256 100.0% cd672398-5c45-4c88-a424-86d757951e53 rc-1 UN 10.8.19.6 5.8 MiB 256 100.0% 84f771f3-3632-4155-b27f-a67125d73bc5 rc-1 UN 10.8.21.5 5.74 MiB 256 100.0% f6f21b70-348d-482d-89fa-14b7147a5042 rc-1
-
Hapus referensi ke node down (
DN
). Dari contoh di atas, kita akan menghapus referensi untuk host10.8.4.4
kubectl exec -it -n apigee apigee-cassandra-default-2 -- /bin/bash nodetool -u JMX_USER -pw JMX_PASSWORD removenode HOST_ID
-
Setelah referensi dihapus, hentikan pod. Pod Cassandra baru akan muncul dan bergabung dengan cluster
kubectl delete pod -n POD_NAME
-
Validasi bahwa pod Cassandra baru telah bergabung ke cluster.
Datacenter: dc-1 ================ Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.48.12.16 1.16 MiB 256 100.0% a6340ad9-37ba-4ec8-a8c2-f7b7ac931807 ra-1 UN 10.48.0.18 1.22 MiB 256 100.0% 0d57df49-52e4-4c01-832d-d9df845ab732 ra-1 UN 10.48.14.16 1.19 MiB 256 100.0% 39f03c51-e387-4dac-8360-6d8732e690a7 ra-1 Datacenter: us-west1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.8.19.6 5.77 MiB 256 100.0% 84f771f3-3632-4155-b27f-a67125d73bc5 rc-1 UN 10.8.4.5 246.99 KiB 256 100.0% 0182e675-eec8-4d68-a465-69211b621601 rc-1 UN 10.8.21.5 5.69 MiB 256 100.0% f6f21b70-348d-482d-89fa-14b7147a5042 rc-1
Pada tahap ini, Anda dapat melanjutkan upgrade atau melakukan rollback pada region cluster yang tersisa.
LAMPIRAN: Pemecahan masalah: apigee-datastore
dalam status macet setelah rollback
Gunakan prosedur ini jika Anda telah melakukan rollback apigee-datastore
ke hybrid 1.11 setelah upgrade, dan apigee-datastore
tersebut dalam status macet.
-
Sebelum memperbaiki status pengontrol datastore lagi, validasi bahwa statusnya dalam status
releasing
dan pod tidak muncul bersama status cluster Cassandra.-
Validasi menggunakan perintah Helm bahwa datastore telah di-roll back:
helm -n APIGEE_NAMESPACE list
Contoh:
helm -n apigee list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION datastore apigee 3 2024-04-04 22:15:08.792539892 +0000 UTC deployed apigee-datastore-1.11.0 1.11.0 ingress-manager apigee 1 2024-04-02 22:24:27.564184968 +0000 UTC deployed apigee-ingress-manager-1.12.0 1.12.0 redis apigee 1 2024-04-02 22:23:59.938637491 +0000 UTC deployed apigee-redis-1.12.0 1.12.0 telemetry apigee 1 2024-04-02 22:23:39.458134303 +0000 UTC deployed apigee-telemetry-1.12 1.12.0 myhybridorg apigee 1 2024-04-02 23:36:32.614927914 +0000 UTC deployed apigee-org-1.12.0 1.12.0 -
Dapatkan status pod Cassandra:
kubectl get pods -n APIGEE_NAMESPACE
Contoh:
kubectl get pods -n apigee
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 2h apigee-cassandra-default-1 1/1 Running 0 2h apigee-cassandra-default-2 0/1 CrashLoopBackOff 4 (13s ago) 2m13s -
Validasi bahwa pengontrol
apigeeds
macet dalam status rilis:kubectl get apigeeds -n APIGEE_NAMESPACE
Contoh:
kubectl get apigeeds -n apigee
NAME STATE AGE default releasing 46h -
Validasi status node Cassandra (perhatikan bahwa satu node berada dalam status
DN
yang merupakan node yang terjebak dalam statusCrashLoopBackOff
):kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u JMX_USER -pw JMX_PASSWORD status
Contoh:
kubectl exec apigee-cassandra-default-0 -n apigee -- nodetool -u jmxuser -pw JMX_PASSWORD status
Defaulted container "apigee-cassandra" out of: apigee-cassandra, apigee-cassandra-ulimit-init (init) Datacenter: us-west1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.68.7.28 2.12 MiB 256 100.0% 4de9df37-3997-43e7-8b5b-632d1feb14d3 rc-1 UN 10.68.10.29 2.14 MiB 256 100.0% a54e673b-ec63-4c08-af32-ea6c00194452 rc-1 DN 10.68.6.26 5.77 MiB 256 100.0% 0fe8c2f4-40bf-4ba8-887b-9462159cac45 rc-1
-
Validasi menggunakan perintah Helm bahwa datastore telah di-roll back:
-
Upgrade datastore menggunakan diagram 1.12.
helm upgrade datastore APIGEE_HELM_1.12.0_HOME/apigee-datastore/ --install --namespace APIGEE_NAMESPACE -f overrides.yaml
-
Validasi semua pod adalah
Running
dan cluster Cassandra kembali responsif.-
Validasi semua pod kembali menjadi
READY
:kubectl get pods -n APIGEE_NAMESPACE
Contoh:
kubectl get pods -n apigee
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 29h apigee-cassandra-default-1 1/1 Running 0 29h apigee-cassandra-default-2 1/1 Running 0 60m -
Validasi status cluster Cassandra:
kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u JMX_USER -pw JMX_PASSWORD status
Contoh:
kubectl exec apigee-cassandra-default-0 -n apigee -- nodetool -u jmxuser -pw JMX_PASSWORD status
Datacenter: us-west1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.68.4.15 2.05 MiB 256 100.0% 0fe8c2f4-40bf-4ba8-887b-9462159cac45 rc-1 UN 10.68.7.28 3.84 MiB 256 100.0% 4de9df37-3997-43e7-8b5b-632d1feb14d3 rc-1 UN 10.68.10.29 3.91 MiB 256 100.0% a54e673b-ec63-4c08-af32-ea6c00194452 rc-1 -
Validasi status pengontrol
apigeeds
:kubectl get apigeeds -n APIGEE_NAMESPACE
Contoh:
kubectl get apigeeds -n apigee
NAME STATE AGE default running 2d1h
-
Validasi semua pod kembali menjadi
Pada tahap ini, Anda telah memperbaiki datastore dan datastore tersebut harus dalam status running
.