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:
- Tinjau prasyarat.
- Tinjau informasi di Rencanakan upgrade.
- Instal alat yang diperlukan.
- Download
asmcli
. - Memberikan izin admin cluster.
- Validasi project dan cluster.
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:
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.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 argumenoutput_dir
sehingga Anda dapat dengan mudah menemukan gateway dan alat contoh sepertiistioctl
. Lihat bilah navigasi di sebelah kanan untuk melihat daftar contoh.Anda juga dapat menginstal atau mengupgrade gateway masuk. Menurut default,
asmcli
tidak menginstalistio-ingressgateway
. Saran dari kami Anda men-deploy dan mengelola gateway dan bidang kontrol secara terpisah. Jika Andaistio-ingressgateway
default perlu diinstal bersama dalam cluster bidang kontrol, termasuk--option legacy-default-ingressgateway
argumen.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 tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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.asmcli
konfigurasi 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.
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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.asmcli
konfigurasi 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 tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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.asmcli
konfigurasi 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}.
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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.asmcli
konfigurasi 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 tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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}.
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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}.
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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}.
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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 tempatasmcli
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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.asmcli
konfigurasi 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.
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 menuju Filekubeconfig
. 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
mendownloadanthos-service-mesh
mengemas dan mengekstrak file instalasi, yang berisiistioctl
, sampel, dan manifes. Sebaliknyaasmcli
akan mendownload file ke direktoritmp
. 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.asmcli
konfigurasi 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
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
Di output, di bawah kolom
REV
, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalahasm-1204-0
.Perhatikan juga nilai dalam label revisi untuk versi
istiod
lama. Anda memerlukannya untuk menghapusistiod
versi lama saat sudah selesai memindahkan beban kerja ke versi baru. Dalam contoh {i>output<i}, nilai label revisi untuk versi lama adalahasm-1198-2
.
Tambahkan label revisi ke namespace aplikasi dan hapus Label
istio-injection
(jika ada). Pada perintah berikut, ubahREVISION
ke nilai yang sesuai dengan revisi baruistiod
.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 Labelistio-injection
. Karena perilaku injeksi otomatis tidak ditentukan jika namespace memilikiistio-injection
dan label revisi, semua perintahkubectl label
di Mesh Layanan Cloud dokumentasi secara eksplisit memastikan bahwa hanya satu yang ditetapkan.Mulai ulang Pod untuk memicu injeksi ulang.
kubectl rollout restart deployment -n NAMESPACE
Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.
Jika Anda memiliki beban kerja di namespace lain, ulangi langkah-langkah untuk memberi label pada namespace dan memulai ulang Pod.
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.
Ubah ke direktori tempat file dari
anthos-service-mesh
menemukan repositori GitHub.Konfigurasi webhook yang memvalidasi untuk menggunakan bidang kontrol baru:
kubectl apply -f asm/istio/istiod-service.yaml
Pindahkan tag default:
<OUTPUT_DIR>/istioctl tag set default --revision REVISION --overwrite
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
Jika Anda melakukan upgrade dari versi Cloud Service Mesh sebelumnya, dalam perintah berikut, pastikan bahwa
OLD_REVISION
cocok dengan label revisi untukistiod
versi sebelumnya:kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
Hapus resource
validatingwebhookconfiguration
untuk revisi lama:kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system -n istio-system --ignore-not-found=true
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:Beri label ulang namespace untuk mengaktifkan injeksi otomatis dengan versi
istiod
. Perintah yang Anda gunakan bergantung pada apakah Anda menggunakan label revisi atauistio-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
Pastikan label revisi pada namespace cocok dengan revisi label pada
istiod
versi sebelumnya:kubectl get ns NAMESPACE --show-labels
Mulai ulang Pod untuk memicu injeksi ulang sehingga proxy memiliki versi:
kubectl rollout restart deployment -n NAMESPACE
Hapus versi baru
istiod
. Pastikan bahwa nilaiREVISION
dalam perintah berikut sudah benar.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
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
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.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.
Dapatkan label revisi yang ada di
istiod
danistio-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
Di output, di bawah kolom
REV
, perhatikan nilai revisi label untuk versi baru. Dalam contoh ini, nilainya adalahasm-1204-0
.Perhatikan juga nilai dalam label revisi untuk versi
istiod
lama. Anda memerlukannya untuk menghapusistiod
versi lama saat sudah selesai memindahkan beban kerja ke versi baru. Dalam contoh {i>output<i}, nilai label revisi untuk versi lama adalahasm-1198-2
.
Alihkan
istio-ingressgateway
ke revisi baru. Dalam ubahREVISION
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
Tambahkan label revisi ke namespace dan hapus
istio-injection
label (jika ada). Pada perintah berikut, ubahREVISION
ke nilai yang cocok dengan revisi baru dariistiod
.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 Labelistio-injection
. Karena perilaku injeksi otomatis tidak ditentukan jika namespace memilikiistio-injection
dan label revisi, semua perintahkubectl label
di Mesh Layanan Cloud dokumentasi secara eksplisit memastikan bahwa hanya satu yang ditetapkan.Mulai ulang Pod untuk memicu injeksi ulang.
kubectl rollout restart deployment -n NAMESPACE
Uji aplikasi Anda untuk memastikan beban kerja berfungsi dengan benar.
Jika Anda memiliki beban kerja di namespace lain, ulangi langkah-langkah untuk memberi label pada namespace dan memulai ulang Pod.
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.
Ubah ke direktori tempat file dari
anthos-service-mesh
menemukan repositori GitHub.Konfigurasi webhook yang memvalidasi untuk menggunakan bidang kontrol baru.
kubectl apply -f asm/istio/istiod-service.yaml
Pindahkan tag default.
<OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME> --overwrite
Hapus
istio-ingressgateway
Deployment 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 sebelumnyaistio-ingressgateway
.kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=OLD_REVISION -n istio-system --ignore-not-found=true
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 untukistiod
versi sebelumnya.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
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:Beri label ulang namespace untuk mengaktifkan injeksi otomatis dengan versi
istiod
. Perintah yang Anda gunakan bergantung pada apakah Anda menggunakan label revisi atauistio-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
Pastikan label revisi pada namespace cocok dengan revisi label pada
istiod
versi sebelumnya:kubectl get ns NAMESPACE --show-labels
Mulai ulang Pod untuk memicu injeksi ulang sehingga proxy memiliki versi:
kubectl rollout restart deployment -n NAMESPACE
Hapus Deployment
istio-ingressgateway
baru. Pastikan bahwa nilaiREVISION
dalam perintah berikut adalah benar.kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=REVISION -n istio-system --ignore-not-found=true
Hapus versi baru
istiod
. Pastikan bahwa nilaiREVISION
dalam perintah berikut sudah benar.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
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
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.