Mengupgrade Apigee Hybrid ke versi 1.7

Upgrade ke ringkasan versi 1.7.6.

Prosedur untuk mengupgrade Apigee Hybrid diatur di bagian berikut:

  1. Bersiaplah untuk mengupgrade ke versi 1.7.
  2. Menginstal runtime hybrid versi 1.7.6.
  3. Upgrade pengelola sertifikat.
  4. Upgrade ASM.

Prasyarat

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

Bersiap mengupgrade ke versi 1.7

Mencadangkan penginstalan hybrid Anda

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

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

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

Mengupgrade versi Kubernetes Anda

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

Tambahkan peran Agen Cloud Trace ke akun layanan apigee-runtime

Opsional: Jika berencana menggunakan Cloud trace, pastikan Akun layanan apigee-runtime memiliki Agen Cloud Trace (roles/cloudtrace.agent) Peran Google. Anda dapat melakukannya di Konsol Cloud > IAM &amp; Admin > UI akun layanan atau dengan perintah berikut:

  1. Dapatkan alamat email untuk akun layanan apigee-runtime Anda dengan perintah berikut:
    gcloud iam service-accounts list --filter "apigee-runtime"

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

  2. Tetapkan peran Agen Cloud Trace ke akun layanan:
    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="serviceAccount:apigee-runtime@$PROJECT_ID." \
        --role="roles/cloudtrace.agent"

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

Ganti metrics:stackdriverExporter properti pada penggantian Anda.

Mulai versi Hybrid 1.7, metrics:stackdriverExporter telah diganti dengan metrics:appStackdriverExporter dan metrics:proxyStackdriverExporter. Ganti properti tersebut dengan properti yang setara. Misalnya, ganti:

metrics:
  ... ...
  stackdriverExporter:
    resources:
      limits:
        cpu: 500m
        memory: 1Gi
      requests:
        cpu: 128m
        memory: 512Mi

with:

metrics:
  ... ...
  appStackdriverExporter:
    resources:
      limits:
        cpu: 500m
        memory: 1Gi
      requests:
        cpu: 128m
        memory: 512Mi
  proxyStackdriverExporter:
    resources:
      limits:
        cpu: 500m
        memory: 1Gi
      requests:
        cpu: 128m
        memory: 512Mi

Lihat Referensi properti Konfigurasi: metrik

Menginstal runtime hybrid 1.7.6

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

    Linux

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

    Mac OS

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

    Windows

    for /f "tokens=*" %a in ('curl -s ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^
    do set VERSION=%a
  2. Pastikan variabel telah diisi dengan nomor versi menggunakan perintah berikut. Jika Anda ingin menggunakan versi yang berbeda, Anda dapat menyimpannya dalam variabel lingkungan.
    echo $VERSION
      1.7.6
  3. Pastikan Anda berada di direktori {i>hybrid base<i} (induk dari direktori tempat file yang dapat dieksekusi apigeectl berada):
    cd $APIGEECTL_HOME/..
  4. Download paket rilis untuk sistem operasi Anda menggunakan perintah berikut. Menjadi pastikan untuk memilih platform Anda di tabel berikut:

    Linux

    Linux 64 bit:

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

    Mac OS

    Mac 64 bit:

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

    Windows

    Windows 64 bit:

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

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.6/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.6/ 

    Windows

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

    Linux

    tar xvzf filename.tar.gz -C ./

    Mac OS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  7. Konten {i>tar<i} secara {i>default<i} diperluas ke direktori dengan versi dan platform di namanya. Misalnya: ./apigeectl_1.7.6-d591b23_linux_64. Mengganti nama direktori tersebut ke apigeectl menggunakan perintah berikut:

    Linux

    mv directory-name-linux apigeectl

    Mac OS

    mv directory-name-mac apigeectl

    Windows

    rename directory-name-windows apigeectl
  8. Ubah ke direktori apigeectl:
    cd ./apigeectl

    File apigeectl yang dapat dieksekusi ada di direktori ini.

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

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  10. Verifikasi versi apigeectl dengan perintah version:
    ./apigeectl version
    Version: 1.7.6
  11. Pindahkan ke direktori hybrid-base-directory/hybrid-files. hybrid-files adalah tempat file konfigurasi seperti file pengganti, sertifikat, dan akun layanan lokasi tersebut. Contoh:
    cd $APIGEECTL_HOME/../hybrid-files
  12. 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 \*
  13. 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
    3. Lakukan inisialisasi uji coba untuk memeriksa error:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml --dry-run=client

      Dengan OVERRIDES adalah nama file pengganti Anda.

    4. Jika tidak ada error, lakukan inisialisasi hybrid 1.7.6:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml
    5. Periksa status inisialisasi:
      ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
    6. Periksa apakah ada error dengan uji coba perintah apply:
      ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --dry-run=client
    7. Jika tidak ada error, terapkan penggantian. Pilih dan ikuti petunjuk untuk lingkungan produksi atau lingkungan demo/eksperimental, tergantung pada 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/OVERRIDES.yaml --datastore
      3. Penyelesaian pemeriksaan:
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

        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/OVERRIDES.yaml --telemetry
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
      5. Tampilkan komponen Redis:
        ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --redis
      6. Terapkan penggantian untuk mengupgrade komponen tingkat organisasi (MART, Watcher, dan Apigee Hubungkan) dan periksa penyelesaian:
        ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --org
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
      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/OVERRIDES.yaml --env ENV_NAME
          ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

          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/OVERRIDES.yaml --all-envs
          ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

      Demo/Eksperimental

      Di sebagian besar lingkungan demo atau eksperimental, Anda dapat menerapkan penggantian ke semua komponen sekaligus. Jika lingkungan demo/eksperimental 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/OVERRIDES.yaml
      3. Periksa statusnya:
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

Mengupgrade cert-manager ke versi v1.7.2

Jika Anda menjalankan versi cert-manager sebelum v1.7.2, Anda harus meng-upgrade ke v1.7.2.

  1. Periksa versi cert-manager saat ini menggunakan perintah berikut:

    kubectl -n cert-manager get deployment -o yaml | grep 'image:'
    

    Sesuatu yang mirip dengan hal berikut ini akan ditampilkan:

    image: quay.io/jetstack/cert-manager-controller:v1.7.2
    image: quay.io/jetstack/cert-manager-cainjector:v1.7.2
    image: quay.io/jetstack/cert-manager-webhook:v1.7.2
    
  2. Hapus deployment menggunakan perintah berikut:
    $ kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
    
  3. Upgrade cert-manager ke versi v1.7.2 menggunakan perintah berikut:
    $ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.2/cert-manager.yaml
    

Upgrade ASM ke versi 1.12

Lakukan upgrade menggunakan dokumentasi ASM yang sesuai untuk platform Anda:

Petunjuk untuk menginstal dan mengonfigurasi ASM 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 untuk mengupgrade ke versi ASM 1.12.9 untuk campuran Anda penginstalannya adalah sebagai berikut:

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

Untuk mengupgrade ke versi ASM 1.12.9 untuk hybrid di GKE:

  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 proses pembuatan versi ASM sebelumnya webhook dari penginstalan saat ini. Gunakan perintah berikut untuk menyimpan revisi istiod saat ini ke 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}
  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:
      revision: asm-1129-3
      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 ASM:
    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. Hapus webhook yang bermutasi dan memvalidasi webhook:
    1. cd ke direktori tempat Anda menginstal asmcli.
    2. Simpan revisi baru saat ini dalam variabel lingkungan untuk digunakan dalam skrip untuk menghapus webhook:
      UPGRADE_REV="asm-1129-3"
    3. buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      PROJECT_ID="YOUR_PROJECT_ID"
      CLUSTER_NAME="YOUR_CLUSTER_NAME"
      CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/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 webhook saat ini.
  6. Ikuti langkah-langkah di Mengupgrade untuk membuat webhook baru dan mengalihkan traffic ke gateway baru.

Di luar Google Cloud

Petunjuk ini mencakup upgrade ASM di:

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

Urutan untuk mengupgrade ke versi ASM 1.12.9 untuk campuran Anda penginstalannya adalah sebagai berikut:

  1. Bersiaplah untuk upgrade.
  2. Instal ASM versi baru.
  3. Hapus deployment, layanan, dan webhook versi ASM sebelumnya dari penginstalan saat ini.
  4. Upgrade gateway dan konfigurasi webhook baru.
  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 webhook yang memvalidasi dan memutasikan webhook dari instalasi ASM Anda saat ini. Gunakan perintah berikut untuk menyimpan istiod revisi 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}
  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:
      revision: asm-1129-3
      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 ASM:
    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. Hapus webhook yang bermutasi dan memvalidasi webhook:
    1. cd ke direktori tempat Anda menginstal asmcli.
    2. Simpan revisi baru saat ini dalam variabel lingkungan untuk digunakan dalam skrip untuk menghapus webhook:
      UPGRADE_REV="asm-1129-3"
    3. buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      PROJECT_ID="YOUR_PROJECT_ID"
      CLUSTER_NAME="YOUR_CLUSTER_NAME"
      CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"
      
      
      gcloud config configurations activate ${PROJECT_ID}
      gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID}
      
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/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 webhook saat ini.
  6. Ikuti langkah-langkah di Mengupgrade untuk membuat webhook baru dan mengalihkan traffic ke gateway baru.

AKS / EKS

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

Bersiap menginstal Anthos Service Mesh

  1. Hapus webhook yang bermutasi dan memvalidasi webhook:
    1. cd ke direktori tempat Anda menginstal asmcli.
    2. Simpan revisi baru saat ini dalam variabel lingkungan untuk digunakan dalam skrip untuk menghapus webhook:
      UPGRADE_REV="asm-1129-3"
    3. buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/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 webhook saat ini.
  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.12.9-asm.3-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.12.9-asm.3-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.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.12.9-asm.3-linux-amd64.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.12.9-asm.3 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.12.9-asm.3
  7. Untuk memudahkan, tambahkan alat dalam 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.12.9-asm.3-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.12.9-asm.3-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.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.12.9-asm.3-osx.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.12.9-asm.3 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.12.9-asm.3
  13. Untuk memudahkan, tambahkan alat dalam 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.12.9-asm.3-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.12.9-asm.3-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.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.12.9-asm.3-win.zip

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.12.9-asm.3 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.12.9-asm.3
  19. Untuk memudahkan, tambahkan alat dalam direktori \bin ke PATH Anda:
    set PATH=%CD%\bin:%PATH%
  20. Setelah ASM 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:
      - enabled: true
        name: istio-ingressgateway
        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-1129-3" \
        --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-1129-3-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1129-3-798ffb964-fnj8c       1/1     Running   1          3m21s
    

    Argumen --set revision menambahkan label revisi ke dalam format istio.io/rev=asm-1129-3 untuk diisolasi. 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 pada 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-1129-3       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s
    

OpenShift

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

Bersiap menginstal Anthos Service Mesh

  1. Hapus webhook yang bermutasi dan memvalidasi webhook:
    1. cd ke direktori tempat Anda menginstal asmcli.
    2. Simpan revisi baru saat ini dalam variabel lingkungan untuk digunakan dalam skrip untuk menghapus webhook:
      UPGRADE_REV="asm-1129-3"
    3. buat skrip shell yang berisi perintah berikut:
      #!/bin/bash
      
      set -ex
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/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 webhook saat ini.
  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.12.9-asm.3-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.12.9-asm.3-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.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.12.9-asm.3-linux-amd64.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.12.9-asm.3 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.12.9-asm.3
  8. Untuk memudahkan, tambahkan alat dalam 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.12.9-asm.3-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.12.9-asm.3-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.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.12.9-asm.3-osx.tar.gz

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.12.9-asm.3 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.12.9-asm.3
  15. Untuk memudahkan, tambahkan alat dalam 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.12.9-asm.3-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.12.9-asm.3-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.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.12.9-asm.3-win.zip

    Perintah tersebut membuat direktori instalasi di direktori kerja Anda saat ini yang bernama istio-1.12.9-asm.3 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.12.9-asm.3
  22. Untuk memudahkan, tambahkan alat dalam direktori \bin ke PATH Anda:
    set PATH=%CD%\bin:%PATH%
  23. Setelah ASM Istio terinstal, periksa versi istioctl:
    istioctl version
  24. 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:
      - enabled: true
        name: istio-ingressgateway
        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-1129-3" \
        --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-1129-3-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1129-3-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 diisolasi. 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 pada 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-1129-3       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s
    

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. Di direktori {i>root<i} instalasi yang ingin Anda kembalikan, jalankan ${APIGEECTL_HOME}/apigeectl apply, periksa status pod Anda, lalu jalankan ${APIGEECTL_HOME}/apigeectl init. Pastikan untuk menggunakan file pengganti asli untuk versi yang Anda yang ingin di-roll back ke:
    1. Dalam direktori hybrid-files, jalankan ${APIGEECTL_HOME}/apigeectl apply:
      ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/ORIGINAL_OVERRIDES.yaml

      Dengan ORIGINAL_OVERRIDES adalah file pengganti untuk versi sebelumnya penginstalan hybrid, misalnya, overrides1.6.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 apigeectl init:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/ORIGINAL_OVERRIDES.yaml