Mengupgrade Apigee Hybrid ke versi 1.16

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.
    Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi profil Seccomp untuk keamanan pod.
  • 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 Google apigee-guardrails. Hal ini digunakan oleh diagram apigee-operator selama 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.rotationPolicy yang 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:

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:

  1. Bersiap untuk mengupgrade.
  2. Instal versi runtime hybrid 1.16.0.

Bersiap untuk mengupgrade ke versi 1.16

Mencadangkan penginstalan hybrid Anda

  1. 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%
  2. Buat salinan cadangan direktori 1.15 $APIGEE_HELM_CHARTS_HOME/ Anda. Anda dapat menggunakan proses pencadangan apa pun. Misalnya, Anda dapat membuat file tar dari seluruh direktori Anda dengan:
    tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.15-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
  3. Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra.
  4. 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-charts
export CHART_VERSION=1.16.0
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

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.

  • Instal CRD Apigee yang telah diupdate:
    1. 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
      
    2. Setelah memvalidasi dengan perintah uji coba, jalankan perintah berikut:

      kubectl apply -k  apigee-operator/etc/crds/default/ \
        --server-side \
        --force-conflicts \
        --validate=false
      
    3. 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.

    1. Verifikasi bahwa Anda dapat menjalankan create-service-account. Jika Anda baru saja mendownload diagram, file create-service-account mungkin 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 dengan chmod di Linux, MacOS, atau UNIX atau di Windows Explorer atau dengan perintah icacls di Windows. Contoh:

      chmod +x ./apigee-operator/etc/tools/create-service-account
    2. 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-guardrails dan mendownload kunci ke direktori service-accounts/.

      File JSON

      ./apigee-operator/etc/tools/create-service-account \
        --env prod \
        --profile apigee-guardrails \
        --dir ./apigee-operator/

      Perintah ini membuat akun layanan apigee-guardrails dan mendownload kunci ke direktori diagram apigee-operator/.

      Vault

      ./apigee-operator/etc/tools/create-service-account \
        --env prod \
        --profile apigee-guardrails \
        --dir service-accounts

      Perintah ini akan membuat akun layanan apigee-guardrails dan mendownload kunci ke direktori service-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-guardrails dan mendownload kunci ke direktori apigee-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-guardrails dan mendownload kunci ke direktori service-accounts/.

    3. Siapkan autentikasi untuk akun layanan apigee-guardrails:

      Secret Kubernetes

      Buat secret Kubernetes menggunakan file kunci akun layanan apigee-guardrails di direktori service-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_NAMESPACE

      Tambahkan kode berikut ke file overrides.yaml Anda:

      guardrails:
        serviceAccountRef: apigee-guardrails-svc-account

      File JSON

      Tambahkan kode berikut ke file overrides.yaml Anda, menggunakan jalur ke file kunci akun layanan apigee-guardrails di direktori apigee-operator/:

      guardrails:
        serviceAccountPath: $PROJECT_ID-apigee-guardrails.json

      Vault

      1. Perbarui secret Vault secret/data/apigee/orgsakeys untuk menambahkan entri guardrails dengan konten file kunci akun layanan apigee-guardrails.
        vault kv patch secret/apigee/orgsakeys guardrails="$(cat ./service-accounts/hybrid115-apigee-guardrails.json)"
        
      2. Akun layanan Kubernetes (KSA) untuk pembatasan diberi nama apigee-operator-guardrails-sa. Tambahkan KSA Pembatasan ke akun layanan khusus organisasi yang terikat ke peran apigee-orgsakeys di Vault.
        1. 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_NAMES adalah daftar nama akun layanan yang dipisahkan koma. Tambahkan apigee-operator-guardrails-sa ke 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
        2. Perbarui binding ke peran apigee-orgsakeys dengan 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
          
      3. Menambahkan "pembatas" ke SecretProviderClass
        1. Edit file spc-org.yaml Anda.
        2. Di bagian spec.parameters.objects, tambahkan entri perlindungan:
                - objectName: "guardrails"
                  secretPath: ""
                  secretKey: ""
        3. Perbarui SecretProviderClass Anda:
          kubectl -n APIGEE_NAMESPACE apply -f spc-org.yaml
          

      WIF untuk GKE

      Akun layanan Kubernetes (KSA) untuk pembatasan diberi nama apigee-operator-guardrails-sa. Buat binding untuk akun layanan Google (GSA) apigee-guardrails dengan 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_ID

      Tambahkan kode berikut ke file overrides.yaml Anda:

      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.

      1. 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.
      2. 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.json
            

        Dengan WORKLOAD_PROVIDER_ID adalah ID penyedia workload identity pool Anda.

      3. Konfigurasi apigee-guardrails untuk menggunakan Workload Identity Federation dengan salah satu metode berikut:

        WIF: rahasia

        1. 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"
        2. Ganti nilai serviceAccountRef dengan secret baru:
          guardrails:
            serviceAccountRef: guardrails-workload-identity-secret

        WIF: file

        Pindahkan file apigee-guardrails-credential-configuration.json yang dihasilkan ke direktori diagram apigee-operator/ Anda.

        Tambahkan kode berikut ke file overrides.yaml Anda:

        guardrails:
          serviceAccountPath: apigee-guardrails-credential-configuration.json

        WIF: Vault

        Perbarui kunci akun layanan untuk guardrails di 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 Vault untuk mengetahui informasi selengkapnya.

    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.

    1. Periksa konten sertifikat apigee-ca Anda untuk melihat apakah rotationPolicy disetel:
      kubectl get certificate apigee-ca -n cert-manager -o yaml
      

      Cari nilai di bagian spec.privateKey dalam 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
      ...
    2. Jika rotationPolicy tidak ditetapkan atau jika ditetapkan ke Always, edit sertifikat apigee-ca untuk menetapkan nilai rotationPolicy ke Never:
      1. 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
        
      2. Patch sertifikat:
        kubectl patch Certificate \
          -n cert-manager \
          --type=json \
          -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \
          -o=yaml \
          apigee-ca
        
    3. Pastikan nilai rotationPolicy sekarang disetel ke Never:
      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
      ...
    4. 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:

    Menginstal runtime hybrid 1.16.0

    1. Jika belum, buka direktori APIGEE_HELM_CHARTS_HOME Anda. Jalankan perintah berikut dari direktori tersebut.
    2. 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
      
    3. 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 apigeedatastore sudah aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeedatastore default
      
      NAME      STATE       AGE
      default   running    2d
    4. 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
    5. 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
    6. 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
    7. 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
    8. 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 dengan ENV_NAME. Namun, jika lingkungan Anda memiliki nama yang sama dengan grup lingkungan, Anda harus menggunakan nama rilis yang berbeda untuk lingkungan dan grup lingkungan, misalnya dev-env-release dan dev-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
    9. Upgrade grup lingkungan (virtualhosts).
      1. 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
        
      2. Periksa status ApigeeRoute (AR).

        Menginstal virtualhosts membuat 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
    10. Setelah Anda memverifikasi bahwa semua penginstalan berhasil diupgrade, hapus rilis apigee-operator yang lebih lama dari namespace apigee-system.
      1. Uninstal rilis operator lama:
        helm delete operator -n apigee-system
        
      2. Hapus namespace apigee-system:
        kubectl delete namespace apigee-system
        
    11. Lakukan upgrade operator lagi di namespace Apigee Anda untuk menginstal ulang resource cakupan cluster yang dihapus:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      

    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.

    1. Kembalikan semua diagram dari apigee-virtualhost ke apigee-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
      
    2. Buat namespace apigee-system.
      kubectl create namespace apigee-system
      
    3. Patch anotasi resource kembali ke namespace apigee-system.
      kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
      
    4. 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'
      
    5. Instal apigee-operator kembali ke namespace apigee-system.
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace apigee-system \
        --atomic \
        -f 1.15_OVERRIDES_FILE
      
    6. Kembalikan CRD dengan menginstal ulang CRD yang lebih lama.
      kubectl apply -k apigee-operator/etc/crds/default/ \
        --server-side \
        --force-conflicts \
        --validate=false
      
    7. Bersihkan rilis apigee-operator dari namespace APIGEE_NAMESPACE untuk menyelesaikan proses rollback.
      helm uninstall operator -n APIGEE_NAMESPACE
      
    8. Beberapa resource cakupan cluster, seperti clusterIssuer, akan dihapus saat operator di-uninstal. Instal ulang dengan perintah berikut:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace apigee-system \
        --atomic \
        -f 1.15_OVERRIDES_FILE