Mengupgrade Apigee hybrid ke versi 1.11

Prosedur ini mencakup upgrade dari Apigee Hybrid versi 1.10.x ke Apigee Hybrid versi 1.11.2 dan dari rilis sebelumnya dari Hybrid 1.11.x ke versi 1.11.2.

Gunakan prosedur yang sama untuk upgrade versi minor (misalnya, versi 1.10 ke 1.11) dan untuk upgrade rilis patch (misalnya 1.11.0 ke 1.11.2).

Jika Anda melakukan upgrade dari Apigee Hybrid versi 1.9 atau yang lebih lama, Anda harus melakukan upgrade ke Hybrid versi 1.10 terlebih dahulu sebelum melakukan upgrade ke versi 1.11.2. Lihat petunjuk untuk Mengupgrade Apigee Hybrid ke versi 1.10.

Ringkasan upgrade ke versi 1.11.2

Pemeriksaan instansiasi class yang lebih ketat di Hybrid 1.11.2-Hotfix.3

Mulai dari Apigee hybrid 1.11.2-Hotfix.3, kebijakan JavaCallout kini mencakup keamanan tambahan selama instansiasi class Java. Tindakan keamanan yang ditingkatkan ini mencegah penerapan kebijakan yang secara langsung atau tidak langsung mencoba melakukan tindakan yang memerlukan izin yang tidak diizinkan.

Dalam sebagian besar kasus, kebijakan yang ada akan terus berfungsi seperti yang diharapkan tanpa masalah apa pun. Namun, ada kemungkinan kebijakan yang mengandalkan library pihak ketiga, atau kebijakan dengan kode kustom yang secara tidak langsung memicu operasi yang memerlukan izin yang lebih tinggi, dapat terpengaruh.

Prosedur untuk mengupgrade Apigee Hybrid diatur dalam bagian berikut:

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

Prasyarat

Petunjuk upgrade ini mengasumsikan Anda telah menginstal Apigee Hybrid versi 1.10.x dan ingin mengupgradenya ke versi 1.11.2. Jika Anda mengupdate dari versi sebelumnya, lihat petunjuk untuk Mengupgrade Apigee Hybrid ke versi 1.10.

Diagram Helm dan apigeectl

Di versi 1.11, Anda dapat memilih untuk menginstal dan mengelola Apigee Hybrid dengan diagram Helm atau apigeectl. Apigee merekomendasikan penggunaan Helm untuk mengelola penginstalan Anda.

Bermigrasi ke v1.11 dengan Helm dari v1.10 dengan apigeectl

Untuk mengupgrade ke Apigee hybrid v1.11 yang dikelola oleh Helm dari penginstalan hybrid v1.10 yang dikelola dengan apigeectl:

  1. Pertama, migrasikan Helm penginstalan v1.10 dengan mengikuti petunjuk di Memigrasikan Apigee Hybrid ke diagram Helm dari apigeectl.
  2. Ikuti petunjuk untuk diagram Helm di bawah guna mengupgrade penginstalan Anda.

Bersiap untuk mengupgrade ke versi 1.11

Helm

  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.10 $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.10-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
  3. Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra.
  4. 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/
  5. Pastikan file kunci dan sertifikat TLS Anda (.crt, .key, dan/atau .pem) berada di direktori $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/.

apigeectl

Contoh dalam petunjuk ini menggunakan struktur direktori berikut. Penginstalan Anda mungkin berbeda. Sesuaikan petunjuk dengan struktur penginstalan Anda.

hybrid-v1.11-root-directory/
└── apigeectl/
    └── config/
    └── plugins/
    └── templates/
    └── tools/
└── hybrid-files/
    └── overrides/
    └── service-accounts/
    └── certs/
hybrid-v1.10-root-directory/
  1. Petunjuk ini menggunakan variabel lingkungan APIGEECTL_HOME untuk direktori dalam sistem file tempat Anda menginstal apigeectl. Jika perlu, ubah direktori ke direktori apigeectl Anda dan tentukan variabel dengan perintah berikut:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. Buat salinan cadangan direktori $APIGEECTL_HOME/ versi 1.10 Anda. Contoh:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.10-backup.tar.gz $APIGEECTL_HOME
  3. Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra.

Mengupgrade versi Kubernetes

Periksa versi platform Kubernetes Anda dan jika perlu, upgrade platform Kubernetes Anda ke versi yang didukung oleh hybrid 1.10 dan hybrid 1.11. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan.

Menginstal runtime hybrid 1.11.2

Helm

Mempersiapkan upgrade diagram Helm

  1. Lakukan perubahan berikut pada file overrides.yaml untuk mengaktifkan apigee-operator dan apigee-env agar menggunakan tag yang benar, 1.11.2-hotfix.3:
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.3"
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Lihat catatan rilis Apigee 1.11.2-hotfix.3.

  2. 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.11.2
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  3. Instal 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.11.1/cert-manager.yaml
    
  4. 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
      
    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                    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
      
  5. 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.

Menginstal diagram Helm Apigee hybrid

  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 \
      --create-namespace \
      --namespace apigee-system \
      -f OVERRIDES_FILE \
      --dry-run
    

    Mengupgrade 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.11.2   1.11.2

    Verifikasi bahwa instance 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
  3. Upgrade datastore Apigee:

    Uji coba:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Mengupgrade diagram:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -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
  4. Mengupgrade telemetri Apigee:

    Uji coba:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Mengupgrade diagram:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Pastikan instance tersebut aktif dan berjalan dengan memeriksa statusnya:

    kubectl -n apigee 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 \
      -f OVERRIDES_FILE \
      --dry-run
    

    Mengupgrade diagram:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Pastikan instance tersebut aktif dan berjalan dengan memeriksa statusnya:

    kubectl -n apigee 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 \
      -f OVERRIDES_FILE \
      --dry-run
    

    Mengupgrade diagram:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Verifikasi bahwa instance 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
  7. Upgrade organisasi Apigee:

    Uji coba:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Mengupgrade diagram:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Pastikan org tersebut aktif dan berjalan dengan memeriksa status org yang bersangkutan:

    kubectl -n apigee get apigeeorg
    
    NAME                      STATE     AGE
    apigee-org1-xxxxx          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 \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run
    
    • ENV_RELEASE_NAME adalah nama yang Anda gunakan sebelumnya untuk menginstal diagram apigee-env. Di hybrid v1.10, biasanya apigee-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 Anda untuk v.1.11.2

    Mengupgrade diagram:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    

    Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa status env masing-masing:

    kubectl -n apigee get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            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 env yang disebutkan dalam file overrides.yaml:

      Uji coba:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE \
        --dry-run
      

      ENV_GROUP_RELEASE_NAME adalah nama yang Anda gunakan sebelumnya untuk menginstal diagram apigee-virtualhost. Di hybrid v1.10, biasanya apigee-virtualhost-ENV_GROUP_NAME. Di Hybrid v1.11 dan yang lebih baru, biasanya ENV_GROUP_NAME.

      Mengupgrade diagram:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE
      
    2. Periksa status ApigeeRoute (AR).

      Menginstal virtualhosts akan 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 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

Instal 1.11.2-hotfix.3

  1. Lakukan perubahan berikut pada file overrides.yaml untuk mengaktifkan runtime menggunakan tag yang benar, 1.11.2-hotfix.3:
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Lihat catatan rilis Apigee 1.11.2-hotfix.3.

  2. Perbarui diagram apigee-env dengan perintah helm upgrade dan file penggantian saat ini.

    Ulangi langkah ini untuk setiap lingkungan.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --namespace APIGEE_NAMESPACE \
      --set env ENV_NAME \
      --atomic \
      -f OVERRIDES_FILE 

apigeectl

  1. Simpan nomor versi terbaru dalam variabel menggunakan perintah berikut:

    Linux

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)

    Mac OS

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt)

    Windows

    for /f "tokens=*" %a in ('curl -s ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^
    do set VERSION=%a
  2. Pastikan variabel diisi dengan nomor versi menggunakan perintah berikut. Jika Anda ingin menggunakan versi yang berbeda, Anda dapat menyimpannya dalam variabel lingkungan.
    echo $VERSION

    Anda akan melihat versi hybrid Apigee terbaru:

      1.11.2
  3. Pastikan Anda berada di direktori dasar hybrid (direktori induk tempat file yang dapat dieksekusi apigeectl berada):
    cd $APIGEECTL_HOME/..
  4. Download paket rilis untuk sistem operasi Anda menggunakan perintah berikut. Pastikan untuk memilih platform Anda dalam tabel berikut:

    Linux

    Linux 64 bit:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz

    Mac OS

    Mac 64 bit:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz

    Windows

    Windows 64 bit:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/%VERSION%/apigeectl_windows_64.zip
  5. Ubah nama direktori apigeectl/ Anda saat ini menjadi nama direktori cadangan. Contoh:

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.10 
  6. Ekstrak konten file gzip yang didownload ke direktori dasar hybrid Anda. Direktori dasar hybrid adalah direktori tempat direktori apigeectl-v1.10 yang diganti namanya berada:

    Linux

    tar xvzf filename.tar.gz -C ./

    Mac OS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  7. Konten tar secara default diekstrak ke dalam direktori dengan versi dan platform di namanya. Misalnya: ./apigeectl_1.11.2-xxxxxxx_linux_64. Ganti nama direktori tersebut menjadi apigeectl menggunakan perintah berikut:

    Linux

    mv apigeectl_1.11.2-xxxxxxx_linux_64 apigeectl

    Mac OS

    mv apigeectl_1.11.2-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.11.2-xxxxxxx_windows_64 apigeectl
  8. Ubah ke direktori apigeectl:
    cd ./apigeectl

    Direktori ini adalah direktori beranda apigeectl. Di sinilah perintah yang dapat dieksekusi apigeectl berada.

  9. Petunjuk ini menggunakan variabel lingkungan $APIGEECTL_HOME untuk direktori dalam sistem file tempat utilitas apigeectl diinstal. Jika perlu, ubah direktori ke direktori apigeectl Anda dan tentukan variabel dengan perintah berikut:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  10. Verifikasi versi apigeectl dengan perintah version:
    ./apigeectl version
    Version: 1.11.2
  11. Buat direktori hybrid-base-directory/hybrid-files, lalu pindah ke dalamnya. Direktori hybrid-files adalah tempat file konfigurasi seperti file penggantian, sertifikat, dan akun layanan berada. Contoh:

    Linux

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    Mac OS

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    Windows

    mkdir %APIGEECTL_HOME%/../hybrid-files
    cd %APIGEECTL_HOME%/../hybrid-files
  12. Pastikan kubectl disetel ke konteks yang benar menggunakan perintah berikut. Konteks saat ini harus disetel ke cluster tempat Anda mengupgrade Apigee hybrid.
    kubectl config get-contexts | grep \*
  13. Di direktori hybrid-files:
    1. Perbarui link simbolis berikut ke $APIGEECTL_HOME. Dengan link ini, Anda dapat menjalankan perintah apigeectl yang baru diinstal dari dalam direktori hybrid-files:
      ln -nfs $APIGEECTL_HOME/tools tools
      ln -nfs $APIGEECTL_HOME/config config
      ln -nfs $APIGEECTL_HOME/templates templates
      ln -nfs $APIGEECTL_HOME/plugins plugins
    2. Untuk memeriksa apakah symlink dibuat dengan benar, jalankan perintah berikut dan pastikan jalur link mengarah ke lokasi yang benar:
      ls -l | grep ^l
  14. Lakukan inisialisasi uji coba untuk memeriksa error:
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    Dengan OVERRIDES_FILE adalah nama file penggantian Anda, misalnya ./overrides/overrides.yaml.

  15. Jika tidak ada error, inisialisasi hybrid 1.11.2:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  16. Periksa status inisialisasi:
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Jika berhasil, output-nya akan menampilkan: All containers ready.

    kubectl describe apigeeds -n apigee

    Di output, cari State: running.

  17. Periksa error dengan uji coba perintah apply menggunakan flag --dry-run:
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  18. Jika tidak ada error, terapkan penggantian Anda. Pilih dan ikuti petunjuk untuk lingkungan produksi atau lingkungan non-produksi, bergantung pada penginstalan Anda.

    Produksi

    Untuk lingkungan produksi, upgrade setiap komponen hybrid satu per satu, dan periksa status komponen yang diupgrade sebelum melanjutkan ke komponen berikutnya.

    1. Pastikan Anda berada di direktori hybrid-files.
    2. Terapkan penggantian untuk mengupgrade Cassandra:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
    3. Penyelesaian pemeriksaan:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      Lanjutkan ke langkah berikutnya hanya jika pod sudah siap.

    4. Terapkan penggantian untuk mengupgrade komponen Telemetri dan memeriksa penyelesaian:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. Aktifkan komponen Redis:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. Terapkan penggantian untuk mengupgrade komponen tingkat org. (MART, Watcher, dan Apigee Connect) dan periksa penyelesaian:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    7. Terapkan penggantian untuk mengupgrade lingkungan Anda. Anda memiliki dua pilihan:
      • Lingkungan demi lingkungan: Terapkan penggantian Anda ke satu lingkungan dalam satu waktu dan periksa penyelesaiannya. Ulangi langkah ini untuk setiap lingkungan:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

        Dengan ENV_NAME adalah nama lingkungan yang Anda upgrade.

      • Semua lingkungan sekaligus: Terapkan penggantian ke semua lingkungan sekaligus dan periksa penyelesaiannya:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    8. Terapkan penggantian Anda untuk mengupgrade komponen virtualhosts dan periksa penyelesaiannya:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Non-prod

    Di sebagian besar lingkungan non-produksi, demo, atau eksperimental, Anda dapat menerapkan penggantian ke semua komponen sekaligus. Jika lingkungan non-produksi Anda besar dan kompleks atau sangat mirip dengan lingkungan produksi, sebaiknya gunakan petunjuk untuk mengupgrade lingkungan produksi.

    1. Pastikan Anda berada di direktori hybrid-files.
    2. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
    3. Periksa status:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

Instal 1.11.2-hotfix.3

  1. Lakukan perubahan berikut pada file overrides.yaml untuk mengaktifkan runtime menggunakan tag yang benar, 1.11.2-hotfix.3:
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Lihat catatan rilis Apigee 1.11.2-hotfix.3.

  2. Instal perbaikan cepat dengan apigeectl init menggunakan file penggantian yang telah diperbarui.

    Uji coba:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client
    

    Lakukan inisialisasi:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE
    
  3. Terapkan perbaikan cepat dengan apigeectl apply.

    Uji coba:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs --dry-run=client
    

    Terapkan:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs
    

Gunakan prosedur ini untuk memvalidasi perilaku kebijakan JavaCallout setelah mengupgrade ke Hybrid 1.11.2-hotfix.3.

  1. Periksa apakah file JAR Java meminta izin yang tidak diperlukan.

    Setelah kebijakan di-deploy, periksa log runtime untuk melihat apakah pesan log berikut ada: "Failed to load and initialize class ...". Jika Anda melihat pesan ini, hal ini menunjukkan bahwa JAR yang di-deploy meminta izin yang tidak diperlukan. Untuk mengatasi masalah ini, selidiki kode Java dan perbarui file JAR.

  2. Selidiki dan perbarui kode Java.

    Tinjau kode Java (termasuk dependensi) untuk mengidentifikasi penyebab operasi yang berpotensi tidak diizinkan. Jika ditemukan, ubah kode sumber sesuai kebutuhan.

  3. Uji kebijakan dengan pemeriksaan keamanan yang diaktifkan.

    Di lingkungan non-produksi, aktifkan flag pemeriksaan keamanan dan deploy ulang kebijakan Anda dengan JAR yang telah diupdate. Untuk menetapkan tanda:

    • Di file apigee-env/values.yaml, tetapkan conf_security-secure.constructor.only ke true di bagian runtime:cwcAppend:. Contoh:
      # Apigee Runtime
      runtime:
        cwcAppend:
          conf_security-secure.constructor.only: true
    • Perbarui diagram apigee-env untuk lingkungan guna menerapkan perubahan. Contoh:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set env=ENV_NAME \
        -f OVERRIDES_FILE

        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 Three big concepts class="external" dalam dokumentasi Helm.

    Jika pesan log "Failed to load and initialize class ..." masih ada, lanjutkan pengubahan dan pengujian JAR hingga pesan log tidak muncul lagi.

  4. Aktifkan pemeriksaan keamanan di lingkungan produksi.

    Setelah Anda menguji dan memverifikasi file JAR secara menyeluruh di lingkungan non-produksi, aktifkan pemeriksaan keamanan di lingkungan produksi dengan menyetel tanda conf_security-secure.constructor.only ke true dan memperbarui diagram apigee-env untuk lingkungan produksi guna menerapkan perubahan.

Me-roll back upgrade

Ikuti langkah-langkah berikut untuk melakukan roll back upgrade sebelumnya:

Helm

Untuk mengembalikan ke versi sebelumnya, gunakan diagram dan file penggantian dari penginstalan sebelumnya.

  1. Buat variabel lingkungan berikut:
    • PREVIOUS_HELM_CHARTS_HOME: Direktori tempat diagram Helm Apigee hybrid sebelumnya diinstal. Ini adalah versi yang Anda roll back.
  2. Roll back 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 \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_GROUP_RELEASE_NAME adalah nama yang Anda gunakan sebelumnya untuk menginstal diagram apigee-virtualhost. Di hybrid v1.10, biasanya apigee-virtualhost-ENV_GROUP_NAME. Di Hybrid v1.11 dan yang lebih baru, biasanya ENV_GROUP_NAME.

  3. Roll back 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 \
      --atomic \
      --set env=ENV_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_RELEASE_NAME adalah nama yang Anda gunakan sebelumnya untuk menginstal diagram apigee-env. Di hybrid v1.10, biasanya apigee-env-ENV_NAME. Di Hybrid v1.11 dan yang lebih baru, biasanya ENV_NAME.

  4. Roll back Org:
    helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  5. Roll back Pengelola Ingress:
    helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  6. Roll back Redis:
    helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  7. Roll back Telemetri Apigee:
    helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  8. Mengembalikan Apigee Datastore (komponen database Cassandra):
    helm upgrade datastore $PREVIOUS_HELM_CHARTS_HOME/apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  9. Roll back Apigee Controller:
    helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  10. Roll back CRD Apigee Hybrid:
      kubectl apply -k  $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
    

apigeectl

  1. Hapus tugas yang telah selesai untuk namespace runtime hybrid, dengan NAMESPACE adalah namespace yang ditentukan dalam file penggantian, jika Anda menentukan namespace. Jika tidak, namespace default adalah apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Hapus tugas yang telah selesai untuk namespace apigee-system:
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. Ubah variabel APIGEECTL_HOME agar mengarah ke direktori yang berisi apigeectl versi sebelumnya. Contoh:
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. Jalankan perintah berikut di direktori root penginstalan yang ingin Anda kembalikan. Pastikan untuk menggunakan file penggantian asli untuk versi yang ingin Anda roll back:
    1. Di direktori hybrid-files, jalankan apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      Dengan ORIGINAL_OVERRIDES_FILE adalah jalur relatif dan nama file penggantian untuk penginstalan hybrid versi sebelumnya, misalnya, ./overrides/overrides1.10.yaml.

    2. Periksa status pod Anda:
      kubectl -n NAMESPACE get pods

      Dengan NAMESPACE adalah namespace Apigee Hybrid Anda.

    3. Periksa status apigeeds:
      kubectl describe apigeeds -n apigee

      Output Anda akan terlihat seperti ini:

      Status:
        Cassandra Data Replication:
        Cassandra Pod Ips:
          10.8.2.204
        Cassandra Ready Replicas:  1
        Components:
          Cassandra:
            Last Successfully Released Version:
              Revision:  v1-f8aa9a82b9f69613
              Version:   v1
            Replicas:
              Available:  1
              Ready:      1
              Total:      1
              Updated:    1
            State:        running
        Scaling:
          In Progress:         false
          Operation:
          Requested Replicas:  0
        State:                 running

      Lanjutkan ke langkah berikutnya hanya jika pod apigeeds sedang berjalan.

    4. Jalankan perintah berikut untuk mencatat nilai jumlah replika baru Anda untuk pemroses pesan setelah upgrade. Jika nilai ini tidak cocok dengan yang telah Anda tetapkan sebelumnya, ubah nilai dalam file penggantian agar cocok dengan konfigurasi sebelumnya.
      apigeectl apply -f ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2

      Output Anda akan terlihat seperti ini:

            autoScaler:
              minReplicas: 2
              maxReplicas: 10
    5. Jalankan apigeectl init:
      $APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE