Mengupgrade Cloud Service Mesh
Halaman ini menjelaskan cara:
Jalankan
asmcli
untuk mengupgrade dari Cloud Service Mesh ke Cloud Service Mesh 1.26.4.Secara opsional, deploy gateway masuk.
Lakukan upgrade canary untuk memigrasikan workload Anda ke bidang kontrol baru.
Versi Cloud Service Mesh yang dapat Anda upgrade berbeda-beda menurut platform.
GKE
Anda dapat mengupgrade langsung ke Cloud Service Mesh 1.26.4-asm.1 di Google Kubernetes Engine dari versi berikut:
1.24+
Lokal
Anda dapat mengupgrade langsung ke Cloud Service Mesh 1.26.4-asm.1 di Google Distributed Cloud (khusus software) untuk VMware dan Google Distributed Cloud (khusus software) untuk bare metal dari versi berikut:
1.24+
GKE di AWS
Anda dapat mengupgrade langsung ke Cloud Service Mesh 1.26.4-asm.1 di GKE di AWS dari versi berikut:
1.24+
GKE di Azure
GKE di Azure hanya mendukung Cloud Service Mesh 1.16. Upgrade dari versi Cloud Service Mesh sebelumnya tidak didukung.
Amazon EKS
Jika Anda telah menginstal Cloud Service Mesh 1.7 di EKS, Anda harus menginstal Cloud Service Mesh 1.26 di cluster baru. Upgrade dari Cloud Service Mesh 1.7 ke Cloud Service Mesh 1.26 tidak didukung.
Microsoft AKS
Jika Anda telah menginstal Cloud Service Mesh 1.7 di AKS, Anda harus menginstal Cloud Service Mesh 1.26 di cluster baru. Upgrade dari Cloud Service Mesh 1.7 ke Cloud Service Mesh 1.26 tidak didukung.
Sebelum memulai
Sebelum memulai, pastikan Anda:
- Tinjau prasyarat.
- Tinjau informasi di bagian Merencanakan upgrade.
- Instal alat yang diperlukan.
- Download
asmcli
. - Berikan izin admin cluster.
- Validasi project dan cluster.
Penyesuaian bidang kontrol
Jika Anda menyesuaikan penginstalan sebelumnya, Anda memerlukan penyesuaian yang sama saat mengupgrade ke versi Cloud Service Mesh 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
, yang disebut sebagai file overlay. Anda menentukan file overlay
menggunakan opsi --custom_overlay
dengan nama file saat menjalankan
skrip. Skrip ini meneruskan file overlay ke istioctl install
.
Otoritas Sertifikasi
Mengubah certificate authority (CA) selama upgrade menyebabkan periode nonaktif. Selama upgrade, traffic mTLS terganggu hingga semua beban kerja dialihkan untuk menggunakan bidang kontrol baru dengan CA baru.
Mengupgrade Cloud Service Mesh
Berikut cara mengupgrade Cloud Service Mesh:
Jika Anda mengupgrade mesh multi-cluster di GKE yang menggunakan Certificate Authority Cloud Service Mesh, jalankan
asmcli create-mesh
untuk mengonfigurasi mesh multi-cluster agar memercayai identitas beban kerja fleet untuk load balancing lintas cluster tanpa periode nonaktif selama upgrade.Jalankan
asmcli install
untuk menginstal Cloud Service Mesh di satu cluster. Lihat bagian berikut untuk mengetahui contoh command line. Contoh berisi argumen wajib dan argumen opsional yang mungkin berguna bagi Anda. Sebaiknya Anda selalu menentukan argumenoutput_dir
agar Anda dapat dengan mudah menemukan contoh gateway dan alat sepertiistioctl
. Lihat menu navigasi di sebelah kanan untuk mengetahui daftar contoh.Jika perlu, instal atau upgrade gateway traffic masuk. Secara default,
asmcli
tidak menginstalistio-ingressgateway
. Sebaiknya Anda men-deploy dan mengelola bidang kontrol dan gateway secara terpisah. Jika Anda memerlukanistio-ingressgateway
default yang diinstal dengan bidang kontrol dalam cluster, sertakan argumen--option legacy-default-ingressgateway
.Untuk menyelesaikan penyiapan Cloud Service Mesh, Anda harus mengaktifkan penyisipan sidecar otomatis dan men-deploy atau men-deploy ulang workload.
Mengonfigurasi multi-cluster mesh agar memercayai workload identity fleet
Jika Anda mengupgrade mesh multi-cluster di GKE yang
menggunakan otoritas sertifikat Cloud Service Mesh sebagai otoritas sertifikat, Anda harus menjalankan
asmcli create-mesh
sebelum mengupgrade setiap cluster. Perintah ini mengonfigurasi
otoritas sertifikat Cloud Service Mesh untuk menggunakan fleet workload identity pool,
FLEET_PROJECT_ID.svc.id.goog
, sebagai domain tepercaya setelah Anda
mengupgrade. Perintah asmcli create-mesh
:
- Mendaftarkan semua cluster ke fleet yang sama.
- Mengonfigurasi mesh agar memercayai identitas workload fleet.
- Membuat secret jarak jauh.
Anda dapat menentukan URI untuk setiap cluster atau jalur ke file kubeconfig.
URI Cluster
Dalam perintah berikut, ganti FLEET_PROJECT_ID
dengan
project ID dari
project host fleet
dan URI cluster dengan nama, zona atau region, dan project ID cluster
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 fleet
dan PATH_TO_KUBECONFIG
dengan jalur ke setiap
file kubeconfig
.
./asmcli create-mesh \
FLEET_PROJECT_ID \
PATH_TO_KUBECONFIG_1 \
PATH_TO_KUBECONFIG_2 # \
# Add a line for each cluster in the mesh
Upgrade dengan fitur default dan CA Mesh
Bagian ini menunjukkan cara menjalankan asmcli
untuk mengupgrade Cloud Service Mesh dengan
fitur yang didukung default untuk platform Anda
dan mengaktifkan otoritas sertifikat Cloud Service Mesh sebagai otoritas sertifikat.
GKE
Jalankan perintah berikut untuk mengupgrade panel kontrol dengan fitur default dan otoritas sertifikat Cloud Service Mesh. 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
--project_id
,--cluster_name
, dan--cluster_location
Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Certificate Authority Cloud Service Mesh sebagai Certificate Authority. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif.asmcli
mengonfigurasi certificate authority Cloud Service Mesh untuk menggunakan fleet workload identity
Cluster GKE Enterprise lainnya
Jalankan perintah berikut di cluster GKE Enterprise lainnya untuk mengupgrade panel kontrol dengan fitur default dan otoritas sertifikat Cloud Service Mesh. Masukkan nilai Anda di placeholder yang disediakan.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Certificate Authority Cloud Service Mesh sebagai Certificate Authority. Mengubah otoritas sertifikasi selama upgrade menyebabkan periode nonaktif.asmcli
mengonfigurasi otoritas sertifikat Cloud Service Mesh untuk menggunakan fleet workload identity
Mengupgrade fitur default dengan Layanan CA
Bagian ini menunjukkan cara menjalankan asmcli
untuk mengupgrade Cloud Service Mesh dengan
fitur yang didukung default untuk platform Anda
dan mengaktifkan Certificate Authority Service.
GKE
Jalankan perintah berikut untuk mengupgrade bidang kontrol dengan fitur default dan Layanan Otoritas Sertifikat. 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 gcp_cas \
--ca_pool projects/PROJECT_NAME/locations/ca_region/caPools/CA_POOL
--project_id
,--cluster_name
, dan--cluster_location
Tentukan project ID tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca gcp_cas
Gunakan Certificate Authority Service sebagai otoritas sertifikat. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif.asmcli
mengonfigurasi Certificate Authority Service untuk menggunakan fleet workload identity--ca_pool
ID lengkap untuk CA Pool Certificate Authority Service.
Lokal
Jalankan perintah berikut di Google Distributed Cloud (khusus software) untuk VMware atau Google Distributed Cloud (khusus software) untuk bare metal guna mengupgrade bidang kontrol dengan fitur default dan Layanan Otoritas Sertifikat. Masukkan nilai Anda di placeholder yang disediakan.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca gcp_cas
Gunakan Certificate Authority Service sebagai otoritas sertifikat. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif.asmcli
mengonfigurasi Certificate Authority Service untuk menggunakan fleet workload identity--ca_pool
ID lengkap untuk Certificate Authority Service CA Pool.
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 CA Istio.
GKE
Jalankan perintah berikut untuk mengupgrade panel kontrol dengan fitur 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 tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca citadel
Menggunakan CA Istio. Mengubah otoritas sertifikat selama upgrade menyebabkan periode nonaktif.
Lokal
Jalankan perintah berikut di Google Distributed Cloud (khusus software) untuk VMware atau Google Distributed Cloud (khusus software) untuk bare metal guna mengupgrade panel kontrol dengan fitur default dan CA Istio. Masukkan nilai Anda di placeholder yang disediakan.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan 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 bidang kontrol dengan fitur default dan CA Istio. Masukkan nilai Anda di tempat penampung yang disediakan. Anda dapat memilih untuk mengaktifkan Ingress untuk subnet publik atau subnet pribadi.
Publik
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan 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
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan 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 fitur default dan CA Istio. Masukkan nilai Anda di placeholder yang disediakan.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan 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 Microsoft AKS untuk mengupgrade bidang kontrol dengan fitur default dan CA Istio. Masukkan nilai Anda di placeholder yang disediakan.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan 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
Mengupgrade 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 default dan
mengaktifkan fitur opsional
dengan meneruskan file YAML ke asmcli
. Anda dapat menambahkan lebih banyak overlay, dan setiap file overlay menggantikan konfigurasi pada lapisan sebelumnya.
GKE
Jalankan perintah berikut untuk menginstal control plane dengan fitur opsional. 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 tempat cluster berada, nama cluster, dan zona atau region cluster.--fleet_id
Project ID project host fleet. Jika Anda tidak menyertakan opsi ini,asmcli
akan menggunakan project tempat cluster dibuat saat mendaftarkan cluster.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Certificate Authority Cloud Service Mesh sebagai Certificate Authority. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif.asmcli
mengonfigurasi certificate authority Cloud Service Mesh untuk menggunakan fleet workload identity--custom_overlay
Tentukan nama file overlay.
Di luar Google Cloud
Jalankan perintah berikut di Google Distributed Cloud (khusus software) untuk VMware, Google Distributed Cloud (khusus software) untuk bare metal, GKE di AWS, Amazon EKS, atau Microsoft AKS. Masukkan nilai Anda di placeholder yang disediakan.
Tetapkan konteks saat ini ke cluster pengguna Anda:
kubectl config use-context CLUSTER_NAME
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 kekubeconfig
file. Variabel lingkungan$PWD
tidak berfungsi di sini. Selain itu, lokasi filekubeconfig
relatif yang menggunakan `~` tidak akan berfungsi.--output_dir
Sertakan opsi ini untuk menentukan direktori tempatasmcli
mendownload paketanthos-service-mesh
dan mengekstrak file penginstalan, yang berisiistioctl
, sampel, dan manifes. Jika tidak,asmcli
akan mendownload file ke direktoritmp
. Anda dapat menentukan jalur relatif atau jalur lengkap. Variabel lingkungan$PWD
tidak berfungsi di sini.--platform multicloud
Menentukan bahwa platform adalah sesuatu selain Google Cloud, seperti lokal atau multi-cloud.-
--enable_all
Mengizinkan skrip untuk:- Berikan izin IAM yang diperlukan.
- Aktifkan Google API yang diperlukan.
- Tetapkan label pada cluster yang mengidentifikasi mesh.
- Daftarkan cluster ke fleet jika belum terdaftar.
--ca mesh_ca
Gunakan Certificate Authority Cloud Service Mesh sebagai Certificate Authority. Mengubah certificate authority selama upgrade menyebabkan periode nonaktif.asmcli
mengonfigurasi certificate authority Cloud Service Mesh untuk menggunakan fleet workload identity--custom_overlay
Tentukan nama file overlay.
Mengupgrade gateway
Jika Anda telah men-deploy gateway, Anda juga harus mengupgradenya. Untuk upgrade sederhana, ikuti bagian Upgrade di tempat dalam panduan Menginstal dan mengupgrade gateway.
Beralih ke panel kontrol baru
Dapatkan label revisi yang ada di
istiod
.kubectl get pod -n istio-system -L istio.io/rev
Output dari perintah ini akan mirip dengan berikut ini.
NAME READY STATUS RESTARTS AGE REV istiod-asm-1264-1-67998f4b55-lrzpz 1/1 Running 0 68m asm-1254-0 istiod-asm-1264-1-67998f4b55-r76kr 1/1 Running 0 68m asm-1254-0 istiod-1254-0-1-5cd96f88f6-n7tj9 1/1 Running 0 27s asm-1264-1 istiod-1254-0-1-5cd96f88f6-wm68b 1/1 Running 0 27s asm-1264-1
Dalam output, di kolom
REV
, catat nilai label revisi untuk versi baru. Dalam contoh ini, nilainya adalahasm-1264-1
.Perhatikan juga nilai dalam label revisi untuk versi
istiod
lama. Anda memerlukan hal ini untuk menghapus versiistiod
sebelumnya saat Anda selesai memindahkan workload ke versi baru. Dalam contoh output, nilai label revisi untuk versi sebelumnya adalahasm-1254-0
.
Tambahkan label revisi ke namespace aplikasi dan hapus label
istio-injection
(jika ada). Dalam perintah berikut, ubahREVISION
ke nilai yang cocok dengan revisi baruistiod
.kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
Jika Anda melihat
"istio-injection not found"
di output, Anda dapat mengabaikannya. Artinya, namespace sebelumnya tidak memiliki labelistio-injection
. Karena perilaku injeksi otomatis tidak ditentukan saat namespace memiliki labelistio-injection
dan revisi, semua perintahkubectl label
dalam dokumentasi Cloud Service Mesh secara eksplisit memastikan bahwa hanya satu yang ditetapkan.Mulai ulang Pod untuk memicu penyuntikan ulang.
kubectl rollout restart deployment -n NAMESPACE
Uji aplikasi Anda untuk memverifikasi bahwa workload berfungsi dengan benar.
Jika Anda memiliki workload di namespace lain, ulangi langkah-langkah untuk memberi label pada namespace dan memulai ulang Pod.
Jika Anda yakin bahwa aplikasi Anda berfungsi seperti yang diharapkan, lanjutkan dengan langkah-langkah untuk bertransisi ke versi baru
istiod
. Jika ada masalah dengan aplikasi Anda, ikuti langkah-langkah untuk melakukan rollback.Menyelesaikan transisi
Jika Anda yakin bahwa aplikasi Anda berfungsi seperti yang diharapkan, hapus control plane lama untuk menyelesaikan transisi ke versi baru.
Ubah ke direktori tempat file dari repositori GitHub
anthos-service-mesh
berada.Memindahkan tag default:
<OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME> --overwrite
Hapus versi
istiod
sebelumnya. Perintah yang Anda gunakan bergantung pada apakah Anda melakukan migrasi dari Istio atau mengupgrade dari versi Cloud Service Mesh sebelumnya.Migrasi
Jika Anda bermigrasi dari Istio,
istio-ingressgateway
lama tidak memiliki label revisi:kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod -n istio-system --ignore-not-found=true
Upgrade
Jika Anda melakukan upgrade dari versi Cloud Service Mesh sebelumnya, pada perintah berikut, pastikan
OLD_REVISION
cocok dengan label revisi untuk versiistiod
sebelumnya:kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod-OLD_REVISION -n istio-system --ignore-not-found=true
Hapus resource
validatingwebhookconfiguration
,mutatingWebhookConfiguration
,configMap
,clusterRole
, danclusterRoleBinding
untuk revisi lama:kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system --ignore-not-found kubectl delete mutatingWebhookConfiguration istio-sidecar-injector-OLD_REVISION --ignore-not-found kubectl delete configMap istio-OLD_REVISION istio-sidecar-injector-OLD_REVISION -n istio-system --ignore-not-found kubectl delete clusterRole,clusterRoleBinding istio-reader-clusterrole-OLD_REVISION-istio-system istiod-clusterrole-OLD_REVISION-istio-system istiod-gateway-controller-OLD_REVISION-istio-system --ignore-not-found
Hapus konfigurasi
IstioOperator
versi sebelumnya:kubectl delete IstioOperator installed-state-OLD_REVISION -n istio-system
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 baru
istiod
, ikuti langkah-langkah berikut untuk melakukan rollback ke versi sebelumnya:Beri label ulang namespace Anda untuk mengaktifkan injeksi otomatis dengan
istiod
versi sebelumnya. Perintah yang Anda gunakan bergantung pada apakah Anda menggunakan label revisi atauistio-injection=enabled
dengan versi sebelumnya.Jika Anda menggunakan label revisi untuk penyisipan 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
Pastikan label revisi pada namespace cocok dengan label revisi pada versi
istiod
sebelumnya:kubectl get ns NAMESPACE --show-labels
Mulai ulang Pod untuk memicu penyisipan ulang sehingga proxy memiliki versi sebelumnya:
kubectl rollout restart deployment -n NAMESPACE
Hapus versi baru
istiod
. Pastikan nilaiREVISION
dalam perintah berikut sudah benar.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
Hapus konfigurasi
IstioOperator
versi baru.kubectl delete IstioOperator installed-state-REVISION -n istio-system
Output yang diharapkan mirip dengan berikut ini:
istiooperator.install.istio.io "installed-state-REVISION" deleted
Jika Anda tidak menyertakan flag
--disable_canonical_service
,asmcli
mengaktifkan pengontrol Layanan Kanonis. Sebaiknya biarkan setelan ini diaktifkan, tetapi jika Anda perlu menonaktifkannya, lihat Mengaktifkan dan menonaktifkan pengontrol Layanan Canonical.Jika Anda telah men-deploy gateway, pastikan untuk mengubah label revisi pada namespace atau deployment agar cocok dengan versi
istiod
sebelumnya. Ikuti proses yang sama yang diuraikan di bagian Upgrade di Tempat dalam panduan Menginstal dan mengupgrade gateway.
Men-deploy dan men-deploy ulang workload
Penginstalan (atau upgrade) Anda belum selesai hingga Anda mengaktifkan injeksi proxy sidecar otomatis (injeksi otomatis). Migrasi dari OSS Istio dan upgrade mengikuti proses upgrade berbasis revisi (disebut sebagai "upgrade canary" dalam dokumentasi Istio). Dengan upgrade berbasis revisi, versi baru bidang kontrol diinstal bersama bidang kontrol yang ada. Kemudian, Anda 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 dalam
format istio.io/rev=asm-1264-1
di istiod
. Untuk mengaktifkan penyisipan otomatis,
tambahkan label revisi yang cocok ke namespace Anda. Label revisi digunakan oleh webhook injector sidecar untuk mengaitkan sidecar yang di-inject dengan revisi istiod
tertentu. Setelah menambahkan label, mulai ulang Pod di namespace agar
sidecar disuntikkan.
Dapatkan label revisi yang ada di
istiod
danistio-ingressgateway
. Pada perintah berikut, ubah nilaiINGRESS_NAMESPACE
ke namespace tempat gateway ingress Anda berjalan:kubectl get pod -n INGRESS_NAMESPACE -L istio.io/rev
Output dari perintah ini akan mirip dengan berikut jika nama gateway ingress Anda adalah
istio-ingressgateway
: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-1264-1 istio-ingressgateway-asm-182-2-8b5fc8767-hn4w2 1/1 Running 0 20s asm-1264-1 istiod-asm-1264-1-67998f4b55-lrzpz 1/1 Running 0 68m asm-1254-0 istiod-asm-1264-1-67998f4b55-r76kr 1/1 Running 0 68m asm-1254-0 istiod-asm-1254-0-5cd96f88f6-n7tj9 1/1 Running 0 27s asm-1264-1 istiod-asm-1254-0-5cd96f88f6-wm68b 1/1 Running 0 27s asm-1264-1
Dalam output, di kolom
REV
, catat nilai label revisi untuk versi baru. Dalam contoh ini, nilainya adalahasm-1264-1
.Perhatikan juga nilai dalam label revisi untuk versi
istiod
lama. Anda memerlukan ini untuk menghapusistiod
versi lama saat Anda selesai memindahkan workload ke versi baru. Dalam contoh output, nilai label revisi untuk versi lama adalahasm-1254-0
.
Alihkan gateway ingress ke revisi baru. Dalam perintah berikut, ubah
REVISION
ke nilai yang cocok dengan label revisi versi baru. UbahINGRESS_NAMESPACE
ke namespace tempat gateway ingress Anda berjalan danINGRESS_NAME
ke nama gateway ingress Anda.kubectl patch service -n INGRESS_NAMESPACE INGRESS_NAME --type='json' -p='[{"op": "replace", "path": "/spec/selector/service.istio.io~1canonical-revision", "value": "REVISION"}]'
Output yang diharapkan:
service/istio-ingressgateway patched
Tambahkan label revisi ke namespace dan hapus label
istio-injection
(jika ada). Dalam perintah berikut, ubahREVISION
ke nilai yang cocok dengan revisi baruistiod
.kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
Jika Anda melihat
"istio-injection not found"
di output, Anda dapat mengabaikannya. Artinya, namespace sebelumnya tidak memiliki labelistio-injection
. Karena perilaku injeksi otomatis tidak ditentukan saat namespace memiliki labelistio-injection
dan revisi, semua perintahkubectl label
dalam dokumentasi Cloud Service Mesh secara eksplisit memastikan bahwa hanya satu yang ditetapkan.Mulai ulang Pod untuk memicu penyuntikan ulang.
kubectl rollout restart deployment -n NAMESPACE
Uji aplikasi Anda untuk memverifikasi bahwa workload berfungsi dengan benar.
Jika Anda memiliki workload di namespace lain, ulangi langkah-langkah untuk memberi label pada namespace dan memulai ulang Pod.
Jika Anda yakin bahwa aplikasi Anda berfungsi seperti yang diharapkan, lanjutkan dengan langkah-langkah untuk bertransisi ke versi baru
istiod
. Jika ada masalah dengan aplikasi Anda, ikuti langkah-langkah untuk melakukan rollback.Menyelesaikan transisi
Jika Anda yakin bahwa aplikasi Anda berfungsi seperti yang diharapkan, hapus control plane lama untuk menyelesaikan transisi ke versi baru.
Ubah ke direktori tempat file dari repositori GitHub
anthos-service-mesh
berada.Pindahkan tag default.
<OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME> --overwrite
Hapus deployment gateway ingress lama. Perintah yang Anda jalankan bergantung pada apakah Anda bermigrasi dari Istio atau mengupgrade dari versi Cloud Service Mesh sebelumnya:
Migrasi
Jika Anda bermigrasi dari Istio,
INGRESS_NAME
lama tidak memiliki label revisi.kubectl delete deploy/INGRESS_NAME -n INGRESS_NAMESPACE
Upgrade
Jika Anda melakukan upgrade dari versi Cloud Service Mesh sebelumnya, pada perintah berikut, ganti
OLD_REVISION
dengan label revisi untuk versiINGRESS_NAME
sebelumnya.kubectl delete deploy -l app=INGRESS_NAME,istio.io/rev=OLD_REVISION -n INGRESS_NAMESPACE --ignore-not-found=true
Hapus versi lama
istiod
. Perintah yang Anda gunakan bergantung pada apakah Anda melakukan migrasi dari Istio atau mengupgrade dari versi Cloud Service Mesh sebelumnya.Migrasi
Jika Anda bermigrasi dari Istio,
istiod
lama tidak memiliki label revisi.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod -n istio-system --ignore-not-found=true
Jika Anda memiliki bidang kontrol yang lebih lama, yang memiliki label revisi
OLD_REVISION
, klik tabupgrade
dan selesaikan penghapusan bidang kontrol istiod denganOLD_REVISION
.Upgrade
Jika Anda mengupgrade dari versi Cloud Service Mesh sebelumnya, pada perintah berikut, pastikan
OLD_REVISION
cocok dengan label revisi untuk versiistiod
sebelumnya.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget,sa,rolebinding,role istiod-OLD_REVISION -n istio-system --ignore-not-found=true
Hapus resource
validatingwebhookconfiguration
,mutatingWebhookConfiguration
,configMap
,clusterRole
, danclusterRoleBinding
untuk revisi lama:kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system --ignore-not-found kubectl delete mutatingWebhookConfiguration istio-sidecar-injector-OLD_REVISION --ignore-not-found kubectl delete configMap istio-OLD_REVISION istio-sidecar-injector-OLD_REVISION -n istio-system --ignore-not-found kubectl delete clusterRole,clusterRoleBinding istio-reader-clusterrole-OLD_REVISION-istio-system istiod-clusterrole-OLD_REVISION-istio-system istiod-gateway-controller-OLD_REVISION-istio-system --ignore-not-found
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 baru
istiod
, ikuti langkah-langkah berikut untuk melakukan rollback ke versi sebelumnya:Beri label ulang namespace Anda untuk mengaktifkan injeksi otomatis dengan
istiod
versi sebelumnya. Perintah yang Anda gunakan bergantung pada apakah Anda menggunakan label revisi atauistio-injection=enabled
dengan versi sebelumnya.Jika Anda menggunakan label revisi untuk penyisipan 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
Pastikan label revisi pada namespace cocok dengan label revisi pada versi
istiod
sebelumnya:kubectl get ns NAMESPACE --show-labels
Mulai ulang Pod untuk memicu penyisipan ulang sehingga proxy memiliki versi sebelumnya:
kubectl rollout restart deployment -n NAMESPACE
Hapus Deployment
istio-ingressgateway
baru. Pastikan nilaiREVISION
dalam perintah berikut sudah benar.kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=REVISION -n istio-system --ignore-not-found=true
Hapus versi baru
istiod
. Pastikan nilaiREVISION
dalam perintah berikut sudah benar.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
Hapus konfigurasi
IstioOperator
versi baru.
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
- Jika Anda tidak menyertakan tanda
--disable_canonical_service
, skrip akan mengaktifkan pengontrol Layanan Kanonis. Sebaiknya biarkan setelan ini diaktifkan, tetapi jika Anda perlu menonaktifkannya, lihat Mengaktifkan dan menonaktifkan pengontrol Layanan Canonical.