Upgrade Mesh Layanan Cloud

Halaman ini menjelaskan cara:

  • Jalankan asmcli untuk mengupgrade dari Cloud Service Mesh ke Cloud Service Mesh 1.20.4.

  • Secara opsional, deploy gateway masuk.

  • Lakukan upgrade canary untuk memigrasikan workload Anda ke bidang kontrol baru.

Versi Mesh Layanan Cloud yang dapat Anda upgrade berbeda-beda menurut platform.

GKE

Anda dapat mengupgrade secara langsung ke Cloud Service Mesh 1.20.4-asm.0 di Google Kubernetes Engine dari daftar berikut versi:

1.18+

Lokal

Anda dapat mengupgrade secara langsung ke Cloud Service Mesh 1.20.4-asm.0 di Google Distributed Cloud dan Google Distributed Cloud dari versi berikut:

1.18+

GKE on AWS

Anda dapat mengupgrade secara langsung ke Cloud Service Mesh 1.20.4-asm.0 di GKE pada AWS dari versi:

1.18+

GKE on Azure

GKE di Azure hanya mendukung Cloud Service Mesh 1.16. Upgrade dari Cloud Service Mesh versi sebelumnya tidak didukung.

Amazon EKS

Jika sudah menginstal Cloud Service Mesh 1.7 di EKS, Anda harus menginstal Cloud Service Mesh 1.20 di cluster baru. Mengupgrade dari Cloud Service Mesh 1.7 ke Cloud Service Mesh 1.20 tidak didukung.

Microsoft AKS

Jika menginstal Cloud Service Mesh 1.7 di AKS, Anda harus menginstal Cloud Service Mesh 1.20 di cluster baru. Mengupgrade dari Cloud Service Mesh 1.7 ke Cloud Service Mesh 1.20 tidak didukung.

Sebelum memulai

Sebelum memulai, pastikan Anda:

Penyesuaian bidang kontrol

Jika Anda menyesuaikan penginstalan sebelumnya, Anda memerlukan penyesuaian yang sama saat Anda mengupgrade ke versi Cloud Service Mesh yang baru atau bermigrasi dari Istio. Jika Anda menyesuaikan penginstalan dengan menambahkan tanda --set values ke istioctl install, Anda harus menambahkan setelan tersebut ke file YAML IstioOperator, disebut sebagai file overlay. Anda menentukan overlay file dengan menggunakan opsi --custom_overlay dengan nama file saat Anda menjalankan {i>script<i}. Skrip akan meneruskan file overlay ke istioctl install.

Otoritas Sertifikasi

Mengubah certificate authority (CA) selama upgrade akan menyebabkan periode nonaktif. Selama upgrade, traffic mTLS terganggu hingga semua workload beralih menggunakan bidang kontrol baru dengan CA baru.

Mengupgrade Anthos Service Mesh

Berikut adalah cara mengupgrade Cloud Service Mesh:

  1. Jika Anda mengupgrade mesh multi-cluster pada GKE yang menggunakan Certificate authority Cloud Service Mesh, jalankan asmcli create-mesh untuk mengonfigurasi mesh multi-cluster untuk dipercaya identitas workload armada tanpa periode nonaktif load balancing lintas cluster selama upgrade.

  2. Jalankan asmcli install untuk menginstal Cloud Service Mesh pada satu cluster. Lihat bagian berikut untuk contoh baris perintah. Contoh berisi keduanya argumen wajib dan argumen opsional yang mungkin berguna bagi Anda. Rab sebaiknya Anda selalu menentukan argumen output_dir sehingga Anda dapat dengan mudah menemukan gateway dan alat contoh seperti istioctl. Lihat bilah navigasi di sebelah kanan untuk melihat daftar contoh.

  3. Anda juga dapat menginstal atau mengupgrade gateway masuk. Menurut default, asmcli tidak menginstal istio-ingressgateway. Saran dari kami Anda men-deploy dan mengelola gateway dan bidang kontrol secara terpisah. Jika Anda istio-ingressgateway default perlu diinstal bersama dalam cluster bidang kontrol, termasuk --option legacy-default-ingressgateway argumen.

  4. Untuk menyelesaikan penyiapan Cloud Service Mesh, Anda harus mengaktifkan file bantuan otomatis injeksi dan men-deploy atau men-deploy ulang workload.

Mengonfigurasi mesh multi-cluster untuk memercayai identitas workload fleet

Jika Anda mengupgrade mesh multi-cluster di GKE yang menggunakan certificate authority Cloud Service Mesh sebagai otoritas sertifikat, Anda harus asmcli create-mesh sebelum mengupgrade setiap cluster. Perintah ini mengonfigurasi Certificate authority Cloud Service Mesh untuk menggunakan kumpulan workload identity pool, FLEET_PROJECT_ID.svc.id.goog, sebagai domain kepercayaan setelah Anda {i>upgrade.<i} Perintah asmcli create-mesh:

  • Mendaftarkan semua cluster ke fleet yang sama.
  • Mengonfigurasi mesh untuk memercayai identitas workload fleet.
  • Membuat rahasia jarak jauh.

Anda dapat menentukan URI untuk setiap cluster atau jalur yang file kubeconfig.

URI Cluster

Dalam perintah berikut, ganti FLEET_PROJECT_ID dengan project ID dari project host perangkat dan URI cluster dengan nama cluster, zona atau region, dan project ID untuk setiap cluster.

./asmcli create-mesh \
    FLEET_PROJECT_ID \
    PROJECT_ID_1/CLUSTER_LOCATION_1/CLUSTER_NAME_1 \
    PROJECT_ID_2/CLUSTER_LOCATION_2/CLUSTER_NAME_2 # \
    # Add a line for each cluster in the mesh

file kubeconfig

Dalam perintah berikut, ganti FLEET_PROJECT_ID dengan project ID dari project host perangkat dan PATH_TO_KUBECONFIG dengan jalur ke setiap kubeconfig.

./asmcli create-mesh \
    FLEET_PROJECT_ID \
    PATH_TO_KUBECONFIG_1 \
    PATH_TO_KUBECONFIG_2 # \
    # Add a line for each cluster in the mesh

Mengupgrade dengan fitur default dan Mesh CA

Bagian ini menunjukkan cara menjalankan asmcli untuk mengupgrade Cloud Service Mesh dengan fitur yang didukung default untuk platform Anda dan mengaktifkan certificate authority Cloud Service Mesh sebagai certificate authority.

GKE

Jalankan perintah berikut untuk mengupgrade bidang kontrol dengan default dan certificate authority Cloud Service Mesh. Masukkan nilai Anda dalam kolom yang disediakan {i>placeholder<i}.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.
  • --fleet_id Project ID project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Memberikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Berikan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca mesh_ca Gunakan certificate authority Cloud Service Mesh sebagai {i>certificate authority<i}. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif. asmclikonfigurasi Certificate authority Cloud Service Mesh yang akan digunakan fleet workload identity

Cluster GKE Enterprise lainnya

Jalankan perintah berikut di cluster GKE Enterprise lainnya untuk mengupgrade bidang kontrol dengan fitur default dan certificate authority Cloud Service Mesh. Masuk nilai Anda dalam {i>placeholder <i}yang disediakan.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca mesh_ca Gunakan certificate authority Cloud Service Mesh sebagai {i>certificate authority<i}. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif. asmclikonfigurasi Certificate authority Cloud Service Mesh yang akan digunakan fleet workload identity

Mengupgrade fitur default dengan CA Service

Bagian ini menunjukkan cara menjalankan asmcli untuk mengupgrade Cloud Service Mesh dengan fitur yang didukung default untuk platform Anda dan aktifkan Certificate Authority Service.

GKE

Jalankan perintah berikut untuk mengupgrade bidang kontrol dengan default dan Certificate Authority Service. Masukkan nilai Anda dalam kolom yang disediakan {i>placeholder<i}.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca gcp_cas \
  --ca_pool projects/PROJECT_NAME/locations/ca_region/caPools/CA_POOL
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.
  • --fleet_id Project ID project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Memberikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Berikan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca gcp_cas Gunakan Certificate Authority Service sebagai {i>certificate authority<i}. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif. asmclikonfigurasi Certificate Authority Service yang akan digunakan fleet workload identity
  • --ca_pool ID lengkap untuk Certificate Authority Service Kumpulan CA.

Lokal

Jalankan perintah berikut di Google Distributed Cloud, atau Google Distributed Cloud akan mengupgrade bidang kontrol dengan default dan Certificate Authority Service. Masukkan nilai Anda dalam kolom yang disediakan {i>placeholder<i}.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
     --kubeconfig KUBECONFIG_FILE \
     --fleet_id FLEET_PROJECT_ID \
     --output_dir DIR_PATH \
     --enable_all \
     --ca gcp_cas \
     --platform multicloud \
     --ca_pool projects/PROJECT_NAME/locations/ca_region/caPools/CA_POOL
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca gcp_cas Gunakan Certificate Authority Service sebagai {i>certificate authority<i}. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif. asmclikonfigurasi Certificate Authority Service yang akan digunakan fleet workload identity
    • --ca_pool ID lengkap untuk {i>Certificate Authority Service<i} Kumpulan CA.

Mengupgrade fitur default dengan Istio CA

Bagian ini menunjukkan cara menjalankan asmcli untuk mengupgrade Cloud Service Mesh dengan fitur yang didukung default untuk platform Anda dan mengaktifkan Istio CA.

GKE

Jalankan perintah berikut untuk mengupgrade bidang kontrol dengan default dan Istio CA. Masukkan nilai Anda di placeholder yang disediakan.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca citadel
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.
  • --fleet_id Project ID project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Memberikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Berikan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca citadel Gunakan Istio CA. Mengubah sertifikat selama proses upgrade akan menyebabkan periode nonaktif.

Lokal

Jalankan perintah berikut di Google Distributed Cloud, atau Google Distributed Cloud untuk mengupgrade bidang kontrol dengan dan Istio CA. Masukkan nilai Anda dalam kolom yang disediakan {i>placeholder<i}.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca citadel Gunakan Istio CA sebagai certificate authority.
    • --ca_cert Intermediate certificate
    • --ca_key Kunci untuk intermediate certificate
    • --root_cert Root certificate
    • --cert_chain Rantai sertifikat

AWS

Jalankan perintah berikut di GKE di AWS untuk mengupgrade kontrol dengan fitur default dan Istio CA. Masukkan nilai Anda di {i>placeholder<i} yang disediakan. Anda dapat memilih untuk mengaktifkan Ingress untuk publik atau subnet pribadi.

Publik

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca citadel Gunakan Istio CA sebagai certificate authority.
    • --ca_cert Intermediate certificate
    • --ca_key Kunci untuk intermediate certificate
    • --root_cert Root certificate
    • --cert_chain Rantai sertifikat

Pribadi

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Simpan YAML berikut ke file bernama istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Jalankan asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca citadel Gunakan Istio CA sebagai certificate authority.
    • --ca_cert Intermediate certificate
    • --ca_key Kunci untuk intermediate certificate
    • --root_cert Root certificate
    • --cert_chain Rantai sertifikat

Amazon EKS

Jalankan perintah berikut di Amazon EKS untuk mengupgrade bidang kontrol dengan dan Istio CA. Masukkan nilai Anda dalam kolom yang disediakan {i>placeholder<i}.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca citadel Gunakan Istio CA sebagai certificate authority.
    • --ca_cert Intermediate certificate
    • --ca_key Kunci untuk intermediate certificate
    • --root_cert Root certificate
    • --cert_chain Rantai sertifikat

Microsoft AKS

Jalankan perintah berikut di Amazon EKS untuk mengupgrade bidang kontrol dengan dan Istio CA. Masukkan nilai Anda dalam kolom yang disediakan {i>placeholder<i}.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca citadel Gunakan Istio CA sebagai certificate authority.
    • --ca_cert Intermediate certificate
    • --ca_key Kunci untuk intermediate certificate
    • --root_cert Root certificate
    • --cert_chain Rantai sertifikat

Upgrade dengan fitur opsional

File overlay adalah file YAML yang berisi resource kustom IstioOperator (CR) yang Anda teruskan ke asmcli untuk mengonfigurasi bidang kontrol. Anda dapat mengganti konfigurasi bidang kontrol {i>default<i} dan mengaktifkan fitur opsional dengan meneruskan file YAML ke asmcli. Anda dapat menambahkan lapisan di lebih banyak overlay, dan masing-masing {i>overlay <i}akan menimpa konfigurasi pada lapisan sebelumnya.

GKE

Jalankan perintah berikut untuk menginstal bidang kontrol dengan kolom aplikasi baru. Untuk menambahkan beberapa file, tentukan --custom_overlay dan nama file, misalnya: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml Masukkan nilai Anda di placeholder yang disediakan.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca \
  --custom_overlay OVERLAY_FILE
  • --project_id, --cluster_name, dan --cluster_location Tentukan project ID yang akan digunakan cluster nama cluster, serta zona atau region cluster.
  • --fleet_id Project ID project host fleet. Jika Anda tidak menyertakan opsi ini, asmcli menggunakan project tempat cluster dibuat saat mendaftarkan cluster.
  • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
  • --enable_all Mengizinkan skrip untuk:
    • Memberikan izin IAM yang diperlukan.
    • Aktifkan Google API yang diperlukan.
    • Berikan label pada cluster yang mengidentifikasi mesh.
    • Daftarkan cluster ke fleet jika belum terdaftar.
  • --ca mesh_ca Gunakan certificate authority Cloud Service Mesh sebagai {i>certificate authority<i}. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif. asmclikonfigurasi Certificate authority Cloud Service Mesh yang akan digunakan fleet workload identity
  • --custom_overlay Tetapkan nama file overlay.

Di luar Google Cloud

Jalankan perintah berikut di Google Distributed Cloud, Google Distributed Cloud, GKE di AWS, Amazon EKS, atau Microsoft AK. Masukkan nilai Anda di placeholder yang disediakan.

  1. Tetapkan konteks saat ini ke cluster pengguna Anda:

    kubectl config use-context CLUSTER_NAME
    
  2. Jalankan asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca \
      --custom_overlay OVERLAY_FILE
    
    • --fleet_id Project ID project host fleet.
    • --kubeconfig Jalur lengkap menuju File kubeconfig. Variabel lingkungan $PWD tidak berfungsi di sini. Selain itu, lokasi file kubeconfig relatif yang menggunakan `~` tidak akan berfungsi.
    • --output_dir Sertakan opsi ini untuk menentukan direktori tempat asmcli mendownload anthos-service-mesh mengemas dan mengekstrak file instalasi, yang berisi istioctl, sampel, dan manifes. Sebaliknya asmcli akan mendownload file ke direktori tmp. Anda dapat menentukan jalur relatif atau jalur lengkap. Lingkungan variabel $PWD tidak berfungsi di sini.
    • --platform multicloud Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti infrastruktur lokal atau multi-cloud.
    • --enable_all Mengizinkan skrip untuk:
      • Memberikan izin IAM yang diperlukan.
      • Aktifkan Google API yang diperlukan.
      • Berikan label pada cluster yang mengidentifikasi mesh.
      • Daftarkan cluster ke fleet jika belum terdaftar.
    • --ca mesh_ca Gunakan certificate authority Cloud Service Mesh sebagai {i>certificate authority<i}. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif. asmclikonfigurasi Certificate authority Cloud Service Mesh yang akan digunakan fleet workload identity
    • --custom_overlay Tetapkan nama file overlay.

Upgrade gateway

Jika memiliki gateway yang di-deploy, Anda juga harus mengupgradenya. Untuk upgrade sederhana, ikuti bagian Peningkatan Versi Langsung pada Panduan Menginstal dan mengupgrade gateway.

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-1204-0-67998f4b55-lrzpz           1/1     Running   0          68m   asm-1198-2
    istiod-asm-1204-0-67998f4b55-r76kr           1/1     Running   0          68m   asm-1198-2
    istiod-1198-2-1-5cd96f88f6-n7tj9    1/1     Running   0          27s   asm-1204-0
    istiod-1198-2-1-5cd96f88f6-wm68b    1/1     Running   0          27s   asm-1204-0
    1. Di output, di bawah kolom REV, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalah asm-1204-0.

    2. Perhatikan juga nilai dalam label revisi untuk versi istiod lama. Anda memerlukannya untuk menghapus istiod versi lama saat sudah selesai memindahkan beban kerja ke versi baru. Dalam contoh {i>output<i}, nilai label revisi untuk versi lama adalah asm-1198-2.

  2. Tambahkan label revisi ke namespace aplikasi dan hapus Label istio-injection (jika ada). Pada perintah berikut, ubah REVISION ke nilai yang sesuai dengan revisi baru istiod.

    kubectl label namespace NAMESPACE istio.io/rev=REVISION 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 perilaku injeksi otomatis tidak ditentukan jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label di Mesh Layanan Cloud dokumentasi secara eksplisit memastikan bahwa hanya satu yang ditetapkan.

  3. Mulai ulang Pod untuk memicu injeksi ulang.

    kubectl rollout restart deployment -n NAMESPACE
  4. Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.

  5. Jika Anda memiliki beban kerja di namespace lain, ulangi langkah-langkah untuk memberi label pada namespace dan memulai ulang Pod.

  6. Jika sudah puas karena aplikasi Anda berfungsi seperti yang diharapkan, lanjutkan dengan langkah-langkah untuk bertransisi ke versi baru istiod. Jika ada terkait aplikasi Anda, ikuti langkah-langkah untuk melakukan rollback.

    Selesaikan transisi

    Jika Anda puas aplikasi Anda bekerja seperti yang diharapkan, hapus bidang kontrol lama untuk menyelesaikan transisi ke versi baru.

    1. Ubah ke direktori tempat file dari anthos-service-mesh menemukan repositori GitHub.

    2. Konfigurasi webhook yang memvalidasi untuk menggunakan bidang kontrol baru:

      kubectl apply -f asm/istio/istiod-service.yaml
      
    3. Pindahkan tag default:

      <OUTPUT_DIR>/istioctl tag set default --revision REVISION --overwrite
      
    4. Hapus istiod versi lama. Perintah yang digunakan bergantung pada mengenai apakah Anda bermigrasi dari Istio atau mengupgrade dari dari Cloud Service Mesh.

      Migrasi

      Jika Anda bermigrasi dari Istio, istiod lama tidak memiliki label revisi:

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod -n istio-system --ignore-not-found=true
      

      Upgrade

      1. Jika Anda melakukan upgrade dari versi Cloud Service Mesh sebelumnya, dalam perintah berikut, pastikan bahwa OLD_REVISION cocok dengan label revisi untuk istiod versi sebelumnya:

        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
        
      2. Hapus resource validatingwebhookconfiguration untuk revisi lama:

        kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system -n istio-system --ignore-not-found=true
        
    5. Hapus konfigurasi IstioOperator versi lama:

      kubectl delete IstioOperator installed-state-OLD_REVISION -n istio-system --ignore-not-found=true
      

      Output yang diharapkan mirip dengan berikut ini:

      istiooperator.install.istio.io "installed-state-OLD_REVISION" deleted

    Rollback

    Jika Anda mengalami masalah saat menguji aplikasi dengan versi istiod, ikuti langkah-langkah ini untuk melakukan rollback ke versi sebelumnya versi:

    1. Beri label ulang namespace untuk mengaktifkan injeksi otomatis dengan versi istiod. Perintah yang Anda gunakan bergantung pada apakah Anda menggunakan label revisi atau istio-injection=enabled dengan .

      • Jika Anda menggunakan label revisi untuk injeksi otomatis:

        kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
        
      • Jika Anda menggunakan istio-injection=enabled:

        kubectl label namespace NAMESPACE istio.io/rev- istio-injection=enabled --overwrite
        

      Output yang diharapkan:

      namespace/NAMESPACE labeled
    2. Pastikan label revisi pada namespace cocok dengan revisi label pada istiod versi sebelumnya:

      kubectl get ns NAMESPACE --show-labels
      
    3. Mulai ulang Pod untuk memicu injeksi ulang sehingga proxy memiliki versi:

      kubectl rollout restart deployment -n NAMESPACE
      
    4. Hapus versi baru istiod. Pastikan bahwa nilai REVISION dalam perintah berikut sudah benar.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
      
    5. Hapus versi baru konfigurasi IstioOperator.

      kubectl delete IstioOperator installed-state-REVISION -n istio-system --ignore-not-found=true
      

      Output yang diharapkan mirip dengan berikut ini:

      istiooperator.install.istio.io "installed-state-REVISION" deleted
    6. Jika Anda tidak menyertakan flag --disable_canonical_service, asmcli mengaktifkan pengontrol Layanan Kanonis. Sebaiknya Anda tetap mengaktifkannya, tetapi jika Anda perlu menonaktifkannya, lihat Mengaktifkan dan menonaktifkan pengontrol Layanan Kanonis.

    7. Jika Anda memiliki gateway yang di-deploy, pastikan untuk mengubah label revisi pada namespace atau deployment agar sesuai dengan versi istiod. Ikuti proses yang sama yang diuraikan dalam Peningkatan yang Langsung pada bagian Menginstal dan mengupgrade gateway kami.

Men-deploy dan men-deploy ulang workload

Penginstalan (atau upgrade) Anda belum selesai hingga Anda mengaktifkan file bantuan otomatis injeksi proxy (injeksi otomatis). Migrasi dari OSS Istio dan upgrade mengikuti proses peningkatan versi berbasis revisi (disebut sebagai “peningkatan versi canary” pada dokumentasi Istio). Dengan upgrade berbasis revisi, versi baru server bidang kontrol diinstal bersama bidang kontrol yang ada. Anda kemudian memindahkan beberapa beban kerja ke versi baru, yang memungkinkan Anda memantau efek upgrade dengan sebagian kecil beban kerja sebelum memigrasikan semua traffic ke versi baru.

Skrip menetapkan label revisi di format istio.io/rev=asm-1204-0 pada istiod. Untuk mengaktifkan injeksi otomatis, tambahkan label revisi yang sesuai ke namespace Anda. Label revisi digunakan di webhook injektor file bantuan untuk mengaitkan file bantuan yang diinjeksikan dengan Revisi istiod. Setelah menambahkan label, mulai ulang Pod dalam namespace untuk file bantuan untuk diinjeksikan.

  1. Dapatkan label revisi yang ada di istiod dan istio-ingressgateway.

    kubectl get pod -n istio-system -L istio.io/rev
    

    Output dari perintah ini mirip dengan berikut ini.

    NAME                                                READY   STATUS    RESTARTS   AGE   REV
    istio-ingressgateway-65d884685d-6hrdk               1/1     Running   0          67m
    istio-ingressgateway-65d884685d-94wgz               1/1     Running   0          67m
    istio-ingressgateway-asm-182-2-8b5fc8767-gk6hb      1/1     Running   0          5s    asm-1204-0
    istio-ingressgateway-asm-182-2-8b5fc8767-hn4w2      1/1     Running   0          20s   asm-1204-0
    istiod-asm-1204-0-67998f4b55-lrzpz          1/1     Running   0          68m   asm-1198-2
    istiod-asm-1204-0-67998f4b55-r76kr          1/1     Running   0          68m   asm-1198-2
    istiod-asm-1198-2-5cd96f88f6-n7tj9 1/1     Running   0          27s   asm-1204-0
    istiod-asm-1198-2-5cd96f88f6-wm68b 1/1     Running   0          27s   asm-1204-0
    1. Di output, di bawah kolom REV, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalah asm-1204-0.

    2. Perhatikan juga nilai dalam label revisi untuk versi istiod lama. Anda memerlukannya untuk menghapus istiod versi lama saat sudah selesai memindahkan beban kerja ke versi baru. Dalam contoh {i>output<i}, nilai label revisi untuk versi lama adalah asm-1198-2.

  2. Alihkan istio-ingressgateway ke revisi baru. Dalam ubah REVISION menjadi nilai yang sesuai dengan label revisi dari versi baru.

    kubectl patch service -n istio-system istio-ingressgateway --type='json' -p='[{"op": "replace", "path": "/spec/selector/service.istio.io~1canonical-revision", "value": "REVISION"}]'

    Output yang diharapkan: service/istio-ingressgateway patched

  3. Tambahkan label revisi ke namespace dan hapus istio-injection label (jika ada). Pada perintah berikut, ubah REVISION ke nilai yang cocok dengan revisi baru dari istiod.

    kubectl label namespace NAMESPACE istio.io/rev=REVISION 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 perilaku injeksi otomatis tidak ditentukan jika namespace memiliki istio-injection dan label revisi, semua perintah kubectl label di Mesh Layanan Cloud dokumentasi secara eksplisit memastikan bahwa hanya satu yang ditetapkan.

  4. Mulai ulang Pod untuk memicu injeksi ulang.

    kubectl rollout restart deployment -n NAMESPACE
  5. Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.

  6. Jika Anda memiliki beban kerja di namespace lain, ulangi langkah-langkah untuk memberi label pada namespace dan memulai ulang Pod.

  7. Jika sudah puas karena aplikasi Anda berfungsi seperti yang diharapkan, lanjutkan dengan langkah-langkah untuk bertransisi ke versi baru istiod. Jika ada terkait aplikasi Anda, ikuti langkah-langkah untuk melakukan rollback.

    Selesaikan transisi

    Jika Anda puas aplikasi Anda bekerja seperti yang diharapkan, hapus bidang kontrol lama untuk menyelesaikan transisi ke versi baru.

    1. Ubah ke direktori tempat file dari anthos-service-mesh menemukan repositori GitHub.

    2. Konfigurasi webhook yang memvalidasi untuk menggunakan bidang kontrol baru.

      kubectl apply -f asm/istio/istiod-service.yaml
      
    3. Pindahkan tag default.

      <OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME> --overwrite
      
    4. Hapus istio-ingressgatewayDeployment lama. Perintah yang Anda berjalan bergantung pada apakah Anda bermigrasi dari Istio atau mengupgrade dari Cloud Service Mesh versi sebelumnya:

      Migrasi

      Jika Anda bermigrasi dari Istio, istio-ingressgateway lama tidak memiliki label revisi.

      kubectl delete deploy/istio-ingressgateway -n istio-system
      

      Upgrade

      Jika Anda melakukan upgrade dari versi Cloud Service Mesh sebelumnya, dalam perintah berikut, ganti OLD_REVISION dengan label revisi untuk versi sebelumnya istio-ingressgateway.

      kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=OLD_REVISION -n istio-system --ignore-not-found=true
      
    5. Hapus istiod versi lama. Perintah yang digunakan bergantung pada mengenai apakah Anda bermigrasi dari Istio atau mengupgrade dari dari Cloud Service Mesh.

      Migrasi

      Jika Anda bermigrasi dari Istio, istio-ingressgateway lama tidak memiliki label revisi.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod -n istio-system --ignore-not-found=true
      

      Upgrade

      Jika Anda melakukan upgrade dari versi Cloud Service Mesh sebelumnya, dalam perintah berikut, pastikan bahwa OLD_REVISION cocok dengan label revisi untuk istiod versi sebelumnya.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
      
    6. Hapus konfigurasi IstioOperator versi lama.

      kubectl delete IstioOperator installed-state-OLD_REVISION -n istio-system --ignore-not-found=true
      

      Output yang diharapkan mirip dengan berikut ini:

      istiooperator.install.istio.io "installed-state-OLD_REVISION" deleted

    Rollback

    Jika Anda mengalami masalah saat menguji aplikasi dengan versi istiod, ikuti langkah-langkah ini untuk melakukan rollback ke versi sebelumnya versi:

    1. Beri label ulang namespace untuk mengaktifkan injeksi otomatis dengan versi istiod. Perintah yang Anda gunakan bergantung pada apakah Anda menggunakan label revisi atau istio-injection=enabled dengan .

      • Jika Anda menggunakan label revisi untuk injeksi otomatis:

        kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
        
      • Jika Anda menggunakan istio-injection=enabled:

        kubectl label namespace NAMESPACE istio.io/rev- istio-injection=enabled --overwrite
        

      Output yang diharapkan:

      namespace/NAMESPACE labeled
    2. Pastikan label revisi pada namespace cocok dengan revisi label pada istiod versi sebelumnya:

      kubectl get ns NAMESPACE --show-labels
      
    3. Mulai ulang Pod untuk memicu injeksi ulang sehingga proxy memiliki versi:

      kubectl rollout restart deployment -n NAMESPACE
      
    4. Hapus Deployment istio-ingressgateway baru. Pastikan bahwa nilai REVISION dalam perintah berikut adalah benar.

      kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=REVISION -n istio-system --ignore-not-found=true
      
    5. Hapus versi baru istiod. Pastikan bahwa nilai REVISION dalam perintah berikut sudah benar.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
      
    6. Hapus versi baru konfigurasi IstioOperator.

      kubectl delete IstioOperator installed-state-REVISION -n istio-system --ignore-not-found=true
      

      Output yang diharapkan mirip dengan berikut ini:

      istiooperator.install.istio.io "installed-state-REVISION" deleted
    7. Jika Anda tidak menyertakan flag --disable_canonical_service, skrip mengaktifkan pengontrol Layanan Kanonis. Sebaiknya Anda tetap mengaktifkannya, tetapi jika Anda perlu menonaktifkannya, lihat Mengaktifkan dan menonaktifkan pengontrol Layanan Kanonis.