Tutorial ini menunjukkan cara mengupgrade lingkungan Google Kubernetes Engine (GKE) multi-cluster menggunakan Multi Cluster Ingress . Tutorial ini merupakan kelanjutan dari upgrade GKE multi-cluster menggunakan dokumen Multi Cluster Ingress yang menjelaskan proses, arsitektur, dan persyaratan secara lebih mendetail. Sebaiknya baca dokumen konsep sebelum tutorial ini.
Untuk perbandingan mendetail antara Multi Cluster Ingress (MCI), Multi-cluster Gateway (MCG), dan load balancer dengan Standalone Network Endpoint Groups (LB dan Standalone NEG), lihat Memilih API load balancing multi-cluster untuk GKE.
Dokumen ini ditujukan bagi Google Cloud administrator yang bertanggung jawab mengelola fleet untuk cluster GKE.
Sebaiknya upgrade cluster GKE Anda secara otomatis. Upgrade otomatis adalah cara yang terkelola sepenuhnya untuk mengupdate cluster Anda (bidang kontrol dan node) secara otomatis sesuai jadwal rilis yang ditentukan olehGoogle Cloud. Hal ini tidak memerlukan intervensi dari operator. Namun, jika Anda menginginkan lebih banyak kontrol atas cara dan waktu cluster diupgrade, tutorial ini akan membahas metode mengupgrade beberapa cluster tempat aplikasi Anda berjalan di semua cluster. Kemudian, layanan ini menggunakan Multi Cluster Ingress untuk menghabiskan satu cluster dalam satu waktu sebelum mengupgrade.
Arsitektur
Tutorial ini menggunakan arsitektur berikut. Ada total tiga cluster:
dua cluster (blue dan green) bertindak sebagai cluster identik dengan
aplikasi yang sama yang di-deploy dan satu cluster (ingress-config) bertindak sebagai bidang kontrol
cluster yang mengonfigurasi Multi Cluster Ingress. Dalam tutorial ini, Anda akan men-deploy
aplikasi contoh ke dua cluster aplikasi (cluster blue dan green).

Menyiapkan lingkungan
Di Cloud Shell, clone repositori guna mendapatkan file untuk tutorial ini:
cd ${HOME} git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samplesBuat direktori
WORKDIR:cd kubernetes-engine-samples/networking/gke-multicluster-upgrade-mci/ export WORKDIR=`pwd`
Membuat dan mendaftarkan cluster GKE ke Hub
Di bagian ini, Anda akan membuat tiga cluster GKE dan mendaftarkannya ke GKE Hub.
Membuat cluster GKE
Di Cloud Shell, buat tiga cluster GKE:
gcloud container clusters create ingress-config --location us-west1-a \ --release-channel=None --no-enable-autoupgrade --num-nodes=4 \ --enable-ip-alias --workload-pool=${PROJECT}.svc.id.goog --quiet --async gcloud container clusters create blue --location us-west1-b --num-nodes=3 \ --release-channel=None --no-enable-autoupgrade --enable-ip-alias \ --workload-pool=${PROJECT}.svc.id.goog --quiet --async gcloud container clusters create green --location us-west1-c --num-nodes=3 \ --release-channel=None --no-enable-autoupgrade --enable-ip-alias \ --workload-pool=${PROJECT}.svc.id.goog --quietUntuk tujuan tutorial ini, Anda akan membuat cluster dalam satu region, di tiga zona berbeda:
us-west1-a,us-west1-b, danus-west1-c. Untuk mengetahui informasi selengkapnya tentang region dan zona, lihat Geografi dan region.Tunggu beberapa menit hingga semua cluster berhasil dibuat. Pastikan cluster telah berjalan:
gcloud container clusters listOutputnya mirip dengan hal berikut ini:
NAME: ingress-config LOCATION: us-west1-a MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.233.186.135 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 4 STATUS: RUNNING NAME: blue LOCATION: us-west1-b MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 34.82.35.222 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING NAME: green LOCATION: us-west1-c MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.185.204.26 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNINGBuat file
kubeconfigdan hubungkan ke semua cluster untuk menghasilkan entri di filekubeconfig:touch gke-upgrade-kubeconfig export KUBECONFIG=gke-upgrade-kubeconfig gcloud container clusters get-credentials ingress-config \ --location us-west1-a --project ${PROJECT} gcloud container clusters get-credentials blue --location us-west1-b \ --project ${PROJECT} gcloud container clusters get-credentials green --location us-west1-c \ --project ${PROJECT}Anda menggunakan file
kubeconfiguntuk membuat autentikasi ke cluster dengan membuat pengguna dan konteks untuk setiap cluster. Setelah membuat filekubeconfig, Anda dapat dengan cepat mengalihkan konteks antar-cluster.Verifikasi bahwa Anda memiliki tiga cluster di file
kubeconfig:kubectl config view -ojson | jq -r '.clusters[].name'Outputnya adalah sebagai berikut:
gke_gke-multicluster-upgrades_us-west1-a_ingress-config gke_gke-multicluster-upgrades_us-west1-b_blue gke_gke-multicluster-upgrades_us-west1-c_greenDapatkan konteks dari ketiga klaster tersebut untuk digunakan nanti:
export INGRESS_CONFIG_CLUSTER=$(kubectl config view -ojson | jq \ -r '.clusters[].name' | grep ingress-config) export BLUE_CLUSTER=$(kubectl config view -ojson | jq \ -r '.clusters[].name' | grep blue) export GREEN_CLUSTER=$(kubectl config view -ojson | jq \ -r '.clusters[].name' | grep green) echo -e "${INGRESS_CONFIG_CLUSTER}\n${BLUE_CLUSTER}\n${GREEN_CLUSTER}"Outputnya adalah sebagai berikut:
gke_gke-multicluster-upgrades_us-west1-a_ingress-config gke_gke-multicluster-upgrades_us-west1-b_blue gke_gke-multicluster-upgrades_us-west1-c_green
Mendaftarkan cluster GKE ke fleet
Dengan mendaftarkan cluster ke fleet, Anda dapat mengoperasikan cluster Kubernetes di seluruh lingkungan hybrid. Cluster yang terdaftar ke fleet dapat menggunakan fitur-fitur GKE tingkat tinggi seperti Multi Cluster Ingress. Untuk mendaftarkan cluster GKE ke fleet, Anda dapat menggunakan akun layanan secara langsung, atau menggunakan pendekatan Workload Identity Federation untuk GKE yang direkomendasikan, yang memungkinkan akun layanan Kubernetes di cluster GKE Anda untuk bertindak sebagai akun layanan Identity and Access Management. Google Cloud
Daftarkan ketiga cluster sebagai fleet:
gcloud container fleet memberships register ingress-config \ --gke-cluster=us-west1-a/ingress-config \ --enable-workload-identity gcloud container fleet memberships register blue \ --gke-cluster=us-west1-b/blue \ --enable-workload-identity gcloud container fleet memberships register green \ --gke-cluster=us-west1-c/green \ --enable-workload-identityVerifikasi bahwa cluster-cluster sudah terdaftar:
gcloud container fleet memberships listOutputnya mirip dengan hal berikut ini:
NAME: blue EXTERNAL_ID: 401b4f08-8246-4f97-a6d8-cf1b78c2a91d NAME: green EXTERNAL_ID: 8041c36a-9d42-40c8-a67f-54fcfd84956e NAME: ingress-config EXTERNAL_ID: 65ac48fe-5043-42db-8b1e-944754a0d725Konfigurasikan cluster
ingress-configsebagai cluster konfigurasi untuk Multi Cluster Ingress dengan mengaktifkan fiturmulticlusteringressmelalui Hub:gcloud container fleet ingress enable --config-membership=ingress-configPerintah sebelumnya menambahkan CRD (Custom Resource Definitions)
MulticlusterIngressdanMulticlusterServiceke clusteringress-config. Proses perintah ini memerlukan waktu beberapa menit. Tunggu sebelum melanjutkan ke langkah berikutnya.Verifikasi bahwa cluster
ingress-clustertelah berhasil dikonfigurasi untuk Multi Cluster Ingress:watch gcloud container fleet ingress describeTunggu hingga output mirip dengan berikut ini:
createTime: '2022-07-05T10:21:40.383536315Z' membershipStates: projects/662189189487/locations/global/memberships/blue: state: code: OK updateTime: '2022-07-08T10:59:44.230329189Z' projects/662189189487/locations/global/memberships/green: state: code: OK updateTime: '2022-07-08T10:59:44.230329950Z' projects/662189189487/locations/global/memberships/ingress-config: state: code: OK updateTime: '2022-07-08T10:59:44.230328520Z' name: projects/gke-multicluster-upgrades/locations/global/features/multiclusteringress resourceState: state: ACTIVE spec: multiclusteringress: configMembership: projects/gke-multicluster-upgrades/locations/global/memberships/ingress-config state: state: code: OK description: Ready to use updateTime: '2022-07-08T10:57:33.303543609Z' updateTime: '2022-07-08T10:59:45.247576318Z'Untuk keluar dari perintah
watch, tekan Control+C.
Men-deploy aplikasi contoh ke cluster biru dan hijau
Di Cloud Shell, deploy aplikasi contoh
whereamike clusterbluedangreen:kubectl --context ${BLUE_CLUSTER} apply -f ${WORKDIR}/application-manifests kubectl --context ${GREEN_CLUSTER} apply -f ${WORKDIR}/application-manifestsTunggu beberapa menit dan pastikan semua Pod di cluster
bluedangreenmemiliki statusRunning:kubectl --context ${BLUE_CLUSTER} get pods kubectl --context ${GREEN_CLUSTER} get podsOutputnya mirip dengan hal berikut ini:
NAME READY STATUS RESTARTS AGE whereami-deployment-756c7dc74c-zsmr6 1/1 Running 0 74s NAME READY STATUS RESTARTS AGE whereami-deployment-756c7dc74c-sndz7 1/1 Running 0 68s.
Mengonfigurasi multi-cluster ingress
Di bagian ini, Anda akan membuat multi-cluster Ingress yang mengirimkan traffic ke
aplikasi yang berjalan di cluster blue dan green. Anda menggunakan
Cloud Load Balancing
untuk membuat load balancer yang menggunakan aplikasi whereami di cluster blue dan
green sebagai backend. Untuk membuat load balancer, Anda memerlukan dua resource: MultiClusterIngress dan satu atau beberapa MultiClusterServices.
Objek MultiClusterIngress dan MultiClusterService adalah analog multi-cluster untuk resource Layanan dan Ingress Kubernetes yang ada yang digunakan dalam konteks cluster tunggal.
Di Cloud Shell, deploy resource
MulticlusterIngresske clusteringress-config:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply -f ${WORKDIR}/multicluster-manifests/mci.yamlOutputnya adalah sebagai berikut:
multiclusteringress.networking.gke.io/whereami-mci createdDeploy resource
MulticlusterServiceke clusteringress-config:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply -f ${WORKDIR}/multicluster-manifests/mcs-blue-green.yamlOutputnya adalah sebagai berikut:
multiclusterservice.networking.gke.io/whereami-mcs createdUntuk membandingkan kedua resource tersebut, lakukan langkah berikut:
Periksa resource
MulticlusterIngress:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusteringress -o yamlOutputnya berisi hal berikut:
spec: template: spec: backend: serviceName: whereami-mcs servicePort: 8080Resource
MulticlusterIngressmirip dengan resource Ingress Kubernetes kecuali spesifikasiserviceNamemengarah ke resourceMulticlusterService.Periksa resource
MulticlusterService:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusterservice -o yamlOutputnya berisi hal berikut:
spec: clusters: - link: us-west1-b/blue - link: us-west1-c/green template: spec: ports: - name: web port: 8080 protocol: TCP targetPort: 8080 selector: app: whereamiResource
MulticlusterServicemirip dengan resource Layanan Kubernetes, tetapi memiliki spesifikasiclusters. Nilaiclustersadalah daftar cluster terdaftar tempat resourceMulticlusterServicedibuat.Verifikasi bahwa resource
MulticlusterIngresstelah membuat load balancer dengan layanan backend yang mengarah ke resourceMulticlusterService:watch kubectl --context ${INGRESS_CONFIG_CLUSTER} \ get multiclusteringress -o jsonpath="{.items[].status.VIP}"Diperlukan waktu hingga 10 menit. Tunggu hingga outputnya mirip dengan berikut ini:
34.107.246.9Untuk keluar dari perintah
watch, tekanControl+C.
Di Cloud Shell, dapatkan Cloud Load Balancing VIP:
export GCLB_VIP=$(kubectl --context ${INGRESS_CONFIG_CLUSTER} \ get multiclusteringress -o json | jq -r '.items[].status.VIP') \ && echo ${GCLB_VIP}Outputnya mirip dengan hal berikut ini:
34.107.246.9Gunakan
curluntuk mengakses load balancer dan aplikasi yang di-deploy:curl ${GCLB_VIP}Outputnya mirip dengan hal berikut ini:
{ "cluster_name": "green", "host_header": "34.107.246.9", "pod_name": "whereami-deployment-756c7dc74c-sndz7", "pod_name_emoji": "😇", "project_id": "gke-multicluster-upgrades", "timestamp": "2022-07-08T14:26:07", "zone": "us-west1-c" }Jalankan perintah
curlberulang kali. Perhatikan bahwa permintaan sedang di-load balanced antara aplikasiwhereamiyang di-deploy ke dua cluster,bluedangreen.
Menyiapkan generator beban
Di bagian ini, Anda akan menyiapkan Layanan loadgenerator yang menghasilkan traffic klien ke Cloud Load Balancing VIP. Pertama, traffic dikirim ke cluster blue dan green karena resource MulticlusterService sudah disiapkan untuk mengirim traffic ke kedua cluster. Kemudian, Anda perlu mengonfigurasi resource MulticlusterService
untuk mengirim traffic ke satu cluster.
Konfigurasikan manifes
loadgeneratoruntuk mengirim traffic klien ke Cloud Load Balancing:TEMPLATE=loadgen-manifests/loadgenerator.yaml.templ && envsubst < ${TEMPLATE} > ${TEMPLATE%.*}Deploy
loadgeneratordi clusteringress-config:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply -f ${WORKDIR}/loadgen-manifestsVerifikasi bahwa semua Pod
loadgeneratordalam clusteringress-configmemiliki statusRunning:kubectl --context ${INGRESS_CONFIG_CLUSTER} get podsOutputnya mirip dengan hal berikut ini:
NAME READY STATUS RESTARTS AGE loadgenerator-5498cbcb86-hqscp 1/1 Running 0 53s loadgenerator-5498cbcb86-m2z2z 1/1 Running 0 53s loadgenerator-5498cbcb86-p56qb 1/1 Running 0 53sJika salah satu Pod tidak memiliki status
Running, tunggu beberapa menit, lalu jalankan perintah tersebut sekali lagi.
Memantau kondisi lalu lintas
Di bagian ini, Anda akan memantau traffic ke aplikasi whereami menggunakan
Google Cloud console.
Di bagian sebelumnya, Anda akan menyiapkan deployment loadgenerator yang menyimulasikan traffic klien dengan mengakses aplikasi whereami melalui Cloud Load Balancing VIP. Anda dapat memantau metrik ini melalui konsolGoogle Cloud . Anda harus menyiapkan pemantauan terlebih dahulu sehingga dapat memantau saat
mengosongkan cluster untuk upgrade (dijelaskan di bagian berikutnya).
Buat dasbor untuk menampilkan traffic yang menjangkau Multi Cluster Ingress:
export DASH_ID=$(gcloud monitoring dashboards create \ --config-from-file=dashboards/cloud-ops-dashboard.json \ --format=json | jq -r ".name" | awk -F '/' '{print $4}')Outputnya mirip dengan hal berikut ini:
Created [721b6c83-8f9b-409b-a009-9fdf3afb82f8]Metrik dari Cloud Load Balancing tersedia di konsolGoogle Cloud . Buat URL:
echo "https://console.cloud.google.com/monitoring/dashboards/builder/${DASH_ID}/?project=${PROJECT}&timeDomain=1h"Outputnya mirip dengan hal berikut ini:
https://console.cloud.google.com/monitoring/dashboards/builder/721b6c83-8f9b-409b-a009-9fdf3afb82f8/?project=gke-multicluster-upgrades&timeDomain=1h"Di browser, buka URL yang dihasilkan oleh perintah sebelumnya.
Traffic ke aplikasi contoh mengarah dari generator beban ke cluster
bluedangreen(yang ditunjukkan oleh dua zona tempat cluster berada). Diagram metrik linimasa menunjukkan traffic yang menuju ke kedua backend. Nilai pengarahan mousek8s1-menunjukkan bahwa grup endpoint jaringan (NEG) untuk duaMulticlusterServicesfrontend yang berjalan di clusterbluedangreen.
Mengosongkan dan mengupgrade cluster blue
Di bagian ini, Anda akan mengosongkan cluster blue. Mengosongkan cluster berarti Anda
menghapusnya dari kumpulan load balancing. Setelah Anda mengosongkan cluster blue, semua traffic klien yang ditujukan untuk aplikasi akan masuk ke cluster green.
Anda dapat memantau proses ini seperti yang dijelaskan di bagian sebelumnya. Setelah cluster
dikosongkan, Anda dapat mengupgrade cluster yang dikosongkan tersebut. Setelah melakukan upgrade, Anda
dapat memasukkannya kembali ke kumpulan load balancing. Anda akan mengulangi langkah-langkah ini untuk mengupgrade cluster lain (tidak ditampilkan dalam tutorial ini).
Untuk mengosongkan cluster blue, perbarui resource MulticlusterService di
cluster ingress-cluster dan hapus cluster blue dari spesifikasi
clusters.
Hapus cluster blue
Di Cloud Shell, update resource
MulticlusterServicedi clusteringress-config:kubectl --context ${INGRESS_CONFIG_CLUSTER} \ apply -f ${WORKDIR}/multicluster-manifests/mcs-green.yamlPastikan Anda hanya memiliki cluster
greendi spesifikasiclusters:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusterservice \ -o json | jq '.items[].spec.clusters'Outputnya adalah sebagai berikut:
[ { "link": "us-west1-c/green" } ]Hanya cluster
greenyang tercantum dalam spesifikasiclusters, sehingga hanya clustergreenyang ada dalam kumpulan load balancing.Anda dapat melihat metrik dari metrik Cloud Load Balancing di konsolGoogle Cloud . Buat URL:
echo "https://console.cloud.google.com/monitoring/dashboards/builder/${DASH_ID}/?project=${PROJECT}&timeDomain=1h"Di browser, buka URL yang dihasilkan dari perintah sebelumnya.
Diagram menunjukkan bahwa hanya cluster
greenyang menerima traffic.
Upgrade cluster blue
Setelah cluster blue tidak lagi menerima traffic klien, Anda dapat mengupgrade cluster (bidang kontrol dan node).
Di Cloud Shell, dapatkan versi cluster saat ini:
gcloud container clusters listOutputnya mirip dengan hal berikut ini:
NAME: ingress-config LOCATION: us-west1-a MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.233.186.135 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 4 STATUS: RUNNING NAME: blue LOCATION: us-west1-b MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 34.82.35.222 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING NAME: green LOCATION: us-west1-c MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.185.204.26 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNINGVersi cluster Anda mungkin berbeda-beda, bergantung pada kapan Anda menyelesaikan tutorial ini.
Dapatkan daftar versi
MasterVersionsyang tersedia di zona:gcloud container get-server-config --location us-west1-b --format=json | jq \ '.validMasterVersions[0:20]'Outputnya mirip dengan hal berikut ini:
[ "1.24.1-gke.1400", "1.23.7-gke.1400", "1.23.6-gke.2200", "1.23.6-gke.1700", "1.23.6-gke.1501", "1.23.6-gke.1500", "1.23.5-gke.2400", "1.23.5-gke.1503", "1.23.5-gke.1501", "1.22.10-gke.600", "1.22.9-gke.2000", "1.22.9-gke.1500", "1.22.9-gke.1300", "1.22.8-gke.2200", "1.22.8-gke.202", "1.22.8-gke.201", "1.22.8-gke.200", "1.21.13-gke.900", "1.21.12-gke.2200", "1.21.12-gke.1700" ]Dapatkan daftar versi
NodeVersionsyang tersedia di zona:gcloud container get-server-config --location us-west1-b --format=json | jq \ '.validNodeVersions[0:20]'Outputnya mirip dengan hal berikut ini:
[ "1.24.1-gke.1400", "1.23.7-gke.1400", "1.23.6-gke.2200", "1.23.6-gke.1700", "1.23.6-gke.1501", "1.23.6-gke.1500", "1.23.5-gke.2400", "1.23.5-gke.1503", "1.23.5-gke.1501", "1.22.10-gke.600", "1.22.9-gke.2000", "1.22.9-gke.1500", "1.22.9-gke.1300", "1.22.8-gke.2200", "1.22.8-gke.202", "1.22.8-gke.201", "1.22.8-gke.200", "1.22.7-gke.1500", "1.22.7-gke.1300", "1.22.7-gke.900" ]Tetapkan variabel lingkungan untuk versi
MasterVersiondanNodeVersionyang ada dalam daftarMasterVersionsdanNodeVersions, serta lebih tinggi dari versi saat ini untukblue, misalnya:export UPGRADE_VERSION="1.22.10-gke.600"Tutorial ini menggunakan versi
1.22.10-gke.600. Versi cluster Anda mungkin berbeda, tergantung pada versi yang tersedia saat Anda menyelesaikan tutorial ini. Untuk mengetahui informasi selengkapnya tentang cara melakukan upgrade, lihat mengupgrade cluster dan kumpulan node.Upgrade node
control planeuntuk clusterblue:gcloud container clusters upgrade blue \ --location us-west1-b --master --cluster-version ${UPGRADE_VERSION}Untuk mengonfirmasi upgrade, tekan
Y.Proses ini membutuhkan waktu beberapa menit. Tunggu hingga upgrade selesai sebelum melanjutkan.
Setelah update selesai, output-nya adalah sebagai berikut:
Updated [https://container.googleapis.com/v1/projects/gke-multicluster-upgrades/zones/us-west1-b/clusters/blue].Upgrade node di cluster
blue:gcloud container clusters upgrade blue \ --location=us-west1-b --node-pool=default-pool \ --cluster-version ${UPGRADE_VERSION}Untuk mengonfirmasi update, tekan
Y.Proses ini membutuhkan waktu beberapa menit. Tunggu hingga upgrade node selesai sebelum melanjutkan.
Setelah upgrade selesai, output-nya adalah sebagai berikut:
Upgrading blue... Done with 3 out of 3 nodes (100.0%): 3 succeeded...done. Updated [https://container.googleapis.com/v1/projects/gke-multicluster-upgrades/zones/us-west1-b/clusters/blue].Pastikan cluster
bluetelah diupgrade:gcloud container clusters listOutputnya mirip dengan hal berikut ini:
NAME: ingress-config LOCATION: us-west1-a MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.233.186.135 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 4 STATUS: RUNNING NAME: blue LOCATION: us-west1-b MASTER_VERSION: 1.22.10-gke.600 MASTER_IP: 34.82.35.222 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.10-gke.600 NUM_NODES: 3 STATUS: RUNNING NAME: green LOCATION: us-west1-c MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.185.204.26 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING
Menambahkan kembali cluster blue ke kumpulan load balancing
Di bagian ini, Anda akan menambahkan kembali cluster blue ke kumpulan load balancing.
Di Cloud Shell, pastikan bahwa deployment aplikasi berjalan pada cluster
bluesebelum Anda menambahkannya kembali ke kumpulan load balancing:kubectl --context ${BLUE_CLUSTER} get podsOutputnya mirip dengan hal berikut ini:
NAME READY STATUS RESTARTS AGE whereami-deployment-756c7dc74c-xdnb6 1/1 Running 0 17mUpdate resource
MutliclusterServiceuntuk menambahkan clusterbluekembali ke kumpulan load balancing:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply \ -f ${WORKDIR}/multicluster-manifests/mcs-blue-green.yamlVerifikasi bahwa Anda memiliki cluster
bluedangreendi spesifikasi cluster:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusterservice \ -o json | jq '.items[].spec.clusters'Outputnya adalah sebagai berikut:
[ { "link": "us-west1-b/blue" }, { "link": "us-west1-c/green" } ]Cluster
bluedangreenkini dalam spesifikasiclusters.Metrik dari metrik Cloud Load Balancing tersedia di konsolGoogle Cloud . Buat URL:
echo "https://console.cloud.google.com/monitoring/dashboards/builder/${DASH_ID}/?project=${PROJECT}&timeDomain=1h"Di browser, buka URL yang dihasilkan dari perintah sebelumnya.
Diagram menunjukkan bahwa cluster blue dan green menerima traffic dari generator beban menggunakan load balancer.
Selamat. Anda berhasil mengupgrade cluster GKE dalam arsitektur multi-cluster menggunakan Multi Cluster Ingress.
Untuk mengupgrade cluster
green, ulangi proses untuk menguras dan mengupgrade cluster blue, dengan menggantibluedengangreenseluruhnya.