Prosedur ini mencakup upgrade dari Apigee Hybrid versi 1.15.x ke Apigee Hybrid versi 1.16.0.
Perubahan dari Apigee Hybrid v1.15
Perhatikan perubahan berikut:
-
Profil seccomp:
Mulai dari versi 1.16,
Apigee Hybrid kini menawarkan kemampuan untuk menerapkan Profil Seccomp ke komponen runtime Anda,
sehingga meningkatkan postur keamanan deployment Anda secara signifikan. Fitur ini memungkinkan administrator dan tim keamanan Apigee membatasi panggilan sistem yang dapat dilakukan oleh proses yang di-container ke kernel host. Dengan membatasi container hanya pada syscall yang diperlukan, Anda dapat:
- Meningkatkan Keamanan: Mengurangi risiko container breakout dan eskalasi hak istimewa.
- Terapkan Hak Istimewa Terendah: Pastikan komponen hanya memiliki akses ke panggilan sistem yang tepat yang diperlukan untuk pengoperasiannya.
- Kepatuhan Meet: Menyediakan kontrol penting untuk memenuhi persyaratan kepatuhan keamanan yang ketat.
- Penghapusan UDCA di Apigee Hybrid: Di Apigee Hybrid versi 1.16, komponen Unified Data Collection Agent (UDCA) telah dihapus. Tanggung jawab pengiriman data analisis, pelacakan, dan status deployment ke bidang kontrol Apigee kini ditangani menggunakan pipeline data berbasis Google Cloud Pub/Sub. Penggunaan pipeline data berbasis Pub/Sub telah menjadi mekanisme pengumpulan data default sejak Apigee Hybrid versi 1.14.0.
-
Akun layanan
apigee-guardrails: Di v1.16.0, Apigee Hybrid memperkenalkan akun layanan IAM Googleapigee-guardrails. Hal ini digunakan oleh diagramapigee-operatorselama penginstalan untuk memeriksa apakah semua API yang diperlukan telah diaktifkan di project Anda.Lihat:
-
Dukungan untuk rilis cert-manager 1.18 dan 1.19:
Apigee hybrid v1.16 mendukung rilis 1.18 dan rilis 1.19 cert-manager. Di rilis cert-manager 1.18, ada perubahan pada nilai default
Certificate.Spec.PrivateKey.rotationPolicyyang dapat memengaruhi traffic. Jika Anda mengupgrade dari versi Apigee hybrid sebelumnya, dan mengupgrade ke rilis cert-manager 1.18 atau yang lebih baru, ikuti prosedur Mengupgrade cert-manager dalam panduan ini.
Untuk mengetahui informasi tambahan tentang fitur di Hybrid versi 1.16, lihat catatan rilis Apigee Hybrid v1.16.0.
Prasyarat
Sebelum mengupgrade ke hybrid versi 1.16, pastikan penginstalan Anda memenuhi persyaratan berikut:
- Jika penginstalan hybrid Anda menjalankan versi yang lebih lama dari v1.15, Anda harus mengupgrade ke versi 1.15 sebelum mengupgrade ke v1.16. Lihat Mengupgrade Apigee Hybrid ke versi 1.15.
- Helm versi v3.14.2+.
kubectl: Versikubectlyang 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.16 di bawah.
Sebelum Anda mengupgrade ke 1.16.0 - batasan dan catatan penting
Apigee hybrid 1.16.0 memperkenalkan batas proxy per lingkungan baru yang ditingkatkan yang memungkinkan Anda men-deploy lebih banyak proxy dan alur bersama dalam satu lingkungan. Lihat Batas: Proxy API untuk memahami batas jumlah proxy dan alur bersama yang dapat Anda deploy per lingkungan. Fitur ini hanya tersedia di organisasi hybrid yang baru dibuat, dan tidak dapat diterapkan ke organisasi yang diupgrade. Untuk menggunakan fitur ini, lakukan penginstalan baru hybrid 1.16.0, dan buat organisasi baru.
Fitur ini tersedia secara eksklusif sebagai bagian dari paket langganan 2024, dan tunduk pada hak yang diberikan berdasarkan langganan tersebut. Lihat Batas proxy per lingkungan yang ditingkatkan untuk mempelajari lebih lanjut fitur ini.
Mengupgrade ke Apigee Hybrid versi 1.16 mungkin memerlukan waktu non-operasional.
Saat mengupgrade pengontrol Apigee ke versi 1.16.0, semua deployment Apigee akan mengalami mulai ulang bertahap. Untuk meminimalkan periode nonaktif di lingkungan hybrid produksi selama memulai ulang bertahap, pastikan Anda menjalankan minimal dua cluster (di region/pusat data yang sama atau berbeda). Alihkan semua traffic produksi ke satu cluster dan nonaktifkan cluster yang akan diupgrade, lalu lanjutkan proses upgrade. Ulangi proses untuk setiap cluster.
Apigee merekomendasikan agar setelah Anda memulai upgrade, Anda harus mengupgrade semua cluster sesegera mungkin untuk mengurangi kemungkinan dampak produksi. Tidak ada batas waktu kapan semua cluster yang tersisa harus diupgrade setelah cluster pertama diupgrade. Namun, hingga semua cluster yang tersisa diupgrade, pencadangan dan pemulihan Cassandra tidak dapat berfungsi dengan versi campuran. Misalnya, cadangan dari Hybrid 1.15 tidak dapat digunakan untuk memulihkan instance Hybrid 1.16.
Perubahan bidang pengelolaan tidak perlu ditangguhkan sepenuhnya selama upgrade. Penangguhan sementara yang diperlukan untuk perubahan bidang pengelolaan dicantumkan dalam petunjuk upgrade di bawah.
Ringkasan upgrade ke versi 1.16.0
Prosedur untuk mengupgrade Apigee Hybrid diatur dalam bagian berikut:
Bersiap untuk mengupgrade ke versi 1.16
Mencadangkan penginstalan hybrid Anda
- 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_HOMEMac OS
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOMEWindows
set APIGEE_HELM_CHARTS_HOME=%CD%
echo %APIGEE_HELM_CHARTS_HOME% - Buat salinan cadangan direktori 1.15
$APIGEE_HELM_CHARTS_HOME/Anda. Anda dapat menggunakan proses pencadangan apa pun. Misalnya, Anda dapat membuat filetardari seluruh direktori Anda dengan:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.15-backup.tar.gz $APIGEE_HELM_CHARTS_HOME - Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra.
-
Pastikan file kunci dan sertifikat TLS Anda (
.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 Anda ke versi yang didukung oleh hybrid 1.15 dan hybrid 1.16. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan.
Tarik 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 Apigee Hybrid
ke penyimpanan lokal Anda dengan perintah berikut:
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsexport CHART_VERSION=1.16.0helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
Edit kustomization.yaml untuk namespace Apigee kustom
Jika namespace Apigee Anda bukan apigee, edit file apigee-operator/etc/crds/default/kustomization.yaml dan ganti nilai namespace dengan namespace Apigee Anda.
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
Jika Anda menggunakan apigee sebagai namespace, Anda tidak perlu mengedit file.
-
Gunakan fitur uji coba
kubectldengan 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
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 label
cloud.google.com/gke-nodepool=apigee-runtime. Anda dapat
menyesuaikan label node pool di file overrides.yaml.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi node pool khusus.
Siapkan akun layanan apigee-guardrails
Mulai dari hybrid v1.16, akun layanan apigee-guardrails diperlukan untuk mengupgrade diagram apigee-operator.
Dalam prosedur berikut, pilih jenis autentikasi akun layanan yang Anda gunakan.
-
Verifikasi bahwa Anda dapat menjalankan
create-service-account. Jika Anda baru saja mendownload diagram, filecreate-service-accountmungkin tidak dalam mode yang dapat dieksekusi. Di direktori APIGEE_HELM_CHARTS_HOME, jalankan perintah berikut:./apigee-operator/etc/tools/create-service-account --help
Jika output Anda menampilkan
permission denied, Anda harus membuat file dapat dieksekusi, misalnya denganchmoddi Linux, MacOS, atau UNIX atau di Windows Explorer atau dengan perintahicaclsdi Windows. Contoh:chmod +x ./apigee-operator/etc/tools/create-service-account
-
Buat akun layanan
apigee-guardrails:Secret Kubernetes
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Perintah ini akan membuat akun layanan
apigee-guardrailsdan mendownload kunci ke direktoriservice-accounts/.File JSON
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir ./apigee-operator/
Perintah ini membuat akun layanan
apigee-guardrailsdan mendownload kunci ke direktori diagramapigee-operator/.Vault
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Perintah ini akan membuat akun layanan
apigee-guardrailsdan mendownload kunci ke direktoriservice-accounts/.WIF untuk GKE
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Perintah ini membuat akun layanan
apigee-guardrailsdan mendownload kunci ke direktoriapigee-operator/etc/tools/service-accounts/. Anda tidak memerlukan file kunci yang didownload dan dapat menghapusnya.WIF di platform lain
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
Perintah ini akan membuat akun layanan
apigee-guardrailsdan mendownload kunci ke direktoriservice-accounts/. -
Siapkan autentikasi untuk akun layanan
apigee-guardrails:Secret Kubernetes
Buat secret Kubernetes menggunakan file kunci akun layanan
apigee-guardrailsdi direktoriservice-accounts/:kubectl create secret generic apigee-guardrails-svc-account \ --from-file="client_secret.json=$APIGEE_HELM_CHARTS_HOME/service-accounts/$PROJECT_ID-apigee-guardrails.json" \ -n $APIGEE_NAMESPACETambahkan kode berikut ke file
overrides.yamlAnda:guardrails: serviceAccountRef: apigee-guardrails-svc-account
File JSON
Tambahkan kode berikut ke file
overrides.yamlAnda, menggunakan jalur ke file kunci akun layananapigee-guardrailsdi direktoriapigee-operator/:guardrails: serviceAccountPath: $PROJECT_ID-apigee-guardrails.json
Vault
- Perbarui secret Vault
secret/data/apigee/orgsakeysuntuk menambahkan entriguardrailsdengan konten file kunci akun layananapigee-guardrails.vault kv patch secret/apigee/orgsakeys guardrails="$(cat ./service-accounts/hybrid115-apigee-guardrails.json)"
-
Akun layanan Kubernetes (KSA) untuk pembatasan diberi nama
apigee-operator-guardrails-sa. Tambahkan KSA Pembatasan ke akun layanan khusus organisasi yang terikat ke peranapigee-orgsakeysdi Vault.- Mendapatkan daftar binding KSA saat ini:
vault read auth/kubernetes/role/apigee-orgsakeys
Output harus dalam format berikut:
Key Value --- ----- alias_name_source serviceaccount_uid bound_service_account_names BOUND_SERVICE_ACCOUNT_NAMES bound_service_account_namespace_selector n/a bound_service_account_namespaces APIGEE_NAMESPACE
Dalam output,
BOUND_SERVICE_ACCOUNT_NAMESadalah daftar nama akun layanan yang dipisahkan koma. Tambahkanapigee-operator-guardrails-sake daftar nama. Misalnya (tanpa baris baru yang ditambahkan agar mudah dibaca):apigee-manager,apigee-cassandra-default,apigee-cassandra-backup-sa, apigee-cassandra-restore-sa,apigee-cassandra-schema-setup-myhybrido rg-5b044c1,apigee-cassandra-schema-val-myhybridorg-5b044c1,apigee-c assandra-user-setup-myhybridorg-5b044c1,apigee-mart-myhybridorg-5b0 44c1,apigee-mint-task-scheduler-myhybridorg-5b044c1,apigee-connect- agent-myhybridorg-5b044c1,apigee-watcher-myhybridorg-5b044c1,apigee -metrics-apigee-telemetry,apigee-open-telemetry,apigee-synchronizer -myhybridorg-dev-ee52aca,apigee-runtime-telemetry-collector-apigee- telemetry,apigee-logger-apigee-e-myhybrridorg-dev-ee52aca,apigee-sy nchronizer-myhybridog-prod-2d0221c,apigee-runtime-myhybridorg-prod- 2d0221c,apigee-operator-guardrails-sa
- Perbarui binding ke peran
apigee-orgsakeysdengan daftar nama akun layanan yang diperbarui:vault write auth/kubernetes/role/apigee-orgsakeys \ bound_service_account_names=UPDATED_BOUND_SERVICE_ACCOUNT_NAMES \ bound_service_account_namespaces=APIGEE_NAMESPACE \ policies=apigee-orgsakeys-auth \ ttl=1m
- Mendapatkan daftar binding KSA saat ini:
-
Menambahkan "pembatas" ke
SecretProviderClass- Edit file
spc-org.yamlAnda. - Di bagian
spec.parameters.objects, tambahkan entri perlindungan:- objectName: "guardrails" secretPath: "" secretKey: "" - Perbarui
SecretProviderClassAnda:kubectl -n APIGEE_NAMESPACE apply -f spc-org.yaml
- Edit file
WIF untuk GKE
Akun layanan Kubernetes (KSA) untuk pembatasan diberi nama
apigee-operator-guardrails-sa. Buat binding untuk akun layanan Google (GSA)apigee-guardrailsdengan perintah berikut:gcloud iam service-accounts add-iam-policy-binding apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$APIGEE_NAMESPACE/apigee-operator-guardrails-sa]" \ --project $PROJECT_IDTambahkan kode berikut ke file
overrides.yamlAnda:guardrails: gsa: apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com
WIF di platform lain
Akun layanan Kubernetes (KSA) untuk pembatasan diberi nama
apigee-operator-guardrails-sa. Anda perlu memberikan akses KSA pembatasan untuk meniru identitas akun layanan Google (GSA)apigee-guardrails, dan mengonfigurasi penggantian untuk menggunakan file konfigurasi kredensial.- Berikan akses KSA untuk meniru identitas GSA dengan perintah berikut:
Template
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/system:serviceaccount:APIGEE_NAMESPACE:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
Contoh
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
Dengan:
PROJECT_ID: Project ID Google Cloud Anda.PROJECT_NUMBER: nomor project dari project tempat Anda membuat workload identity pool.POOL_ID: ID workload identity pool.APIGEE_NAMESPACE: Namespace tempat Apigee Hybrid diinstal.
- Buat file konfigurasi kredensial untuk akun layanan
apigee-guardrails:gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --credential-source-file=/var/run/service-account/token \ --credential-source-type=text \ --output-file=apigee-guardrails-credential-configuration.jsonDengan
WORKLOAD_PROVIDER_IDadalah ID penyedia workload identity pool Anda. - Konfigurasi
apigee-guardrailsuntuk menggunakan Workload Identity Federation dengan salah satu metode berikut:WIF: rahasia
-
Buat secret Kubernetes baru menggunakan file sumber kredensial untuk setiap file konfigurasi kredensial.
kubectl create secret -n APIGEE_NAMESPACE generic guardrails-workload-identity-secret --from-file="client_secret.json=./apigee-guardrails-credential-configuration.json"
-
Ganti nilai
serviceAccountRefdengan secret baru:guardrails: serviceAccountRef: guardrails-workload-identity-secret
WIF: file
Pindahkan file
apigee-guardrails-credential-configuration.jsonyang dihasilkan ke direktori diagramapigee-operator/Anda.Tambahkan kode berikut ke file
overrides.yamlAnda:guardrails: serviceAccountPath: apigee-guardrails-credential-configuration.json
WIF: Vault
Perbarui kunci akun layanan untuk
guardrailsdi Vault dengan file sumber kredensial yang sesuai:SAKEY=$(cat .apigee-guardrails-credential-configuration.json); kubectl -n APIGEE_NAMESPACE exec vault-0 -- vault kv patch secret/apigee/orgsakeys guardrails="$SAKEY"
Lihat
Storing service account keys in Hashicorp Vaultuntuk mengetahui informasi selengkapnya. -
Buat secret Kubernetes baru menggunakan file sumber kredensial untuk setiap file konfigurasi kredensial.
- Perbarui secret Vault
Mengupgrade cert-manager
Apigee hybrid v1.16 mendukung rilis cert-manager 1.16 hingga 1.19. Ada perubahan di cert-manager 1.18 yang dapat menyebabkan masalah pada traffic Anda. Pada rilis cert-manager 1.18, nilai default Certificate.Spec.PrivateKey.rotationPolicy diubah dari Never menjadi Always. Untuk penginstalan hybrid Apigee yang diupgrade, hal ini dapat menyebabkan masalah pada traffic Anda. Saat mengupgrade ke hybrid v1.16 dari versi sebelumnya, Anda harus mengedit sertifikat apigee-ca untuk mengompensasi perubahan ini atau mempertahankan versi cert-manager Anda pada rilis 1.17.x atau yang lebih rendah.
Sebelum mengupgrade cert-manager ke 1.18 atau 1.19, gunakan prosedur langkah-langkah berikut untuk mengedit sertifikat apigee-ca Anda guna menetapkan nilai Certificate.Spec.PrivateKey.rotationPolicy ke Never.
-
Periksa konten sertifikat
apigee-caAnda untuk melihat apakahrotationPolicydisetel:kubectl get certificate apigee-ca -n cert-manager -o yaml
Cari nilai di bagian
spec.privateKeydalam output:... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA # Note: rotationPolicy would appear here if it is set. size: 256 secretName: apigee-ca ... -
Jika
rotationPolicytidak ditetapkan atau jika ditetapkan keAlways, edit sertifikatapigee-cauntuk menetapkan nilairotationPolicykeNever:- Lakukan uji coba terlebih dahulu:
kubectl patch Certificate \ --dry-run=server \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca - Patch sertifikat:
kubectl patch Certificate \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca
- Lakukan uji coba terlebih dahulu:
-
Pastikan nilai
rotationPolicysekarang disetel keNever:kubectl get certificate apigee-ca -n cert-manager -o yaml
Output-nya akan terlihat seperti berikut:
... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA rotationPolicy: Never size: 256 secretName: apigee-ca ... -
Upgrade cert-manager. Perintah berikut akan mendownload dan menginstal cert-manager v1.19.2:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.2/cert-manager.yaml
Lihat Platform dan versi yang didukung: cert-manager untuk mengetahui daftar versi yang didukung.
Lihat:
- Masalah umum 465834046
- Rilis cert-manager 1.18: Nilai default
Certificate.Spec.PrivateKey.rotationPolicykini adalahAlways
Menginstal runtime hybrid 1.16.0
- Jika belum, buka direktori
APIGEE_HELM_CHARTS_HOMEAnda. Jalankan perintah berikut dari direktori tersebut. - Upgrade Apigee Operator/Controller:
Uji coba:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Mengupgrade 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.16.0 1.16.0
Verifikasi bahwa instance 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
Mengupgrade diagram:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifikasi bahwa
apigeedatastoresudah 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=server
Mengupgrade diagram:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan instance 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=server
Mengupgrade diagram:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan instance tersebut aktif dan berjalan dengan memeriksa statusnya:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- Upgrade pengelola ingress Apigee:
Uji coba:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
Mengupgrade diagram:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Verifikasi bahwa instance 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=server
Mengupgrade diagram:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Pastikan org tersebut aktif dan berjalan dengan memeriksa status org yang bersangkutan:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-my-org-my-env running 2d
- Upgrade 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=server
- ENV_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade
diagram
apigee-env. Nama ini harus unik dari nama rilis Helm lainnya di penginstalan Anda. Biasanya ini sama denganENV_NAME. Namun, jika lingkungan Anda memiliki nama yang sama dengan grup lingkungan, Anda harus menggunakan nama rilis yang berbeda untuk lingkungan dan grup lingkungan, misalnyadev-env-releasedandev-envgroup-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep penting di dokumentasi Helm. - ENV_NAME adalah nama lingkungan yang Anda upgrade.
- OVERRIDES_FILE adalah file penggantian baru Anda untuk v.1.16.0
Mengupgrade diagram:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa status env masing-masing:
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-org-my-env running 2d
- ENV_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade
diagram
-
Upgrade grup lingkungan (
virtualhosts).- Anda harus mengupgrade satu 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=server
ENV_GROUP_RELEASE_NAME adalah nama yang Anda gunakan sebelumnya untuk menginstal diagram
apigee-virtualhost. Biasanya ENV_GROUP_NAME.Mengupgrade 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
virtualhostsmembuat ApigeeRouteConfig (ARC) yang secara internal membuat ApigeeRoute (AR) setelah watcher Apigee menarik detail terkait grup lingkungan dari bidang kontrol. Oleh karena itu, periksa apakah 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-123abc running 2d
- Anda harus mengupgrade satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup
lingkungan dengan
- Setelah Anda memverifikasi bahwa semua penginstalan berhasil diupgrade, hapus rilis
apigee-operatoryang lebih lama dari namespaceapigee-system.- Uninstal rilis
operatorlama:helm delete operator -n apigee-system
- Hapus namespace
apigee-system:kubectl delete namespace apigee-system
- Uninstal rilis
- Lakukan upgrade
operatorlagi 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
Mengembalikan 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 batalkan perubahan CRD.
- Kembalikan semua diagram dari
apigee-virtualhostkeapigee-datastore. Perintah berikut mengasumsikan bahwa Anda menggunakan diagram dari versi sebelumnya (v1.15.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.15_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.15_OVERRIDES_FILE
Kembalikan diagram yang tersisa, kecuali
apigee-operator.helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_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 clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
- Instal
apigee-operatorkembali ke namespaceapigee-system.helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.15_OVERRIDES_FILE
- Kembalikan 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-operatordari namespace APIGEE_NAMESPACE untuk menyelesaikan proses rollback.helm uninstall operator -n APIGEE_NAMESPACE
- Beberapa resource cakupan cluster, seperti
clusterIssuer, akan dihapus saatoperatordi-uninstal. Instal ulang dengan perintah berikut:helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.15_OVERRIDES_FILE