Mengupgrade Apigee Hybrid ke versi 1.8

Memperkenalkan gateway masuk Apigee

Mulai versi 1.8, Apigee Hybrid menawarkan fitur baru untuk mengelola gateway masuk untuk penginstalan hybrid, yaitu Gateway masuk Apigee. Anthos Service Mesh bukan lagi merupakan prasyarat untuk instalasi hibrida. Dengan gateway masuk Apigee, Apigee akan berhenti menyediakan perutean ke Anthos Service Mesh. Setelah upgrade, Anda harus memigrasikan traffic ke traffic baru Gateway masuk Apigee sebelum Anda dapat mulai menggunakan fitur ini.

Apigee menggunakan sebagian kecil fitur Anthos Service Mesh untuk gateway masuk. Dimulai dengan hybrid versi 1.8 Apigee Hybrid mencakup gateway masuk yang diinstal dan diupgrade sebagai bagian dari upgrade hybrid Apigee. Oleh karena itu, Anda tidak perlu untuk membangun keahlian seputar Anthos Service Mesh guna menginstal, mengupgrade, dan mengelola Apigee hibrida. Masalah terkait kompatibilitas dan versi gateway masuk dengan Apigee Hybrid maka rilis akan ditangani secara otomatis.

Dua skenario untuk melakukan migrasi adalah:

  • Migrasi multi-cluster atau multi-region (direkomendasikan):

    Sebelum beralih ke Ingress baru untuk Apigee, pindahkan semua traffic ke cluster lain atau dari cluster yang akan dimigrasikan. Ini akan memberi Anda waktu untuk menguji apakah Gateway masuk Apigee berfungsi seperti yang diharapkan. Kemudian, alihkan traffic kembali ke versi yang telah diupgrade .

  • Upgrade yang sudah ada (tidak direkomendasikan di lingkungan produksi):

    Selama proses upgrade, Apigee akan memunculkan gateway masuk baru dengan alamat IP yang Anda tentukan. Kemudian, Anda dapat menguji apakah gateway masuk Apigee yang baru berfungsi seperti yang diharapkan, lalu beralih traffic ke traffic masuk yang baru. Mungkin terjadi periode nonaktif selama upgrade ini.

Saat mengupgrade Apigee Hybrid ke versi 1.8, Anda harus mengonfigurasi Gateway masuk Apigee di file penggantian. Setelah mengupgrade, Anda dapat mengontrol jenis traffic masuk yang akan digunakan cluster Anda dengan mengarahkan data A atau CNAME pada registrar Anda ke IP untuk gateway masuk Apigee atau Anthos Service Mesh.

Peningkatan ke versi 1.8.8 ikhtisar

Prosedur untuk mengupgrade Apigee Hybrid diatur di bagian berikut:

  1. Bersiap melakukan upgrade.
  2. Menginstal runtime hybrid versi 1.8.8.
  3. Untuk gateway masuk, pilih salah satu opsi berikut:

Prasyarat

Petunjuk upgrade ini mengasumsikan bahwa Anda memiliki Apigee Hybrid versi 1.7.x atau rilis {i>patch<i} versi 1.8.x sebelumnya dan ingin meng-upgrade ke versi 1.8.8. Jika Anda memperbarui dari lihat petunjuk untuk Meningkatkan Apigee Hybrid ke versi 1.7.

Jika ingin terus menggunakan Anthos Service Mesh, Anda harus memastikan Anthos Service Mesh diupgrade ke versi yang didukung . Lihat tabel Platform yang didukung untuk mengetahui informasi yang didukung versi Anthos Service Mesh.

Bersiap mengupgrade ke versi 1.8

  1. Petunjuk ini menggunakan variabel lingkungan APIGEECTL_HOME untuk direktori di sistem file yang Anda gunakan untuk 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.7 Anda. Contoh:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.7-backup.tar.gz $APIGEECTL_HOME
  3. Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra

Tambahkan peran Agen Cloud Trace ke akun layanan untuk runtime Apigee. (Opsional)

Opsional: Jika berencana menggunakan Cloud trace dan belum melakukannya sudah melakukan langkah ini pada instalasi hybrid v1.7 Anda, pastikan layanan Anda untuk layanan runtime Apigee Anda memiliki peran Google sebagai Agen Cloud Trace. (roles/cloudtrace.agent).

Untuk lingkungan produksi, biasanya akun ini adalah akun layanan apigee-runtime. Sebagai non-produksi, biasanya adalah akun layanan apigee-non-prod.

Anda dapat menambahkan peran di Konsol Cloud > IAM & Admin > UI akun layanan atau dengan perintah berikut:

  1. Dapatkan alamat email untuk akun layanan Anda dengan perintah berikut:

    Produksi

    gcloud iam service-accounts list --filter "apigee-runtime"

    Jika cocok dengan pola apigee-runtime@$ORG_NAME.iam.gserviceaccount.com, Anda dapat menggunakan pola tersebut di langkah berikutnya.

    Non-Prod

    gcloud iam service-accounts list --filter "apigee-non-prod"

    Jika cocok dengan pola apigee-non-prod@$ORG_NAME.iam.gserviceaccount.com, Anda dapat menggunakan pola tersebut di langkah berikutnya.

  2. Tetapkan peran Agen Cloud Trace ke akun layanan:

    Produksi

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="serviceAccount:apigee-runtime@$PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/cloudtrace.agent"

    Non-Prod

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/cloudtrace.agent"

    Contoh

    gcloud projects add-iam-policy-binding hybrid-example-project \
        --member="serviceAccount:apigee-runtime@hybrid-example-project.iam.gserviceaccount.com" \
        --role="roles/cloudtrace.agent"

    Di mana: $PROJECT_ID adalah nama project Google Cloud tempat Apigee Hybrid diinstal.

Bersiap untuk menginstal gateway masuk Apigee

Untuk menginstal gateway masuk Apigee sebagai bagian dari upgrade. Anda perlu menambahkan mengikuti ingressGateways ke file penggantian Anda.

Sintaks

ingressGateways:
- name: INGRESS_NAME
  replicaCountMin: REPLICAS_MIN
  replicaCountMax: REPLICAS_MAX
  resources:
    requests:
      cpu: CPU_COUNT_REQ
      memory: MEMORY_REQ
    limits:
      cpu: CPU_COUNT_LIMIT
      memory: MEMORY_LIMIT
  svcAnnotations:  # optional. See Known issue 243599452.
    SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
  svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional

Contoh

ingressGateways:
- name: prod1
  replicaCountMin: 2
  replicaCountMax: 100
  resources:
    requests:
      cpu: 1
      memory: 1Gi
    limits:
      cpu: 2
      memory: 2Gi 
  • INGRESS_NAME adalah nama deployment masuk. Bisa saja berupa nama apa pun yang sesuai persyaratan berikut:
    • Memiliki panjang maksimum 17 karakter
    • Hanya berisi karakter alfanumerik huruf kecil, '-' atau '.'
    • Awali dengan karakter alfanumerik
    • Diakhiri dengan karakter alfanumerik

    Lihat ingressGateways[].name dalam referensi properti Configuration

  • REPLICAS_MIN dan REPLICAS_MAX adalah jumlah replika minimum dan maksimum untuk Gateway masuk Apigee di penginstalan Anda. Untuk informasi selengkapnya dan setelan default, lihat ingressGateways[].replicaCountMin dan ingressGateways[].replicaCountMax dalam referensi properti Configuration.
  • CPU_COUNT_REQ dan MEMORY_REQ adalah permintaan CPU dan memori untuk masing-masing instance gateway masuk Apigee di dalam penginstalan Anda.

    Untuk informasi selengkapnya dan setelan default, lihat ingressGateways[].resources.requests.cpu dan ingressGateways[].resources.requests.memory dalam referensi properti Konfigurasi.

  • CPU_COUNT_LIMIT dan MEMORY_LIMIT Batas CPU dan memori maksimum untuk setiap replika gateway masuk Apigee dalam penginstalan.

    Untuk informasi selengkapnya dan setelan default, lihat ingressGateways[].resources.limits.cpu dan ingressGateways[].resources.limits.memory dalam referensi properti Konfigurasi.

  • SVC_ANNOTATIONS_KEY dan SVC_ANNOTATIONS_VALUE (opsional):

    Ini adalah pasangan nilai kunci yang memberikan pada anotasi layanan masuk default Anda. Anotasi digunakan oleh platform {i>cloud<i} Anda untuk membantu mengkonfigurasi instalasi hybrid, misalnya mengatur jenis load balancer internal atau eksternal. Contoh:

    ingressGateways:
      svcAnnotations:
        networking.gke.io/load-balancer-type: "Internal"

    Anotasi bervariasi dari satu platform ke platform yang lain. Lihat platform Anda untuk anotasi yang diperlukan dan disarankan.

    Lihat ingressGateways[].svcAnnotations dalam referensi properti Konfigurasi.
  • SVC_LOAD_BALANCER_IP (opsional) Memungkinkan Anda menetapkan alamat IP statis untuk dengan load balancer Jaringan Passthrough Eksternal Regional. Pada platform yang mendukung penentuan alamat IP load balancer, load balancer akan dibuat dengan alamat IP ini. Pada platform yang tidak mengizinkan Anda menentukan alamat IP load balancer, properti ini akan diabaikan.

    Jika Anda tidak memiliki alamat IP statis yang dialokasikan untuk load balancer, tinggalkan properti ini dari file penggantian.

    Lihat ingressGateways[].svcLoadBalancerIP di referensi properti Konfigurasi.

Melakukan perubahan tambahan pada file penggantian untuk mengaktifkan atau menonaktifkan fitur v1.8 opsional

Tambahkan properti berikut ke file overrides.yaml Anda untuk mengaktifkan fitur baru di hybrid v1.8. Fitur ini bersifat opsional.

  • UDCA cakupan organisasi kini diaktifkan secara default. Menggunakan deployment UDCA tunggal untuk menangani traffic untuk semua lingkungan mencegah pemanfaatan pod UDCA yang kurang baik dan meningkatkan ketersediaan resource node untuk komponen Apigee lainnya. UDCA cakupan organisasi menggunakan satu akun layanan untuk semua lingkungan, apigee-udca.

    Jika Anda menggunakan akun layanan yang berbeda untuk UDCA di lingkungan yang berbeda, perlu diketahui bahwa situs kini akan menggunakan akun layanan yang ditentukan di tingkat organisasi dalam penggantian Anda file dengan udca:serviceAccountPath, bukan yang ditentukan di tingkat env dengan envs:udca:serviceAccountPath.

    Apigee hybrid v 1.8 mendukung UDCA cakupan lingkungan. Untuk mempertahankan UDCA per lingkungan, setel orgScopedUDCA: false.

    Lihat orgScopedUDCA di Konfigurasi referensi properti.

  • Aktifkan validateOrg untuk mewajibkan validasi ketat yang diterapkan oleh organisasi Apigee dan aktif dan bekerja dengan project Google Cloud Platform yang ditentukan dalam File overrides.
    validateOrg: true

    Lihat validateOrg di Konfigurasi referensi properti.

Menginstal runtime hybrid 1.8.8

  1. Pastikan Anda berada di direktori {i>hybrid base<i} (induk dari 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

    Linux 64 bit:

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

    Mac OS

    Mac 64 bit:

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

    Windows

    Windows 64 bit:

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

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.7/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.7/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.7 
  4. Ekstrak konten file gzip yang didownload ke direktori hybrid base Anda. Direktori dasar hybrid adalah direktori tempat direktori apigeectl-v1.7 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. Konten {i>tar<i} secara {i>default<i} diperluas ke direktori dengan versi dan platform di namanya. Misalnya: ./apigeectl_1.8.8-xxxxxxx_linux_64. Mengganti nama direktori tersebut ke apigeectl menggunakan perintah berikut:

    Linux

    mv apigeectl_1.8.8-xxxxxxx_linux_64 apigeectl

    Mac OS

    mv apigeectl_1.8.8-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.8.8-xxxxxxx_windows_64 apigeectl
  6. Ubah ke direktori apigeectl:
    cd ./apigeectl

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

  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:

    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.8.8
  9. Pindahkan ke direktori hybrid-base-directory/hybrid-files. hybrid-files adalah tempat file konfigurasi seperti file pengganti, sertifikat, dan akun layanan lokasi bisnis. Contoh:
    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. 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 dibuat dengan benar, jalankan perintah berikut dan pastikan pastikan jalur tautan 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 pengganti, misalnya ./overrides/overrides.yaml.

  13. Jika tidak ada error, lakukan inisialisasi hybrid 1.8.8. Perintah ini menginstal dan mengonfigurasi gateway masuk Apigee:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  14. Periksa status inisialisasi:
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

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

    Sebagai pemeriksaan lebih lanjut, Anda juga dapat menjalankan perintah ini untuk memeriksa status ApigeeDataStore:

    kubectl describe apigeeds -n apigee

    Pada output, cari State: running.

  15. Periksa apakah ada error dengan uji coba perintah apply menggunakan --dry-run tanda:
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  16. Jika tidak ada error, terapkan penggantian. Pilih dan ikuti petunjuk untuk lingkungan produksi atau non-prod, tergantung instalasi Anda.

    Produksi

    Untuk lingkungan produksi, Anda harus mengupgrade setiap komponen hybrid satu per satu, dan memeriksa status komponen yang telah 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 saat pod sudah siap.

    4. Terapkan penggantian untuk mengupgrade komponen Telemetry dan periksa 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 untuk mengupgrade komponen tingkat organisasi (MART, Watcher, dan Apigee Hubungkan) 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 memiliki dua pilihan:
      • Lingkungan menurut lingkungan: Terapkan penggantian ke satu lingkungan dalam satu waktu dan periksa penyelesaiannya. Berulang 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 apakah telah selesai atau tidak:
        $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 penyelesaian:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Non-produk

    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, Anda mungkin ingin menggunakan instruksi 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

Mengupgrade versi Kubernetes Anda

Upgrade platform Kubernetes Anda ke versi yang didukung hybrid 1.8. Ikuti dokumentasi platform jika Anda memerlukan bantuan.

Mengalihkan traffic dari Anthos Service Mesh ke gateway masuk Apigee

Untuk mengalihkan traffic ke gateway masuk Apigee:

  1. Mengekspos gateway masuk Apigee. Ikuti prosedur di Mengekspos gateway masuk Apigee.
  2. Uji gateway masuk baru Anda dengan memanggil proxy. Idealnya, uji semua {i>proxy<i} penting yang saat ini telah Anda terapkan.
  3. Untuk mengalihkan traffic, perbarui data DNS agar mengarah ke alamat IP untuk gateway masuk Apigee Anda yang baru. Bergantung pada penyedia DNS, Anda mungkin dapat mengalihkan traffic ke endpoint baru secara bertahap. Tips: Anda dapat menemukan alamat IP eksternal gateway masuk Apigee dengan perintah berikut:
    kubectl get svc -n apigee -l app=apigee-ingressgateway

    Output Anda akan terlihat seperti:

    NAME                                        TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                                      AGE
    apigee-ingressgateway-prod-hybrid-37a39bd   LoadBalancer   192.0.2.123   233.252.0.123   15021:32049/TCP,80:31624/TCP,443:30723/TCP   16h
  4. Pastikan semua traffic runtime berfungsi dengan memantau dasbor Anda. Hanya lanjutkan ke langkah berikutnya jika semuanya bekerja seperti yang diharapkan. Pastikan tidak ada traffic yang melewati traffic lama gateway masuk (Anthos Service Mesh), karena update DNS mungkin lambat disebarluaskan karena DNS caching.
  5. Untuk menghentikan Apigee agar tidak menyediakan konfigurasi ke Anthos Service Mesh, ikuti langkah-langkah di Berhenti menyediakan konfigurasi ke ASM di panduan Mengelola gateway masuk Apigee.
  6. Menguji ulang dan memantau traffic proxy API.
  7. Ikuti petunjuk dalam dokumentasi Anthos Service Mesh untuk Meng-uninstal Anthos Service Mesh dari gugus ini.

Mengupgrade Anthos Service Mesh ke versi 1.15

Lakukan prosedur menggunakan dokumentasi Anthos Service Mesh yang sesuai dengan platform Anda:

Petunjuk untuk menginstal dan mengonfigurasi Anthos Service Mesh berbeda-beda bergantung pada platform Anda. Tujuan platform dibagi ke dalam kategori berikut:

  • GKE: Cluster Google Kubernetes Engine yang berjalan di Google Cloud.
  • Di luar Google Cloud: Cluster Anthos yang dijalankan di:
    • Cluster Anthos di VMware (GKE lokal)
    • Anthos on bare metal
    • Cluster Anthos di AWS
    • Amazon EKS
  • Platform Kubernetes Lainnya: Cluster yang sesuai dibuat dan dijalankan di:
    • AKS
    • EKS
    • OpenShift

GKE

Urutan upgrade ke versi Anthos Service Mesh 1.13.9 untuk hybrid Anda penginstalannya adalah sebagai berikut:

  1. Bersiaplah untuk upgrade.
  2. Instal Anthos Service Mesh versi baru.
  3. Hapus deployment, layanan, dan webhook versi Anthos Service Mesh sebelumnya dari penginstalan saat ini.
  4. Upgrade gateway dan konfigurasi webhook baru.

Bersiap untuk mengupgrade Anthos Service Mesh ke versi 1.13.9

  1. Tinjau persyaratan di Mengupgrade Anthos Mesh Layanan, tetapi belum melakukan upgrade.
  2. Sebelum menginstal versi baru, tentukan revisi saat ini. Anda akan memerlukan informasi ini untuk menghapus deployment, layanan, dan deployment versi Anthos Service Mesh sebelumnya webhook dari penginstalan saat ini. Gunakan perintah berikut untuk menyimpan revisi istiod saat ini untuk variabel lingkungan:
    export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[*].metadata.labels.'istio\.io\/rev'}'{"\n"}')
    echo $DELETE_REV

    Output Anda akan terlihat seperti 1.12.9-asm.2

  3. Buat file overlay.yaml baru atau verifikasi file yang sudah ada overlay.yaml berisi konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          k8s:
            nodeSelector:
              # default node selector, if different or not using node selectors, change accordingly.
              cloud.google.com/gke-nodepool: apigee-runtime
            resources:
              requests:
                cpu: 1000m
            service:
              type: LoadBalancer
              loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out.
              ports:
                - name: http-status-port
                  port: 15021
                - name: http2
                  port: 80
                  targetPort: 8080
                - name: https
                  port: 443
                  targetPort: 8443
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
    
  4. Ikuti petunjuk di bagian berikut dalam dokumentasi Anthos Service Mesh:
    1. Unduh asmcli
    2. Berikan izin admin cluster
    3. Validasi project dan cluster
    4. Tingkatkan versi dengan fitur opsional. Berhenti sebelum memulai "bagian Upgrade Gateway".
  5. Beralih ke bidang kontrol baru:
    1. Dapatkan label revisi yang ada di istiod:
      kubectl get pod -n istio-system -L istio.io/rev

      Output dari perintah ini mirip dengan berikut ini.

          NAME                                  READY  STATUS  RESTARTS   AGE  REV
          istiod-asm-1139-10-67998f4b55-lrzpz    1/1    Running  0         68m  asm-1129-0
          istiod-asm-1139-10-67998f4b55-r76kr    1/1    Running  0         68m  asm-1129-0
          istiod-1129-0-1-5cd96f88f6-n7tj9      1/1    Running  0         27s  asm-1139-10
          istiod-1129-0-1-5cd96f88f6-wm68b      1/1    Running  0         27s  asm-1139-10
    2. Tetapkan label revisi yang lebih baru ke variabel lingkungan.

      Di output, di bawah kolom REV, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalah asm-1139-10

      export UPGRADE_REV="REVISION_LABEL"
    3. Tambahkan label revisi ke namespace istio-system dan hapus Label istio-injection (jika ada) dengan perintah berikut.
      kubectl label namespace istio-system istio.io/rev=$UPGRADE_REV istio-injection- --overwrite

      Jika melihat "istio-injection not found" di output, Anda dapat mengabaikannya. Itu berarti bahwa namespace sebelumnya tidak memiliki Label istio-injection. Karena injeksi otomatis akan gagal jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label di Anthos Service Mesh dokumentasi ini termasuk penghapusan label istio-injection.

    4. Mulai ulang Pod untuk memicu injeksi ulang.
      kubectl rollout restart deployment -n istio-system
    5. Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.
    6. Jika Anda memiliki workload di namespace lain, ulangi langkah-langkah di atas untuk memberi label pada namespace dan memulai ulang Pod.
  6. Hapus versi sebelumnya:
    1. Buka direktori tempat Anda menginstal asmcli.
    2. Simpan direktori output untuk penginstalan Anthos Service Mesh Anda di Variabel lingkungan DIR_PATH. Ini adalah direktori yang sama dengan yang Anda yang ditentukan dalam Tingkatkan versi dengan fitur opsional.
      export DIR_PATH=OUTPUT_DIR
    3. Buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f ${DIR_PATH}/asm/istio/istiod-service.yaml
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    4. Jalankan skrip untuk menghapus versi sebelumnya.

Di luar Google Cloud

Petunjuk ini mencakup cara mengupgrade Anthos Service Mesh di:

  • Cluster Anthos di VMware (GKE lokal)
  • Anthos on bare metal
  • Cluster Anthos di AWS
  • Amazon EKS

Urutan upgrade ke versi Anthos Service Mesh 1.13.9 untuk hybrid Anda penginstalannya adalah sebagai berikut:

  1. Bersiaplah untuk upgrade.
  2. Instal Anthos Service Mesh versi baru.
  3. Hapus deployment, layanan, dan webhook versi Anthos Service Mesh sebelumnya dari penginstalan saat ini.
  4. Upgrade gateway dan konfigurasi webhook baru.

Bersiap untuk mengupgrade Anthos Service Mesh ke versi 1.13.9

  1. Tinjau persyaratan di Mengupgrade Anthos Mesh Layanan, tetapi belum melakukan upgrade.
  2. Sebelum menginstal versi baru, tentukan revisi saat ini. Anda akan memerlukan informasi ini untuk menghapus deployment, layanan, dan deployment versi Anthos Service Mesh sebelumnya webhook dari penginstalan saat ini. Gunakan perintah berikut untuk menyimpan revisi istiod saat ini untuk variabel lingkungan:
    export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[*].metadata.labels.'istio\.io\/rev'}'{"\n"}')
    echo $DELETE_REV

    Output Anda akan terlihat seperti 1.12.9-asm.2

  3. Buat file overlay.yaml baru atau verifikasi file yang sudah ada overlay.yaml berisi konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:  
      components:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          k8s:
            nodeSelector:
              # default node selector, if different or not using node selectors, change accordingly.
              cloud.google.com/gke-nodepool: apigee-runtime
            resources:
              requests:
                cpu: 1000m
            service:
              type: LoadBalancer
              loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out.
              ports:
                - name: http-status-port
                  port: 15021
                - name: http2
                  port: 80
                  targetPort: 8080
                - name: https
                  port: 443
                  targetPort: 8443
      values:
        gateways:
          istio-ingressgateway:
            runAsRoot: true
    
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
    
  4. Ikuti petunjuk di bagian berikut dalam dokumentasi Anthos Service Mesh:
    1. Unduh asmcli
    2. Berikan izin admin cluster
    3. Validasi project dan cluster
    4. Tingkatkan versi dengan fitur opsional. Berhenti sebelum memulai "bagian Upgrade Gateway".
  5. Beralih ke bidang kontrol baru:
    1. Dapatkan label revisi yang ada di istiod:
      kubectl get pod -n istio-system -L istio.io/rev

      Output dari perintah ini mirip dengan berikut ini.

          NAME                                  READY  STATUS  RESTARTS   AGE  REV
          istiod-asm-1139-10-67998f4b55-lrzpz    1/1    Running  0         68m  asm-1129-0
          istiod-asm-1139-10-67998f4b55-r76kr    1/1    Running  0         68m  asm-1129-0
          istiod-1129-0-1-5cd96f88f6-n7tj9      1/1    Running  0         27s  asm-1139-10
          istiod-1129-0-1-5cd96f88f6-wm68b      1/1    Running  0         27s  asm-1139-10
    2. Tetapkan label revisi yang lebih baru ke variabel lingkungan.

      Di output, di bawah kolom REV, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalah asm-1139-10

      export UPGRADE_REV="REVISION_LABEL"
    3. Tambahkan label revisi ke namespace istio-system dan hapus Label istio-injection (jika ada) dengan perintah berikut.
      kubectl label namespace istio-system istio.io/rev=$UPGRADE_REV istio-injection- --overwrite

      Jika melihat "istio-injection not found" di output, Anda dapat mengabaikannya. Itu berarti bahwa namespace sebelumnya tidak memiliki Label istio-injection. Karena injeksi otomatis akan gagal jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label di Anthos Service Mesh dokumentasi ini termasuk penghapusan label istio-injection.

    4. Mulai ulang Pod untuk memicu injeksi ulang.
      kubectl rollout restart deployment -n istio-system
    5. Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.
    6. Jika Anda memiliki workload di namespace lain, ulangi langkah-langkah di atas untuk memberi label pada namespace dan memulai ulang Pod.
  6. Hapus versi sebelumnya:
    1. Buka direktori tempat Anda menginstal asmcli.
    2. Simpan direktori output untuk penginstalan Anthos Service Mesh Anda di Variabel lingkungan DIR_PATH. Ini adalah direktori yang sama dengan yang Anda yang ditentukan dalam Tingkatkan versi dengan fitur opsional.
      export DIR_PATH=OUTPUT_DIR
    3. Buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f ${DIR_PATH}/asm/istio/istiod-service.yaml
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    4. Jalankan skrip untuk menghapus versi sebelumnya.

AKS / EKS

Dalam petunjuk ini, proses upgrade versi Anthos Service Mesh (Anthos Service Mesh) istio-1.13.9-asm.10 pada cluster terpasang Anthos sama dengan melakukan penginstalan baru.

Bersiap menginstal Anthos Service Mesh

  1. Sebelum menginstal versi baru, tentukan revisi saat ini. Anda akan memerlukan informasi ini untuk menghapus webhook yang memvalidasi dan memutasikan webhook dari penginstalan Anthos Service Mesh saat ini. Gunakan perintah berikut untuk menyimpan Revisi istiod untuk variabel lingkungan:
    export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[*].metadata.labels.'istio\.io\/rev'}'{"\n"}')
    echo $DELETE_REV

    Output Anda akan terlihat seperti 1.12.9-asm.2

  2. Linux

  3. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-linux-amd64.tar.gz
  4. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.13.9-asm.10-linux-amd64.tar.gz.1.sig istio-1.13.9-asm.10.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  5. Ekstrak konten file ke lokasi mana pun di sistem file Anda. Misalnya, untuk mengekstrak isi ke direktori kerja saat ini:
    tar xzf istio-1.13.9-asm.10-linux-amd64.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.13.9-asm.10 yang berisi:

    • Aplikasi contoh di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Layanan Anthos Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh berada di Direktori manifests/profiles.
  6. Pastikan Anda berada di direktori utama penginstalan Anthos Service Mesh:
    cd istio-1.13.9-asm.10
  7. Untuk memudahkan, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  8. Mac OS

  9. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-osx.tar.gz
  10. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.13.9-asm.10-osx.tar.gz.1.sig istio-1.13.9-asm.10.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  11. Ekstrak konten file ke lokasi mana pun di sistem file Anda. Misalnya, untuk mengekstrak isi ke direktori kerja saat ini:
    tar xzf istio-1.13.9-asm.10-osx.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.13.9-asm.10 yang berisi:

    • Aplikasi contoh di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Layanan Anthos Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh berada di Direktori manifests/profiles.
  12. Pastikan Anda berada di direktori utama penginstalan Anthos Service Mesh:
    cd istio-1.13.9-asm.10
  13. Untuk memudahkan, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-win.zip
  16. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.13.9-asm.10-win.zip.1.sig istio-1.13.9-asm.10.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  17. Ekstrak konten file ke lokasi mana pun di sistem file Anda. Misalnya, untuk mengekstrak isi ke direktori kerja saat ini:
    tar xzf istio-1.13.9-asm.10-win.zip

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.13.9-asm.10 yang berisi:

    • Aplikasi contoh di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Layanan Anthos Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh berada di Direktori manifests\profiles.
  18. Pastikan Anda berada di direktori utama penginstalan Anthos Service Mesh:
    cd istio-1.13.9-asm.10
  19. Untuk memudahkan, tambahkan alat dalam direktori \bin ke PATH Anda:
    set PATH=%CD%\bin:%PATH%
  20. Setelah Anthos Service Mesh Istio terinstal, periksa versi istioctl:
    istioctl version
  21. Buat namespace bernama istio-system untuk komponen bidang kontrol:
    kubectl create namespace istio-system

Menginstal Anthos Service Mesh

  1. Edit file overlay.yaml Anda atau buat file baru dengan konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
      components:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          k8s:
            service:
              type: LoadBalancer
              ports:
              - name: status-port
                port: 15021
                targetPort: 15021
              - name: http2
                port: 80
                targetPort: 8080
              - name: https
                port: 443
                targetPort: 8443
    
  2. Instal Anthos Service Mesh dengan istioctl menggunakan profil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1139-10" \
        --filename overlay.yaml

    Output Anda akan terlihat seperti:

    kubectl get pods -n istio-system
    NAME                                   READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-88b6fd976-flgp2   1/1     Running   0          3m13s
    istio-ingressgateway-88b6fd976-p5dl9   1/1     Running   0          2m57s
    istiod-asm-1139-10-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1139-10-798ffb964-fnj8c       1/1     Running   1          3m21s
    

    Argumen --set revision menambahkan label revisi ke dalam format istio.io/rev=asm-1139-10 untuk istiod. Label revisi digunakan oleh webhook injektor file bantuan otomatis untuk mengaitkan file bantuan yang diinjeksi dengan istiod tertentu revisi. Untuk mengaktifkan injeksi otomatis file bantuan untuk namespace, Anda harus melabelinya dengan revisi yang cocok dengan label di istiod.

  3. Pastikan penginstalan Anda telah selesai:
    kubectl get svc -n istio-system

    Output Anda akan terlihat seperti:

    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                                      AGE
    istio-ingressgateway   LoadBalancer   172.200.48.52    34.74.177.168   15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP   3m35s
    istiod                 ClusterIP      172.200.18.133   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4m46s
    istiod-asm-1139-10       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s
    
  4. Beralih ke bidang kontrol baru:
    1. Dapatkan label revisi yang ada di istiod:
      kubectl get pod -n istio-system -L istio.io/rev

      Output dari perintah ini mirip dengan berikut ini.

          NAME                                  READY  STATUS  RESTARTS   AGE  REV
          istiod-asm-1139-10-67998f4b55-lrzpz    1/1    Running  0         68m  asm-1129-0
          istiod-asm-1139-10-67998f4b55-r76kr    1/1    Running  0         68m  asm-1129-0
          istiod-1129-0-1-5cd96f88f6-n7tj9      1/1    Running  0         27s  asm-1139-10
          istiod-1129-0-1-5cd96f88f6-wm68b      1/1    Running  0         27s  asm-1139-10
    2. Tetapkan label revisi yang lebih baru ke variabel lingkungan.

      Di output, di bawah kolom REV, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalah asm-1139-10

      export UPGRADE_REV="REVISION_LABEL"
    3. Tambahkan label revisi ke namespace istio-system dan hapus Label istio-injection (jika ada) dengan perintah berikut.
      kubectl label namespace istio-system istio.io/rev=$UPGRADE_REV istio-injection- --overwrite

      Jika melihat "istio-injection not found" di output, Anda dapat mengabaikannya. Itu berarti bahwa namespace sebelumnya tidak memiliki Label istio-injection. Karena injeksi otomatis akan gagal jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label di Anthos Service Mesh dokumentasi ini termasuk penghapusan label istio-injection.

    4. Mulai ulang Pod untuk memicu injeksi ulang.
      kubectl rollout restart deployment -n istio-system
    5. Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.
    6. Jika Anda memiliki workload di namespace lain, ulangi langkah-langkah di atas untuk memberi label pada namespace dan memulai ulang Pod.
  5. Hapus versi sebelumnya:
    1. Buka direktori tempat Anda menginstal asmcli.
    2. Buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    3. Jalankan skrip untuk menghapus versi sebelumnya.

OpenShift

Dalam petunjuk ini, proses upgrade versi Anthos Service Mesh (Anthos Service Mesh) istio-1.13.9-asm.10 pada cluster terpasang Anthos sama dengan melakukan penginstalan baru.

Bersiap menginstal Anthos Service Mesh

  1. Sebelum menginstal versi baru, tentukan revisi saat ini. Anda akan memerlukan informasi ini untuk menghapus webhook yang memvalidasi dan memutasikan webhook dari penginstalan Anthos Service Mesh saat ini. Gunakan perintah berikut untuk menyimpan Revisi istiod untuk variabel lingkungan:
    export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[*].metadata.labels.'istio\.io\/rev'}'{"\n"}')
    echo $DELETE_REV

    Output Anda akan terlihat seperti 1.12.9-asm.2

  2. Linux

  3. Berikan batasan konteks keamanan (SCC) anyuid ke istio-system dengan perintah OpenShift CLI (oc) berikut:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  4. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-linux-amd64.tar.gz
  5. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.13.9-asm.10-linux-amd64.tar.gz.1.sig istio-1.13.9-asm.10.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  6. Ekstrak konten file ke lokasi mana pun di sistem file Anda. Misalnya, untuk mengekstrak isi ke direktori kerja saat ini:
    tar xzf istio-1.13.9-asm.10-linux-amd64.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.13.9-asm.10 yang berisi:

    • Aplikasi contoh di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Layanan Anthos Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh berada di Direktori manifests/profiles.
  7. Pastikan Anda berada di direktori utama penginstalan Anthos Service Mesh:
    cd istio-1.13.9-asm.10
  8. Untuk memudahkan, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  9. Mac OS

  10. Berikan batasan konteks keamanan (SCC) anyuid ke istio-system dengan perintah OpenShift CLI (oc) berikut:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  11. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-osx.tar.gz
  12. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.13.9-asm.10-osx.tar.gz.1.sig istio-1.13.9-asm.10.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  13. Ekstrak konten file ke lokasi mana pun di sistem file Anda. Misalnya, untuk mengekstrak isi ke direktori kerja saat ini:
    tar xzf istio-1.13.9-asm.10-osx.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.13.9-asm.10 yang berisi:

    • Aplikasi contoh di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Layanan Anthos Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh berada di Direktori manifests/profiles.
  14. Pastikan Anda berada di direktori utama penginstalan Anthos Service Mesh:
    cd istio-1.13.9-asm.10
  15. Untuk memudahkan, tambahkan alat di direktori /bin ke PATH Anda:
    export PATH=$PWD/bin:$PATH
  16. Windows

  17. Berikan batasan konteks keamanan (SCC) anyuid ke istio-system dengan perintah OpenShift CLI (oc) berikut:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  18. Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-win.zip
  19. Download file tanda tangan dan gunakan OpenSSL untuk memverifikasi tanda tangan:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.13.9-asm.10-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.13.9-asm.10-win.zip.1.sig istio-1.13.9-asm.10.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
    
  20. Ekstrak konten file ke lokasi mana pun di sistem file Anda. Misalnya, untuk mengekstrak isi ke direktori kerja saat ini:
    tar xzf istio-1.13.9-asm.10-win.zip

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.13.9-asm.10 yang berisi:

    • Aplikasi contoh di direktori samples.
    • Alat command line istioctl yang Anda gunakan untuk menginstal Layanan Anthos Mesh berada di direktori bin.
    • Profil konfigurasi Anthos Service Mesh berada di Direktori manifests\profiles.
  21. Pastikan Anda berada di direktori utama penginstalan Anthos Service Mesh:
    cd istio-1.13.9-asm.10
  22. Untuk memudahkan, tambahkan alat dalam direktori \bin ke PATH Anda:
    set PATH=%CD%\bin:%PATH%
  23. Setelah Anthos Service Mesh Istio terinstal, periksa versi istioctl:
    istioctl version
  24. Buat namespace bernama istio-system untuk komponen bidang kontrol:
    kubectl create namespace istio-system

Konfigurasi webhook yang memvalidasi

Saat menginstal Anthos Service Mesh, Anda menetapkan label revisi pada istiod. Anda harus menetapkan mengenai validasi webhook.

  1. Buat file bernama istiod-service.yaml dengan konten berikut:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1139-10
        app: istiod
        istio: pilot
        release: istio
    spec:
      ports:
        - port: 15010
          name: grpc-xds # plaintext
          protocol: TCP
        - port: 15012
          name: https-dns # mTLS with k8s-signed cert
          protocol: TCP
        - port: 443
          name: https-webhook # validation and injection
          targetPort: 15017
          protocol: TCP
        - port: 15014
          name: http-monitoring # prometheus stats
          protocol: TCP
      selector:
        app: istiod
        istio.io/rev: asm-1139-10
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
    
  2. Gunakan kubectl untuk menerapkan konfigurasi webhook yang memvalidasi:
    kubectl apply -f istiod-service.yaml
  3. Pastikan konfigurasi telah diterapkan:
    kubectl get svc -n istio-system

    Responsnya akan terlihat seperti ini:

    NAME     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                                 AGE
    istiod   ClusterIP   172.200.18.133   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP   22s
    

Menginstal Anthos Service Mesh

  1. Edit file overlay.yaml Anda atau buat file baru dengan konten berikut:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
      components:
        ingressGateways:
          - name: istio-ingressgateway
            enabled: true
            k8s:
              service:
                type: LoadBalancer
                ports:
                - name: status-port
                  port: 15021
                  targetPort: 15021
                - name: http2
                  port: 80
                  targetPort: 8080
                - name: https
                  port: 443
                  targetPort: 8443
    
  2. Instal Anthos Service Mesh dengan istioctl menggunakan profil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1139-10" \
        --filename overlayfile.yaml

    Output Anda akan terlihat seperti:

    kubectl get pods -n istio-system
    NAME                                   READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-88b6fd976-flgp2   1/1     Running   0          3m13s
    istio-ingressgateway-88b6fd976-p5dl9   1/1     Running   0          2m57s
    istiod-asm-1139-10-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1139-10-798ffb964-fnj8c       1/1     Running   1          3m21s
    

    Argumen --set revision menambahkan label revisi ke dalam format istio.io/rev=1.6.11-asm.1 untuk istiod. Label revisi digunakan oleh webhook injektor file bantuan otomatis untuk mengaitkan file bantuan yang diinjeksi dengan istiod tertentu revisi. Untuk mengaktifkan injeksi otomatis file bantuan untuk namespace, Anda harus melabelinya dengan revisi yang cocok dengan label di istiod.

  3. Pastikan penginstalan Anda telah selesai:
    kubectl get svc -n istio-system

    Output Anda akan terlihat seperti:

    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                                      AGE
    istio-ingressgateway   LoadBalancer   172.200.48.52    34.74.177.168   15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP   3m35s
    istiod                 ClusterIP      172.200.18.133   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4m46s
    istiod-asm-1139-10       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s
    
  4. Beralih ke bidang kontrol baru:
    1. Dapatkan label revisi yang ada di istiod:
      kubectl get pod -n istio-system -L istio.io/rev

      Output dari perintah ini mirip dengan berikut ini.

          NAME                                  READY  STATUS  RESTARTS   AGE  REV
          istiod-asm-1139-10-67998f4b55-lrzpz    1/1    Running  0         68m  asm-1129-0
          istiod-asm-1139-10-67998f4b55-r76kr    1/1    Running  0         68m  asm-1129-0
          istiod-1129-0-1-5cd96f88f6-n7tj9      1/1    Running  0         27s  asm-1139-10
          istiod-1129-0-1-5cd96f88f6-wm68b      1/1    Running  0         27s  asm-1139-10
    2. Tetapkan label revisi yang lebih baru ke variabel lingkungan.

      Di output, di bawah kolom REV, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalah asm-1139-10

      export UPGRADE_REV="REVISION_LABEL"
    3. Tambahkan label revisi ke namespace istio-system dan hapus Label istio-injection (jika ada) dengan perintah berikut.
      kubectl label namespace istio-system istio.io/rev=$UPGRADE_REV istio-injection- --overwrite

      Jika melihat "istio-injection not found" di output, Anda dapat mengabaikannya. Itu berarti bahwa namespace sebelumnya tidak memiliki Label istio-injection. Karena injeksi otomatis akan gagal jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label di Anthos Service Mesh dokumentasi ini termasuk penghapusan label istio-injection.

    4. Mulai ulang Pod untuk memicu injeksi ulang.
      kubectl rollout restart deployment -n istio-system
    5. Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.
    6. Jika Anda memiliki workload di namespace lain, ulangi langkah-langkah di atas untuk memberi label pada namespace dan memulai ulang Pod.
  5. Hapus versi sebelumnya:
    1. Buka direktori tempat Anda menginstal asmcli.
    2. Buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    3. Jalankan skrip untuk menghapus versi sebelumnya.

Me-roll back upgrade

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

  1. Membersihkan tugas yang telah selesai untuk namespace runtime hybrid, dengan NAMESPACE sebagai yang ditentukan dalam file pengganti, 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. 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 versi sebelumnya versi apigeectl. Contoh:
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. Mengurungkan perubahan pada file overrides:
    1. Hapus atau jadikan ingressGateways beserta semua propertinya sebagai komentar.
    2. Setel nilai virtualhosts.selector.app ke nilai sebelumnya, misalnya:
      virtualhosts:
        - name: my-env-group
          selector:
            app: istio-ingressgateway
    3. Hapus atau jadikan ao.args.disableIstioConfigInAPIServer sebagai komentar.
  5. Di direktori {i>root<i} instalasi yang ingin Anda kembalikan, jalankan apigeectl apply, periksa status pod Anda, lalu jalankan apigeectl init. Pastikan untuk menggunakan file pengganti asli untuk versi yang Anda yang ingin di-roll back ke:
    1. Dalam direktori file hybrid, jalankan apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

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

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

      Dengan NAMESPACE adalah namespace hybrid Apigee Anda.

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

      Output Anda akan terlihat seperti:

      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 pemroses pesan setelah upgrade.Jika nilai tersebut tidak sesuai dengan yang telah ditetapkan ubah nilai dalam file pengganti agar cocok dengan konfigurasi sebelumnya konfigurasi Anda.
      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:

            autoScaler:
              minReplicas: 2
              maxReplicas: 10
    5. Jika Anda melakukan roll back ke hybrid v1.8.4 atau yang lebih lama, hapus deployment pengontrol yang digunakan oleh hybrid v1.8.5 dan yang lebih baru:
      kubectl -n apigee-system delete deploy apigee-controller-manager
    6. Jalankan apigeectl init:
      $APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE
      
  6. Hapus deployment pengelola gateway masuk Apigee. Komponen ini hanya relevan untuk Apigee Hybrid versi 1.8 dan yang lebih baru.
    kubectl delete deployment -n NAMESPACE apigee-ingress-gateway-manager

    Dengan NAMESPACE adalah namespace hybrid Apigee Anda.