Mengupgrade Apigee Hybrid ke versi 1.10

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

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.4).

Ringkasan upgrade ke versi 1.10.4

Prosedur untuk mengupgrade Apigee Hybrid diatur dalam bagian berikut:

  1. Persiapan untuk mengupgrade.
  2. Instal hybrid runtime versi 1.10.4.

Prasyarat

Petunjuk upgrade ini mengasumsikan bahwa Anda telah menginstal Apigee Hybrid versi 1.9.x dan ingin mengupgradenya ke versi 1.10.4. Jika Anda melakukan update dari versi sebelumnya, lihat petunjuk untuk Mengupgrade Apigee Hybrid ke versi 1.9.

Persiapan 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:

    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.9 Anda. Contoh:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
  3. Cadangkan database Cassandra dengan mengikuti petunjuk dalam pencadangan dan pemulihan Cassandra.

Mengupgrade versi Kubernetes Anda

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

Menginstal runtime hybrid 1.10.4

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

    Linux

    Linux 64 bit:

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

    Mac OS

    Mac 64 bit:

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

    Windows

    Windows 64 bit:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.4/apigeectl_windows_64.zip
  3. Ganti nama direktori apigeectl/ Anda saat ini menjadi nama direktori cadangan. Contoh:

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9 
  4. Ekstrak konten file gzip yang didownload ke direktori dasar hybrid Anda. Direktori dasar hybrid adalah direktori tempat direktori apigeectl-v1.9 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 ./
  5. Secara default, konten tar diperluas ke direktori dengan versi dan platform dalam namanya. Misalnya: ./apigeectl_1.10.4-xxxxxxx_linux_64. Ganti nama direktori tersebut menjadi apigeectl menggunakan perintah berikut:

    Linux

    mv apigeectl_1.10.4-xxxxxxx_linux_64 apigeectl

    Mac OS

    mv apigeectl_1.10.4-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.10.4-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 dalam sistem file tempat utilitas apigeectl diinstal. Jika perlu, ubah direktori ke direktori apigeectl 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%
  8. Verifikasi versi apigeectl dengan perintah version:
    ./apigeectl version
    Version: 1.10.4
  9. Buat direktori hybrid-base-directory/hybrid-files, lalu pindahkan 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
  10. 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 \*
  11. Dalam 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 sudah dibuat dengan benar, jalankan perintah berikut dan pastikan jalur link mengarah ke lokasi yang benar:
      ls -l | grep ^l
  12. 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.

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

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

    kubectl describe apigeeds -n apigee

    Pada output, cari State: running.

  15. Periksa apakah ada error dengan uji coba perintah apply menggunakan flag --dry-run:
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  16. 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. Periksa penyelesaian:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      Lanjutkan ke langkah berikutnya hanya jika pod sudah siap.

    4. Terapkan penggantian Anda untuk mengupgrade komponen Telemetry dan memeriksa penyelesaian:
      $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 Anda 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 memiliki dua pilihan:
      • Lingkungan menurut 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 untuk mengupgrade komponen virtualhosts dan memeriksa penyelesaian:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Non-produksi

    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 meniru lingkungan produksi, Anda dapat menggunakan 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
  17. Instal 1.10.3-hotfix.1. Untuk informasi selengkapnya, lihat hybrid 1.10.3-hotfix.1 dalam catatan rilis Apigee.
  18. Instal 1.10.3-hotfix.2. Untuk informasi selengkapnya, lihat hybrid 1.10.3-hotfix.2 dalam catatan rilis Apigee.
  19. Instal 1.10.3-hotfix.3. Untuk informasi selengkapnya, lihat hybrid 1.10.3-hotfix.3 dalam catatan rilis Apigee.
  20. Instal 1.10.3-hotfix.4. Untuk informasi selengkapnya, lihat hybrid 1.10.3-hotfix.4 dalam catatan rilis Apigee.

Instal 1.10.4-hotfix.1

Gunakan perintah berikut untuk menginstal rilis hotfix, 1.10.4-hotfix.1. Untuk informasi selengkapnya, lihat hybrid 1.10.4-hotfix.1 dalam catatan rilis Apigee.

  1. Buka file penggantian.
  2. Pertama, perbarui file penggantian Anda. Ikuti petunjuk yang sesuai untuk alat yang Anda gunakan untuk mengelola Apigee Hybrid, Helm, atau apigeectl:

    Helm

    1. Di stanza istiod, ubah versi tag gambar (jika ada) ke versi 1.17.8. Contoh:
      istiod:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-istiod"
          tag: "1.17.8-asm.20-distroless"
    2. Di stanza apigeeIngressGateway, ubah versi tag gambar (jika ada) ke versi 1.17.8. Contoh:
      apigeeIngressGateway:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
          tag: "1.17.8-asm.20-distroless"
    3. Simpan file.

    apigeectl

    1. Di stanza istiod, ubah versi tag gambar (jika ada) ke versi 1.17.8. Contoh:
      istiod:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-istiod"
          tag: "1.17.8-asm.20-distroless"
    2. Bergantung pada cara yang dipilih untuk menginstal Apigee Hybrid, Anda mungkin memiliki stanza ingressGateway atau ingressGateways. Temukan stanza yang muncul di file penggantian Anda dan ubah versi tag gambar (jika ada) ke versi 1.17.8. Misalnya, jika Anda memiliki stanza ingressGateway:
      ingressGateway:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
          tag: "1.17.8-asm.20-distroless"

      atau, jika Anda memiliki stanza ingressGateways:

      ingressGateways:
        - name: gateway1
          image:
            url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
            tag: "1.17.8-asm.20-distroless"
          ...
        - name: gateway2
          image:
            url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
            tag: "1.17.8-asm.20-distroless"
          ... 
    3. Simpan file.
  3. Selanjutnya, terapkan perubahan. Ikuti petunjuk yang sesuai untuk alat yang Anda gunakan untuk mengelola Apigee Hybrid, Helm, atau apigeectl:

    Helm

    1. Instal diagram apigee-ingress-manager dengan perintah berikut:
      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace "YOUR_APIGEE_NAMESPACE" \
        --atomic \
        -f OVERRIDES_FILE
      
    2. Instal diagram apigee-org dengan perintah berikut:
      helm upgrade ORG_NAME apigee-org/ \
          --install \
          --namespace "YOUR_APIGEE_NAMESPACE" \
          --atomic \
          -f OVERRIDES_FILE
    3. Verifikasi status pod Anda:
      kubectl get pods -n YOUR_APIGEE_NAMESPACE

    apigeectl

    1. Jalankan perintah berikut untuk melakukan inisialisasi komponen istiod:
      $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    2. Jalankan perintah berikut untuk menerapkan perubahan pada komponen ingress Apigee. Jika Anda memiliki lebih dari satu organisasi, ulangi perintah ini untuk setiap organisasi:
      $APIGEECTL_HOME/apigeectl apply --org -f OVERRIDES_FILE
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    3. Verifikasi status pod Anda:
      kubectl get pods -n YOUR_APIGEE_NAMESPACE

Me-roll back upgrade

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

  1. Bersihkan tugas yang sudah selesai untuk namespace runtime hybrid, dengan NAMESPACE adalah namespace yang ditentukan dalam file penggantian Anda, jika Anda menentukan namespace. Jika tidak, namespace default-nya adalah apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Bersihkan tugas yang sudah 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 utama penginstalan yang ingin Anda roll back, jalankan apigeectl apply, periksa status pod Anda, lalu jalankan apigeectl init. Pastikan untuk menggunakan file penggantian asli untuk versi yang ingin Anda roll back:
    1. Di direktori hybrid file, jalankan apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

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

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

      Dengan NAMESPACE sebagai namespace hybrid Apigee 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 saat pod apigeeds berjalan.

    4. Jalankan perintah berikut untuk mencatat nilai jumlah replika baru Anda untuk pemroses pesan setelah upgrade. Jika nilai ini tidak cocok dengan nilai yang telah Anda tetapkan sebelumnya, ubah nilai dalam file penggantian agar cocok dengan konfigurasi Anda 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