Mengupgrade Apigee hybrid ke versi 1.10

Prosedur ini mencakup upgrade dari Apigee hybrid versi 1.9.x ke Apigee hybrid versi 1.10.5 dan dari rilis hybrid 1.10.x sebelumnya ke versi 1.10.5.

Gunakan prosedur yang sama untuk upgrade versi minor (misalnya versi 1.9 hingga 1.10) dan untuk upgrade rilis patch (misalnya 1.10.0 hingga 1.10.5).

Ringkasan upgrade ke versi 1.10.5

Prosedur untuk mengupgrade Apigee Hybrid diatur dalam bagian berikut:

  1. Bersiap untuk mengupgrade.
  2. Instal runtime campuran versi 1.10.5.

Prasyarat

Petunjuk upgrade ini mengasumsikan bahwa Anda telah menginstal Apigee hybrid versi 1.9.x dan ingin mengupgradenya ke versi 1.10.5. Jika Anda mengupdate dari versi sebelumnya, lihat petunjuk untuk Mengupgrade Apigee hybrid ke versi 1.9.

Bersiap untuk mengupgrade ke versi 1.10

  1. Petunjuk ini menggunakan variabel lingkungan APIGEECTL_HOME untuk direktori dalam sistem file tempat Anda menginstal apigeectl. Jika perlu, ubah direktori ke direktori apigeectl dan tentukan variabel dengan perintah berikut:
    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME
    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME
    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. Buat salinan cadangan direktori $APIGEECTL_HOME/ versi 1.9. Contoh:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-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 ke versi yang didukung oleh hybrid 1.9 dan hybrid 1.10. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan.

1.10 tidak didukung (3) 1,11 1.12
GKE di Google Cloud 1.24.x
1.25.x
1.26.x
1.27.x(≥ 1.10.5)
1.28.x(≥ 1.10.5)
1.25.x
1.26.x
1.27.x
1.28.x(≥ 1.11.2)
1.29.x(≥ 1.11.2)
1.26.x
1.27.x
1.28.x
1.29.x(≥ 1.12.1)
GKE di AWS 1.13.x (K8s v1.24.x)
1.14.x (K8s v1.25.x)
1.26.x(12)
1.27.x(≥ 1.10.5)
1.28.x(≥ 1.10.5)
1.14.x (K8s v1.25.x)
1.26.x(12)
1.27.x
1.28.x(≥ 1.11.2)
1.29.x(≥ 1.11.2)
1.26.x(12)
1.27.x
1.28.x
1.29.x(≥ 1.12.1)
GKE di Azure 1.13.x
1.14.x
1.26.x(12)
1.27.x(≥ 1.10.5)
1.28.x(≥ 1.10.5)
1.14.x
1.26.x(12)
1.27.x
1.28.x(≥ 1.11.2)
1.29.x(≥ 1.11.2)
1.26.x(12)
1.27.x
1.28.x
1.29.x(≥ 1.12.1)
Google Distributed Cloud (khusus software) di VMware (1) (13) 1.13.x
1.14.x
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x)
1.27.x(≥ 1.10.5)
1.28.x(≥ 1.10.5)
1.14.x
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x)
1.28.x(≥ 1.11.2)
1.29.x(≥ 1.11.2)
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x)
1.28.x(12)
1.29.x(≥ 1.12.1)
Google Distributed Cloud (khusus software) di bare metal (1) 1.13.x
1.14.x (K8s v1.25.x)
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x)
1.27.x(12)(≥ 1.10.5)
1.28.x(≥ 1.10.5)
1.14.x
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x)
1.28.x(12)(≥ 1.11.2)
1.29.x(≥ 1.11.2)
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x)
1.28.x(12)
1.29.x(≥ 1.12.1)
EKS(7) 1.24.x
1.25.x
1.26.x
1.27.x(≥ 1.10.5)
1.28.x(≥ 1.10.5)
1.25.x
1.26.x
1.27.x
1.28.x(≥ 1.11.2)
1.29.x(≥ 1.11.2)
1.26.x
1.27.x
1.28.x
1.29.x(≥ 1.12.1)
AKS(7) 1.24.x
1.25.x
1.26.x
1.27.x(≥ 1.10.5)
1.28.x(≥ 1.10.5)
1.25.x
1.26.x
1.27.x
1.28.x(≥ 1.11.2)
1.29.x(≥ 1.11.2)
1.26.x
1.27.x
1.28.x
1.29.x(≥ 1.12.1)
OpenShift(7) 4.11
4.12
4.14(≥ 1.10.5)
4.15(≥ 1.10.5)
4.12
4.13
4.14
4.15(≥ 1.11.2)
4.16(≥ 1.11.2)
4.12
4.13
4.14
4.15
4.16(≥ 1.12.1)
Rancher Kubernetes Engine (RKE) v1.26.2+rke2r1
1.27.x(≥ 1.10.5)
1.28.x(≥ 1.10.5)
v1.26.2+rke2r1
v1.27.x
1.28.x(≥ 1.11.2)
1.29.x(≥ 1.11.2)
v1.26.2+rke2r1
v1.27.x

1.28.x
1.29.x(≥ 1.12.1)
VMware Tanzu T/A T/A v1.26.x

Komponen

1.10 1,11 1.12
Anthos Service Mesh 1.17.x(10) 1.18.x(10) 1.19.x(10)
JDK JDK 11 JDK 11 JDK 11
cert-manager 1.10.x
1.11.x
1.12.x
1.11.x
1.12.x
1.13.x
1.11.x
1.12.x
1.13.x
Cassandra 3.11 3.11 4.0
Kubernetes 1.24.x
1.25.x
1.26.x
1.25.x
1.26.x
1.27.x
1.26.x
1.27.x
1.28.x
kubectl 1.27.x
1.28.x
1.29.x
Helm 3.10+ 3.10+ 3.14.2+
Driver CSI Secret Store 1.3.4 1.4.1
Vault 1.13.x 1.15.2

(1) Di Anthos on-premise (Google Distributed Cloud) versi 1.13, ikuti petunjuk ini untuk menghindari konflik dengan cert-manager: Penginstalan cert-manager yang bertentangan

(2) Dukungan tersedia dengan Apigee hybrid versi 1.7.2 dan yang lebih baru.

(3) Tanggal EOL resmi untuk Apigee hybrid versi 1.10 dan yang lebih lama telah tercapai. Patch bulanan reguler tidak tersedia lagi. Rilis ini tidak lagi didukung secara resmi, kecuali untuk pelanggan dengan pengecualian eksplisit dan resmi untuk dukungan berkelanjutan. Pelanggan lain harus mengupgrade.

(4)Anthos on-premises (Google Distributed Cloud) versi 1.12 dan yang lebih lama tidak didukung lagi. Lihat Kebijakan Dukungan Versi Distributed Cloud di bare metal dan daftar versi yang didukung Distributed Cloud di VMware.

(5)Google Distributed Cloud di bare metal atau VMware memerlukan Anthos Service Mesh 1.14 atau yang lebih baru. Sebaiknya upgrade ke hybrid v1.8 dan beralih ke gateway masuk Apigee yang tidak lagi mengharuskan Anda menginstal Anthos Service Mesh di cluster hybrid.

(6) Dukungan tersedia dengan Apigee hybrid versi 1.8.4 dan yang lebih baru.

(7) Tidak didukung dengan Apigee hybrid versi 1.8.4 dan yang lebih baru.

(8) Dukungan tersedia dengan Apigee Hybrid versi 1.7.6 dan yang lebih baru.

(9) Tidak didukung dengan Apigee hybrid versi 1.8.5 dan yang lebih baru.

(10) Anthos Service Mesh diinstal secara otomatis dengan Apigee hybrid 1.9 dan yang lebih baru.

(11) Dukungan tersedia dengan Apigee Hybrid versi 1.9.2 dan yang lebih baru.

(12) Nomor versi GKE di AWS kini mencerminkan versi Kubernetes. Lihat dukungan upgrade dan versi GKE Enterprise untuk mengetahui detail versi dan patch yang direkomendasikan.

(13) Vault tidak disertifikasi di Google Distributed Cloud untuk VMware.

(14) Dukungan tersedia dengan Apigee hybrid versi 1.10.5 dan yang lebih baru.

(15) Dukungan tersedia dengan Apigee Hybrid versi 1.11.2 dan yang lebih baru.

(16) Dukungan tersedia dengan Apigee hybrid versi 1.12.1 dan yang lebih baru.

Tentang cluster terpasang

Untuk Apigee hybrid versi 1.7.x dan yang lebih lama, Anda harus menggunakan cluster terlampir GKE jika ingin menjalankan Apigee hybrid dalam konteks multi-cloud di Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), atau penyedia layanan Kubernetes pihak ketiga lain yang didukung. Lampiran cluster memungkinkan Google mengukur penggunaan Anthos Service Mesh.

Untuk Apigee hybrid versi 1.8.x, cluster yang terpasang GKE diperlukan jika Anda menggunakan Anthos Service Mesh untuk gateway masuk. Jika Anda menggunakan gateway ingress Apigee, cluster yang terpasang bersifat opsional.

Menginstal runtime hybrid 1.10.5

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

    Linux 64 bit:

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

    Mac 64 bit:

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

    Windows 64-bit:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
  3. Ubah nama direktori apigeectl/ Anda saat ini menjadi nama direktori cadangan. Misalnya:
    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/ 
    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9 
  4. Ekstrak konten file gzip yang didownload ke direktori dasar campuran Anda. Direktori dasar campuran adalah direktori tempat direktori apigeectl-v1.9 yang diganti namanya berada:

    tar xvzf filename.tar.gz -C ./
    tar xvzf filename.tar.gz -C ./
    tar xvzf filename.zip -C ./
  5. Konten tar, secara default, diperluas ke dalam direktori dengan versi dan platform dalam namanya. Misalnya: ./apigeectl_1.10.5-xxxxxxx_linux_64. Ganti nama direktori tersebut menjadi apigeectl menggunakan perintah berikut:

    mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl
    mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl
    rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
  6. Ubah ke direktori apigeectl:
    cd ./apigeectl

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

  7. Petunjuk ini menggunakan variabel lingkungan $APIGEECTL_HOME untuk direktori di sistem file tempat utilitas apigeectl diinstal. Jika perlu, ubah direktori ke direktori apigeectl dan tentukan variabel dengan perintah berikut:
    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME
    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME
    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  8. Verifikasi versi apigeectl dengan perintah version:
    ./apigeectl version
    Version: 1.10.5
  9. 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. Misalnya:
    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files
    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files
    mkdir %APIGEECTL_HOME%/../hybrid-files
    cd %APIGEECTL_HOME%/../hybrid-files
  10. Pastikan kubectl ditetapkan ke konteks yang benar menggunakan perintah berikut. Konteks saat ini harus ditetapkan ke cluster tempat Anda mengupgrade Apigee hybrid.
    kubectl config get-contexts | grep \*
  11. Di direktori hybrid-files:
    1. Perbarui link simbolis berikut ke $APIGEECTL_HOME. Link ini memungkinkan Anda 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
  12. Buat perubahan berikut pada file overrides.yaml untuk mengaktifkan diagram apigee-operator atau menggunakan tag yang benar, 1.10.5-hotfix.1:
      ao:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-operators"
          tag: "1.10.5-hotfix.1"
      
  13. 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.

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

    Jika berhasil, output akan menampilkan: All containers ready.

    kubectl describe apigeeds -n apigee

    Pada output, cari State: running.

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

    Untuk lingkungan produksi, upgrade setiap komponen campuran 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. Pemeriksaan selesai:
      $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 periksa penyelesaiannya:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. Tampilkan komponen Redis:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. Terapkan penggantian untuk mengupgrade komponen tingkat organisasi (MART, Watcher, dan Apigee Connect) dan periksa penyelesaiannya:
      $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 pada 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 Anda 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 untuk mengupgrade komponen virtualhosts dan periksa penyelesaiannya:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    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 statusnya:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

Me-roll back upgrade

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

  1. Bersihkan tugas yang telah selesai untuk namespace runtime campuran, dengan NAMESPACE adalah namespace yang ditentukan dalam file penggantian, jika Anda menentukan namespace. Jika tidak, namespace defaultnya adalah apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Bersihkan 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. Di direktori root penginstalan yang ingin Anda kembalikan, jalankan apigeectl apply, periksa status pod, lalu jalankan apigeectl init. Pastikan untuk menggunakan file penggantian asli untuk versi yang ingin Anda rollback:
    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 campuran versi sebelumnya, misalnya, ./overrides/overrides1.9.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