Panduan ini menjelaskan cara mengupgrade Anthos Service Mesh dari versi 1.4.5+ ke versi 1.4.10 di Google Kubernetes Engine. Jika Anda ingin melakukan upgrade ke Anthos Service Mesh 1.5, lihat Mengupgrade Anthos Service Mesh di GKE versi 1.5.
Proses deploy ulang komponen bidang kontrol Anthos Service Mesh memerlukan waktu sekitar 5 hingga 10 menit. Selain itu, Anda perlu memasukkan proxy file bantuan baru di semua beban kerja agar diupdate ke versi Anthos Service Mesh saat ini. Waktu yang diperlukan untuk memperbarui proxy file bantuan bergantung pada banyak faktor, seperti jumlah pod, jumlah node, setelan penskalaan deployment, anggaran gangguan pod, dan setelan konfigurasi lainnya. Perkiraan kasar dari waktu yang diperlukan untuk memperbarui proxy file bantuan adalah 100 pod per menit.
Mempersiapkan upgrade
Bagian ini menguraikan langkah-langkah yang Anda lakukan untuk mengupgrade Anthos Service Mesh.
Tinjau Fitur yang didukung dan panduan upgrade ini untuk memahami berbagai fitur dan proses upgrade.
Tinjau kebijakan otorisasi Anda untuk mengetahui apakah kebijakan tersebut perlu diperbarui.
Jika Anda mengaktifkan fitur opsional saat menginstal Anthos Service Mesh versi sebelumnya dengan menambahkan flag
--set values
ke command lineistioctl apply
, Anda harus menggunakan flag yang sama saat menjalankanistioctl apply
untuk mengupgrade ke 1.4.10.Jika Anda mengaktifkan fitur opsional saat menginstal Anthos Service Mesh versi sebelumnya dengan menambahkan flag
-f
ke command lineistioctl apply
untuk menentukan file YAML, Anda harus menentukan file yang sama (atau file dengan konten yang sama) ketika menjalankanistioctl apply
untuk mengupgrade ke 1.4.10.Menjadwalkan periode nonaktif. Proses upgrade dapat memerlukan waktu hingga 1 jam, bergantung pada skala cluster. Perhatikan bahwa hal ini tidak termasuk waktu yang Anda perlukan untuk men-deploy ulang beban kerja untuk memperbarui proxy file bantuan.
Menetapkan default project dan cluster
Dapatkan project ID project tempat cluster dibuat:
gcloud
gcloud projects list
Konsol
Di konsol Google Cloud, buka halaman Dasbor:
Klik menu drop-down Select from di bagian atas halaman. Di jendela Select from yang muncul, pilih project Anda. Project ID ditampilkan di kartu Project info di Dasbor project.
Buat variabel lingkungan untuk project ID:
export PROJECT_ID=
YOUR_PROJECT_ID
Buat variabel lingkungan untuk nomor project:
export PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} --format="value(projectNumber)")
Tetapkan project ID default untuk Google Cloud CLI:
gcloud config set project ${PROJECT_ID}
Buat variabel lingkungan berikut:
Tetapkan nama cluster:
export CLUSTER_NAME=YOUR_CLUSTER_NAME
Tetapkan
CLUSTER_LOCATION
ke zona cluster atau region cluster Anda:export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION
Tetapkan kumpulan beban kerja.
export WORKLOAD_POOL=${PROJECT_ID}.svc.id.goog
Tetapkan ID mesh.
export MESH_ID="proj-${PROJECT_NUMBER}"
Tetapkan zona atau region default untuk Google Cloud CLI.
Jika Anda memiliki cluster zona tunggal, tetapkan zona default:
gcloud config set compute/zone ${CLUSTER_LOCATION}
Jika Anda memiliki cluster regional, tetapkan region default:
gcloud config set compute/region ${CLUSTER_LOCATION}
Menetapkan kredensial dan izin
-
Dapatkan
kredensial autentikasi untuk berinteraksi dengan cluster:
gcloud container clusters get-credentials ${CLUSTER_NAME}
-
Berikan izin admin cluster kepada pengguna saat ini. Anda memerlukan izin berikut agar dapat membuat aturan role-based access control (RBAC) yang diperlukan untuk Anthos Service Mesh:
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user="$(gcloud config get-value core/account)"
Jika melihat error
"cluster-admin-binding" already exists
, Anda dapat mengabaikannya dengan aman dan melanjutkan dengan binding admin cluster yang ada.
Mendownload file penginstalan
-
Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-linux.tar.gz
-
Download file tanda tangan dan gunakan
openssl
untuk memverifikasi tanda tangan:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-linux.tar.gz.1.sig openssl dgst -verify - -signature istio-1.4.10-asm.18-linux.tar.gz.1.sig istio-1.4.10-asm.18-linux.tar.gz <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
Output yang diharapkan adalah:
Verified OK
-
Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-osx.tar.gz
-
Download file tanda tangan dan gunakan
openssl
untuk memverifikasi tanda tangan:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-osx.tar.gz.1.sig openssl dgst -sha256 -verify /dev/stdin -signature istio-1.4.10-asm.18-osx.tar.gz.1.sig istio-1.4.10-asm.18-osx.tar.gz <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
Output yang diharapkan adalah:
Verified OK
-
Download file penginstalan Anthos Service Mesh ke direktori kerja Anda saat ini:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-win.zip
-
Download file tanda tangan dan gunakan
openssl
untuk memverifikasi tanda tangan:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-win.zip.1.sig openssl dgst -verify - -signature istio-1.4.10-asm.18-win.zip.1.sig istio-1.4.10-asm.18-win.zip <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
Output yang diharapkan adalah:
Verified OK
-
Ekstrak konten file ke lokasi mana saja di sistem file Anda. Misalnya, untuk mengekstrak konten ke direktori kerja saat ini:
tar xzf istio-1.4.10-asm.18-linux.tar.gz
Perintah ini membuat direktori penginstalan di direktori kerja saat ini bernama
istio-1.4.10-asm.18
yang berisi:- Aplikasi contoh di
samples
- Alat berikut di direktori
bin
:istioctl
: Anda menggunakanistioctl
untuk menginstal Anthos Service Mesh.asmctl
: Anda menggunakanasmctl
untuk membantu memvalidasi konfigurasi keamanan setelah menginstal Anthos Service Mesh. (Saat ini,asmctl
tidak didukung di GKE di VMware.)
- Aplikasi contoh di
-
Pastikan Anda berada di direktori utama penginstalan Anthos Service Mesh.
cd istio-1.4.10-asm.18
-
Untuk memudahkan, tambahkan alat di direktori
/bin
ke PATH Anda:export PATH=$PWD/bin:$PATH
Linux
Mac OS
Windows
Mengupgrade Anthos Service Mesh
Bagian ini menjelaskan cara mengupgrade Anthos Service Mesh dan mengaktifkan:
- Fitur Default yang didukung tercantum di halaman Fitur yang didukung.
- Certificate authority Anthos Service Mesh (Mesh CA).
- Pipeline data telemetri yang mendukung dasbor Anthos Service Mesh di Konsol Google Cloud.
Untuk mengetahui informasi tentang cara mengaktifkan fitur Opsional yang didukung, lihat Mengaktifkan fitur opsional.
Untuk mengupgrade Anthos Service Mesh:
Pilih salah satu perintah berikut untuk mengonfigurasi Anthos Service Mesh dalam mode autentikasi
PERMISSIVE
mutual TLS (mTLS) atau mode mTLS STRICT
.
mTLS PERMISSIF
istioctl manifest apply --set profile=asm \ --set values.global.trustDomain=${WORKLOAD_POOL} \ --set values.global.sds.token.aud=${WORKLOAD_POOL} \ --set values.nodeagent.env.GKE_CLUSTER_URL=https://container.googleapis.com/v1/projects/${PROJECT_ID}/locations/${CLUSTER_LOCATION}/clusters/${CLUSTER_NAME} \ --set values.global.meshID=${MESH_ID} \ --set values.global.proxy.env.GCP_METADATA="${PROJECT_ID}|${PROJECT_NUMBER}|${CLUSTER_NAME}|${CLUSTER_LOCATION}"
mTLS KETAT
istioctl manifest apply --set profile=asm \ --set values.global.trustDomain=${WORKLOAD_POOL} \ --set values.global.sds.token.aud=${WORKLOAD_POOL} \ --set values.nodeagent.env.GKE_CLUSTER_URL=https://container.googleapis.com/v1/projects/${PROJECT_ID}/locations/${CLUSTER_LOCATION}/clusters/${CLUSTER_NAME} \ --set values.global.meshID=${MESH_ID} \ --set values.global.proxy.env.GCP_METADATA="${PROJECT_ID}|${PROJECT_NUMBER}|${CLUSTER_NAME}|${CLUSTER_LOCATION}" \ --set values.global.mtls.enabled=true
Memeriksa komponen bidang kontrol
Upgrade memerlukan penginstalan ulang komponen bidang kontrol, yang memerlukan waktu
sekitar 5 hingga 10 menit untuk diselesaikan. Komponen bidang kontrol lama
dihentikan, lalu dihapus saat komponen baru diinstal. Anda dapat memeriksa progresnya dengan melihat nilai di kolom AGE
beban kerja.
kubectl get pod -n istio-system
NAME READY STATUS RESTARTS AGE istio-galley-76d684bf9-jwz65 2/2 Running 0 5m36s istio-ingressgateway-5bfdf7c586-v6wxx 2/2 Terminating 0 25m istio-ingressgateway-7b598c5557-b88md 2/2 Running 0 5m44s istio-nodeagent-bnjg7 1/1 Running 0 5m16s istio-nodeagent-cps2j 1/1 Running 0 5m10s istio-nodeagent-f4x46 1/1 Running 0 5m26s istio-nodeagent-jbl5x 1/1 Running 0 5m38s istio-pilot-5dc4bc4dbf-ds5dh 2/2 Running 0 5m30s istio-pilot-74665549c5-7r6qh 2/2 Terminating 0 25m istio-sidecar-injector-7ddff4b99-b76l7 1/1 Running 0 5m36s promsd-6d4d5b7c5c-dgnd7 2/2 Running 0 5m30s
Dalam contoh ini, ada dua instance istio-ingressgateway
dan
istio-pilot
. Instance dengan 25m
dalam kolom AGE
sedang dihentikan.
Semua komponen lainnya baru diinstal.
Memvalidasi upgrade
Sebaiknya gunakan alat analisis asmctl
untuk memvalidasi konfigurasi dasar project, cluster, dan workload Anda. Jika pengujian asmctl
gagal, asmctl
akan merekomendasikan solusi, jika memungkinkan. Perintah asmctl validate
menjalankan pengujian dasar yang memeriksa:
- Bahwa API yang diperlukan oleh Anthos Service Mesh diaktifkan di project.
- Bahwa Istio-Ingressgateway dikonfigurasi dengan benar untuk memanggil Mesh CA.
- Kondisi umum Istiod dan Istio-Ingressgateway.
Jika Anda menjalankan perintah asmctl validate
dengan flag
--with-testing-workloads
opsional, selain pengujian dasar, asmctl
akan menjalankan pengujian keamanan yang memeriksa:
- Komunikasi TLS (mTLS) dikonfigurasi dengan benar.
- Mesh CA dapat menerbitkan sertifikat.
Untuk menjalankan pengujian keamanan, asmctl
men-deploy beban kerja pada cluster Anda dalam namespace pengujian, menjalankan pengujian komunikasi mTLS, menampilkan hasilnya, dan menghapus namespace pengujian.
Untuk menjalankan asmctl
:
Pastikan kredensial gcloud application-default ditetapkan:
gcloud auth application-default login
Jika Anda belum melakukannya, dapatkan kredensial autentikasi untuk berinteraksi dengan cluster:
gcloud container clusters get-credentials ${CLUSTER_NAME}
Untuk menjalankan pengujian dasar dan keamanan (dengan asumsi
istio-1.4.10-asm.18/bin
) ada diPATH
Anda):asmctl validate --with-testing-workloads
Jika berhasil, perintah akan merespons dengan output yang mirip dengan berikut ini:
[asmctl version 0.3.0] Using Kubernetes context: example-project_us-central1-example-cluster To change the context, use the --context flag Validating enabled APIs OK Validating ingressgateway configuration OK Validating istio system OK Validating sample traffic Launching example services... Sent traffic to example service http code: 200 verified mTLS configuration OK Validating issued certs OK
Memperbarui proxy file bantuan
Setiap beban kerja yang berjalan di cluster sebelum Anda mengupgrade Anthos Service Mesh harus memasukkan atau mengupdate sidecar proxy agar memiliki versi Anthos Service Mesh saat ini.
Dengan injeksi file bantuan otomatis, Anda dapat memperbarui file bantuan untuk pod yang ada dengan memulai ulang pod. Cara Anda memulai ulang pod bergantung pada apakah pod dibuat sebagai bagian dari Deployment.
Jika Anda menggunakan Deployment, mulai ulang Deployment, yang akan memulai ulang semua Pod dengan file bantuan:
kubectl rollout restart YOUR_DEPLOYMENT -n YOUR_NAMESPACE
Jika Anda tidak menggunakan Deployment, hapus Pod, lalu Pod akan otomatis dibuat ulang dengan file bantuan:
kubectl delete pod -n YOUR_NAMESPACE --all
Pastikan semua Pod di namespace memiliki file bantuan yang dimasukkan:
kubectl get pod -n YOUR_NAMESPACE --all
Pada contoh output dari perintah sebelumnya berikut, perhatikan bahwa kolom
READY
menunjukkan bahwa ada dua penampung untuk setiap beban kerja: penampung utama dan container untuk proxy sidecar.NAME READY STATUS RESTARTS AGE YOUR_WORKLOAD 2/2 Running 0 20s ...
Memperbarui kebijakan otorisasi
Jika melakukan upgrade dari Istio 1.4.x open source atau dari versi Anthos Service Mesh yang lebih lama dan sudah memiliki kebijakan otorisasi, Anda mungkin perlu mengupdatenya. Lihat Memperbarui kebijakan otorisasi untuk informasi selengkapnya.