Persyaratan peraturan umum adalah perusahaan dapat menunjukkan kemampuan disaster recovery (DR) mereka. Untuk aplikasi yang berjalan di cloud, persyaratan ini mencakup keandalan dan ketersediaan layanan saat server yang dihosting di satu zona tidak tersedia selama jangka waktu tertentu. Dokumen ini ditujukan untuk Admin dan arsitek, Operator, serta administrator Pencadangan dan disaster recovery (DR) yang ingin mempelajari cara menyimulasikan failover zona saat menggunakan cluster regional Standar Google Kubernetes Engine (GKE).
Cluster regional GKE dibuat di region yang dipilih pengguna, dan menjalankan bidang kontrol di VM yang terletak di beberapa zona dalam region yang dipilih. Cluster GKE Autopilot selalu bersifat regional, dan cluster GKE Standard dapat bersifat regional atau zonal. Tutorial ini menggunakan cluster regional GKE Standard. Node cluster berkomunikasi dengan bidang kontrol melalui load balancer, yang berarti lokasi node dan lokasi VM bidang kontrol tidak selalu cocok. Di konsol Google Cloud, Anda tidak dapat menonaktifkan zona tertentu saat menggunakan cluster regional. Untuk mengetahui informasi selengkapnya, lihat arsitektur cluster GKE.
Tutorial ini menyediakan tiga metode berbeda untuk menyimulasikan kegagalan zona. Anda dapat menyimulasikan kegagalan zona dan memverifikasi respons aplikasi yang benar menggunakan metode apa pun yang diperlukan untuk tujuan kepatuhan Anda sendiri.
Metode dalam dokumen ini juga berlaku untuk cluster zonal, termasuk zona tunggal dan multi-zona. Metode ini hanya memengaruhi node di zona yang ditargetkan, dan bidang kontrol GKE tidak terpengaruh.
Tujuan
- Buat cluster GKE Standard regional menggunakan konfigurasi default.
- Deploy aplikasi microservice contoh ke cluster regional.
- Simulasikan pemadaman zona menggunakan salah satu dari tiga metode berikut:
- Mengurangi zona kumpulan node di cluster regional.
- Gunakan node pool satu zona.
- Menghalangi dan mengosongkan node zona kegagalan target.
- Verifikasi ketersediaan microservice.
Biaya
Tutorial ini menggunakan komponen Google Cloudyang dapat ditagih berikut:
- Compute Engine
- Cluster mode GKE Standard
Gunakan Kalkulator Harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda perkirakan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API, Compute Engine APIs:
gcloud services enable container.googleapis.com
compute.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API, Compute Engine APIs:
gcloud services enable container.googleapis.com
compute.googleapis.com
Membuat cluster Standard regional
Sebelum menyimulasikan kegagalan zona, buat cluster regional dengan node pool multi-zona. Bidang kontrol dan node cluster direplikasi ke beberapa zona dalam region yang ditentukan.
Gunakan Google Cloud CLI untuk membuat cluster:
Buat cluster GKE Standard baru menggunakan konfigurasi default:
gcloud container clusters create CLUSTER_NAME \ --region REGION \ --num-nodes 2
Ganti parameter berikut:
CLUSTER_NAME
: nama untuk cluster Anda.REGION
: region untuk cluster Anda, sepertius-central1
.
GKE memerlukan waktu beberapa menit untuk membuat cluster dan memverifikasi bahwa semuanya berfungsi dengan benar. Dua node dibuat di setiap zona region yang Anda tentukan.
Periksa zona setiap node yang dibuat di langkah sebelumnya:
kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
Outputnya akan terlihat seperti contoh berikut:
NAME ZONE INT_IP regional-cluster-1-default-pool-node1 asia-southeast1-c 10.128.0.37 regional-cluster-1-default-pool-node2 asia-southeast1-c 10.128.0.36 regional-cluster-1-default-pool-node3 asia-southeast1-b 10.128.0.38 regional-cluster-1-default-pool-node4 asia-southeast1-b 10.128.0.33 regional-cluster-1-default-pool-node5 asia-southeast1-a 10.128.0.35 regional-cluster-1-default-pool-node6 asia-southeast1-a 10.128.0.34
Hubungkan ke cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION
Men-deploy aplikasi microservice contoh
Untuk melihat efek simulasi failover dalam dokumen ini, deploy aplikasi berbasis microservices sampel ke cluster Anda. Dalam dokumen ini, Anda akan menggunakan contoh aplikasi Cymbal Bank:
Di shell, clone repositori GitHub berikut dan ubah ke dalam direktori:
git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git cd bank-of-anthos/
Deploy aplikasi contoh Cymbal Bank ke cluster GKE yang Anda buat di bagian sebelumnya:
kubectl apply -f ./extras/jwt/jwt-secret.yaml kubectl apply -f ./kubernetes-manifests
Tunggu hingga Pod siap:
kubectl get pods
Setelah beberapa menit, Anda akan melihat Pod dalam status
Running
:NAME READY STATUS RESTARTS AGE accounts-db-0 1/1 Running 0 16s balancereader-7dc7d9ff57-sstm5 0/1 Running 0 15s contacts-7ddc76d94-rr28x 0/1 Running 0 14s frontend-747b84bff4-2mtlv 0/1 Running 0 13s ledger-db-0 1/1 Running 0 13s ledgerwriter-f6cc7889d-9qjfg 0/1 Running 0 13s loadgenerator-57d4cb57cc-zqvqb 1/1 Running 0 13s transactionhistory-5dd7c7fd77-lwkv8 0/1 Running 0 12s userservice-cd5ddb4bb-wwhml 0/1 Running 0 12s
Jika semua Pod dalam status
Running
, dapatkan alamat IP eksternal Service frontend:kubectl get service frontend | awk '{print $4}'
Di jendela browser web, buka alamat IP yang ditampilkan dalam output perintah
kubectl get service
untuk mengakses instance Cymbal Bank Anda.Kredensial default diisi secara otomatis, sehingga Anda dapat login ke aplikasi dan menjelajahi beberapa contoh transaksi dan saldo. Tidak ada tindakan khusus yang perlu Anda lakukan, selain untuk mengonfirmasi bahwa Cymbal Bank berhasil berjalan. Mungkin perlu waktu satu atau dua menit agar semua Layanan mulai dengan benar dan memungkinkan Anda login. Tunggu hingga semua Pod berada dalam status
Running
dan Anda berhasil login ke situs Cymbal Bank sebelum melanjutkan ke bagian berikutnya dan menyimulasikan kegagalan zona.
Menyimulasikan kegagalan zona
Di bagian ini, Anda akan menyimulasikan kegagalan dengan salah satu zona. Ada tiga cara berbeda untuk menyimulasikan failover ini. Anda hanya perlu memilih satu metode. Simulasikan kegagalan zona dan verifikasi respons aplikasi yang benar menggunakan metode apa pun yang diperlukan untuk tujuan kepatuhan Anda sendiri.
Mengurangi zona node pool
Secara default, node pool cluster regional memiliki node yang mencakup semua zona di region-nya. Dalam diagram berikut, Cloud Load Balancing mendistribusikan traffic ke kumpulan node yang mencakup tiga zona. Setiap zona memiliki dua node, dan Pod Anda dapat berjalan di node di zona mana pun.
Di bagian ini, Anda akan menyimulasikan kegagalan zona dengan memperbarui node pool agar hanya berjalan di dua dari tiga zona. Pendekatan ini memverifikasi bahwa aplikasi Anda dapat merespons hilangnya zona dengan mendistribusikan ulang Pod dan traffic di seluruh zona lain dengan benar.
Untuk mengupdate node pool agar hanya berjalan di zona tertentu dan menyimulasikan kegagalan, selesaikan langkah-langkah berikut:
Periksa ketersediaan cluster dan Layanan regional:
kubectl get po -o wide \ kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
Hasilnya mirip dengan contoh output berikut:
NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 6m30s 10.28.1.5 regional-cluster-1-default-pool-node3 balancereader-7dc7d9ff57-shwg5 1/1 Running 0 6m30s 10.28.5.6 regional-cluster-1-default-pool-node1 contacts-7ddc76d94-qv4x5 1/1 Running 0 6m29s 10.28.4.6 regional-cluster-1-default-pool-node2 frontend-747b84bff4-xvjxq 1/1 Running 0 6m29s 10.28.3.6 regional-cluster-1-default-pool-node6 ledger-db-0 1/1 Running 0 6m29s 10.28.5.7 regional-cluster-1-default-pool-node1 ledgerwriter-f6cc7889d-mttmb 1/1 Running 0 6m29s 10.28.1.6 regional-cluster-1-default-pool-node3 loadgenerator-57d4cb57cc-7fvrc 1/1 Running 0 6m29s 10.28.4.7 regional-cluster-1-default-pool-node2 transactionhistory-5dd7c7fd77-cmc2w 1/1 Running 0 6m29s 10.28.3.7 regional-cluster-1-default-pool-node6 userservice-cd5ddb4bb-zfr2g 1/1 Running 0 6m28s 10.28.5.8 regional-cluster-1-default-pool-node1 NAME ZONE INT_IP regional-cluster-1-default-pool-node5 asia-southeast1-c 10.148.0.6 regional-cluster-1-default-pool-node6 asia-southeast1-c 10.148.0.7 regional-cluster-1-default-pool-node2 asia-southeast1-a 10.148.0.8 regional-cluster-1-default-pool-node1 asia-southeast1-a 10.148.0.9 regional-cluster-1-default-pool-node3 asia-southeast1-b 10.148.0.5 regional-cluster-1-default-pool-node4 asia-southeast1-b 10.148.0.4
Dalam contoh ini, semua beban kerja Cymbal Bank di-deploy di semua zona. Untuk menyimulasikan kegagalan, Anda menonaktifkan salah satu zona, seperti
asia-southeast1-c
, tempat layanan frontend di-deploy.Menyimulasikan pemadaman layanan zona. Perbarui node pool yang ada (
default-pool
) agar hanya menentukan dua zona dari tiga zona:gcloud container node-pools update default-pool \ --cluster=CLUSTER_NAME \ --node-locations=ZONE_A, ZONE_B \ --region=REGION
Ganti
ZONE_A, ZONE_B
dengan dua zona tempat Anda ingin node pool terus berjalan.Verifikasi ketersediaan microservice setelah Anda mengupdate node pool:
kubectl get po -o wide kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
Output akan terlihat seperti contoh berikut:
NAME ZONE INT_IP regional-cluster-1-default-pool-node2 asia-southeast1-a 10.148.0.8 regional-cluster-1-default-pool-node1 asia-southeast1-a 10.148.0.9 regional-cluster-1-default-pool-node3 asia-southeast1-b 10.148.0.5 regional-cluster-1-default-pool-node4 asia-southeast1-b 10.148.0.4 NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 28m 10.28.1.5 regional-cluster-1-default-pool-node3 balancereader-7dc7d9ff57-shwg5 1/1 Running 0 28m 10.28.5.6 regional-cluster-1-default-pool-node1 contacts-7ddc76d94-qv4x5 1/1 Running 0 28m 10.28.4.6 regional-cluster-1-default-pool-node2 frontend-747b84bff4-mdnkd 1/1 Running 0 9m21s 10.28.1.7 regional-cluster-1-default-pool-node3 ledger-db-0 1/1 Running 0 28m 10.28.5.7 regional-cluster-1-default-pool-node1 ledgerwriter-f6cc7889d-mttmb 1/1 Running 0 28m 10.28.1.6 regional-cluster-1-default-pool-node3 loadgenerator-57d4cb57cc-7fvrc 1/1 Running 0 28m 10.28.4.7 regional-cluster-1-default-pool-node2 transactionhistory-5dd7c7fd77-w2vqs 1/1 Running 0 9m20s 10.28.4.8 regional-cluster-1-default-pool-node2 userservice-cd5ddb4bb-zfr2g 1/1 Running 0 28m 10.28.5.8 regional-cluster-1-default-pool-node1
Dalam contoh output ini,
asia-southeast1-c
tidak digunakan lagi. Layanan frontend yang Anda akses dari browser dengan URLhttp://EXTERNAL_IP
masih dapat diakses. Pengguna masih dapat melakukan tindakan deposit dan pembayaran, meskipun salah satu zona tidak lagi tersedia.
Menggunakan kumpulan node satu zona
Di bagian ini, Anda akan menyimulasikan kegagalan zona dengan menghapus dua node pool. Pendekatan ini memverifikasi bahwa aplikasi Anda dapat merespons hilangnya kumpulan node dengan mendistribusikan ulang Pod dan traffic di seluruh kumpulan node di zona lain dengan benar. Untuk menyimulasikan pemadaman layanan zona di cluster regional, Anda perlu memperluas cluster dasar yang dibuat sebelumnya, yang menjalankan aplikasi Cymbal Bank di beberapa node pool. Metode simulasi gangguan zona ini lebih mencerminkan kegagalan zona yang sebenarnya daripada contoh pertama pembaruan zona aktif di node pool, karena lebih umum jika ada beberapa node pool dalam cluster:
Cluster yang Anda build di bagian ini untuk menyimulasikan kegagalan node pool satu zona menyertakan komponen berikut:
Node pool default — biasanya dibuat saat Anda membuat cluster GKE Standard regional — yang merupakan node pool multi-zona (
default-pool
).Cluster ini dengan satu
default-pool
adalah yang Anda buat sebelumnya dalam dokumen ini.Kumpulan node tambahan (
zonal-node-pool-1
danzonal-node-pool-2
) yang juga menjalankan layanan untuk contoh aplikasi Cymbal Bank.
Garis putus-putus dalam diagram menunjukkan bagaimana traffic hanya menayangkan zonal-node-pool-2
setelah Anda menyimulasikan kegagalan di default-pool
dan zonal-node-pool-1
.
Untuk membuat node pool tambahan dan menyimulasikan kegagalan, selesaikan langkah-langkah berikut:
Periksa ketersediaan cluster regional:
gcloud container node-pools list \ --cluster=CLUSTER_NAME \ --region REGION kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
Hasilnya mirip dengan contoh output berikut:
NAME: default-pool MACHINE_TYPE: e2-medium DISK_SIZE_GB: 100 NODE_VERSION: 1.27.8-gke.1067004 NAME ZONE. INT_IP regional-cluster-1-default-pool-node5-pzmc asia-southeast1-c 10.148.0.6 regional-cluster-1-default-pool-node6-qf1l asia-southeast1-c 10.148.0.7 regional-cluster-1-default-pool-node2-dlk2 asia-southeast1-a 10.148.0.8 regional-cluster-1-default-pool-node1-pkfd asia-southeast1-a 10.148.0.9 regional-cluster-1-default-pool-node3-6b6n asia-southeast1-b 10.148.0.5 regional-cluster-1-default-pool-node4-h0lc asia-southeast1-b 10.148.0.4
Dalam contoh output ini, semua Pod Cymbal Bank di-deploy di semua zona dalam cluster yang sama dan berjalan di
default-pool
yang ada.Buat dua node pool satu zona baru:
gcloud beta container node-pools create zonal-node-pool-1 \ --cluster CLUSTER_NAME \ --region REGION \ --num-nodes 4 \ --node-locations ZONE_A gcloud beta container node-pools create zonal-node-pool-2 \ --cluster CLUSTER_NAME \ --region REGION \ --num-nodes 4 \ --node-locations ZONE_B
Ganti
ZONE_A
danZONE_B
dengan dua zona tempat Anda ingin node pool zona tunggal baru berjalan.Untuk menyimulasikan kegagalan zona, hapus node pool regional
default-pool
dan salah satu node pool satu zona baru:gcloud container node-pools delete default-pool \ --cluster=CLUSTER_NAME \ --region=REGION gcloud container node-pools delete zonal-node-pool-1 \ --cluster=CLUSTER_NAME \ --region=REGION
Selama proses penghapusan
node-pool
, workload dinonaktifkan dan dijadwalkan ulang ke kumpulan node lain yang tersedia. Saat proses ini terjadi, Layanan dan Deployment tidak tersedia. Perilaku ini berarti bahwa periode downtime perlu ditentukan untuk pelaporan atau dokumentasi DR.Verifikasi ketersediaan microservice yang berkelanjutan:
kubectl get po -o wide \ kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
Outputnya akan terlihat seperti contoh berikut:
NAME ZONE INT_IP regional-cluster-1-node-pool3-node1 asia-southeast1-b 10.148.0.8 regional-cluster-1-node-pool3-node2 asia-southeast1-b 10.148.0.9 regional-cluster-1-node-pool3-node3 asia-southeast1-b 10.148.0.5 regional-cluster-1-node-pool3-node4 asia-southeast1-b 10.148.0.4 NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 28m 10.28.1.5 regional-cluster-1-zonal-node-pool-2-node3 balancereader-7dc7d9ff57-shwg5 1/1 Running 0 28m 10.28.5.6 regional-cluster-1-zonal-node-pool-2-node1 contacts-7ddc76d94-qv4x5 1/1 Running 0 28m 10.28.4.6 regional-cluster-1-zonal-node-pool-2-node2 frontend-747b84bff4-mdnkd 1/1 Running 0 9m21s 10.28.1.7 regional-cluster-1-zonal-node-pool-2-node3 ledger-db-0 1/1 Running 0 28m 10.28.5.7 regional-cluster-1-zonal-node-pool-2-node4 ledgerwriter-f6cc7889d-mttmb 1/1 Running 0 28m 10.28.1.6 regional-cluster-1-zonal-node-pool-2-node3 loadgenerator-57d4cb57cc-7fvrc 1/1 Running 0 28m 10.28.4.7 regional-cluster-1-zonal-node-pool-2-node2 transactionhistory-5dd7c7fd77-w2vqs 1/1 Running 0 9m20s 10.28.4.8 regional-cluster-1-zonal-node-pool-2-node2 userservice-cd5ddb4bb-zfr2g 1/1 Running 0 28m 10.28.5.8 regional-cluster-1-zonal-node-pool-2-node1
Dalam contoh output ini, karena
default-pool
danzonal-node-pool-1
tidak ada lagi, semua Layanan berjalan dizonal-node-pool-2
.
Mengisolasi dan mengosongkan node di zona
Di bagian ini, Anda akan mengisolasi dan mengosongkan node tertentu di cluster. Anda memisahkan dan menghabiskan semua node dalam satu zona, yang menyimulasikan hilangnya Pod yang berjalan di node tersebut di seluruh zona:
Dalam diagram ini, Anda mengisolasi dan mengosongkan node di zona pertama. Node di dua zona lainnya akan terus berjalan. Pendekatan ini memverifikasi bahwa aplikasi Anda dapat merespons hilangnya semua node di zona dengan mendistribusikan ulang Pod dan traffic dengan benar di seluruh node yang berjalan di zona lain.
Untuk mengisolasi dan menguras node di salah satu zona, yang menyimulasikan kegagalan, selesaikan langkah-langkah berikut:
Periksa ketersediaan cluster regional dan Layanan. Lihat nama node zona kegagalan target. Anda ingin menentukan zona tempat Pod frontend berjalan:
kubectl get pods -o wide
Output akan terlihat seperti contoh berikut:
NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 4m7s 10.96.4.4 regional-cluster-1-default-pool-node2 balancereader-7dc7d9ff57-lv4z7 1/1 Running 0 4m7s 10.96.1.5 regional-cluster-1-default-pool-node1 contacts-7ddc76d94-wxvg5 1/1 Running 0 4m7s 10.96.6.11 regional-cluster-1-default-pool-node3 frontend-747b84bff4-gvktl 1/1 Running 0 4m7s 10.96.1.4 regional-cluster-1-default-pool-node1 ledger-db-0 1/1 Running 0 4m7s 10.96.4.5 regional-cluster-1-default-pool-node2 ledger-db-1 1/1 Running 0 3m50s 10.96.0.13 regional-cluster-1-default-pool-node5 ledgerwriter-f6cc7889d-4hqbm 1/1 Running 0 4m6s 10.96.0.12 regional-cluster-1-default-pool-node5 loadgenerator-57d4cb57cc-fmq52 1/1 Running 0 4m6s 10.96.4.6 regional-cluster-1-default-pool-node2 transactionhistory-5dd7c7fd77-72zpx 1/1 Running 0 4m6s 10.96.6.12 regional-cluster-1-default-pool-node3 userservice-cd5ddb4bb-b7862 1/1 Running 0 4m6s 10.96.1.6 regional-cluster-1-default-pool-node1
Kaitkan Pod yang tercantum dalam output sebelumnya dengan zona node:
kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
Output akan terlihat seperti contoh berikut:
NAME ZONE INT_IP regional-cluster-1-default-pool-node1 asia-southeast1-b 10.148.0.41 regional-cluster-1-default-pool-node2 asia-southeast1-b 10.148.0.42 regional-cluster-1-default-pool-node3 asia-southeast1-a 10.148.0.37 regional-cluster-1-default-pool-node4 asia-southeast1-a 10.148.0.38 regional-cluster-1-default-pool-node5 asia-southeast1-c 10.148.0.40 regional-cluster-1-default-pool-node6 asia-southeast1-c 10.148.0.39
Dalam contoh output sebelumnya, Pod frontend berada di
regional-cluster-1-default-pool-node1
di zonaasia-southeast1-b
.Pada langkah berikutnya, Anda akan melacak semua node di zona
asia-southeast1-b
, yang dalam contoh output ini adalahregional-cluster-1-default-pool-node1
danregional-cluster-1-default-pool-node2
Menghalangi dan mengosongkan node target di salah satu zona. Dalam contoh ini, itulah dua node di
asia-southeast1-b
:kubectl drain regional-cluster-1-default-pool-node1 \ --delete-emptydir-data --ignore-daemonsets kubectl drain regional-cluster-1-default-pool-node2 \ --delete-emptydir-data --ignore-daemonsets
Perintah ini menandai node sebagai tidak dapat dijadwalkan, dan menyimulasikan kegagalan node. Kubernetes menjadwalkan ulang Pod ke node lain di zona yang berfungsi.
Lihat tempat Pod frontend baru dan contoh Pod Cymbal Bank lainnya yang sebelumnya berjalan di node di zona kegagalan kini dijadwalkan ulang:
kubectl get po -o wide kubectl get node -o=custom-columns='NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone,INT_IP:.status.addresses[0].address'
Output akan terlihat seperti contoh berikut:
NAME READY STATUS RESTARTS AGE IP NODE accounts-db-0 1/1 Running 0 4m7s 10.96.4.4 regional-cluster-1-default-pool-node4 balancereader-7dc7d9ff57-lv4z7 1/1 Running 0 4m7s 10.96.1.5 regional-cluster-1-default-pool-node6 contacts-7ddc76d94-wxvg5 1/1 Running 0 4m7s 10.96.6.11 regional-cluster-1-default-pool-node3 frontend-747b84bff4-gvktl 1/1 Running 0 4m7s 10.96.1.4 regional-cluster-1-default-pool-node3 ledger-db-0 1/1 Running 0 4m7s 10.96.4.5 regional-cluster-1-default-pool-node6 ledger-db-1 1/1 Running 0 3m50s 10.96.0.13 regional-cluster-1-default-pool-node5 ledgerwriter-f6cc7889d-4hqbm 1/1 Running 0 4m6s 10.96.0.12 regional-cluster-1-default-pool-node5 loadgenerator-57d4cb57cc-fmq52 1/1 Running 0 4m6s 10.96.4.6 regional-cluster-1-default-pool-node4 transactionhistory-5dd7c7fd77-72zpx 1/1 Running 0 4m6s 10.96.6.12 regional-cluster-1-default-pool-node3 userservice-cd5ddb4bb-b7862 1/1 Running 0 4m6s 10.96.1.6 regional-cluster-1-default-pool-node3 NAME ZONE INT_IP regional-cluster-1-default-pool-node3 asia-southeast1-a 10.148.0.37 regional-cluster-1-default-pool-node4 asia-southeast1-a 10.148.0.38 regional-cluster-1-default-pool-node5 asia-southeast1-c 10.148.0.40 regional-cluster-1-default-pool-node6 asia-southeast1-c 10.148.0.39
Dalam contoh output ini, tidak ada contoh Pod Cymbal Bank yang berjalan di node yang diisolasi, dan semua Pod kini hanya berjalan di dua zona lainnya.
Anggaran Gangguan Pod (PDB) di node mungkin memblokir pengosongan node. Evaluasi kebijakan PDB sebelum tindakan kordon dan pembuangan. Untuk lebih memahami PDB dan hubungannya dengan pengelolaan gangguan, lihat cara memastikan keandalan dan waktu beroperasi untuk cluster GKE Anda.
Pembersihan
Agar tidak menimbulkan tagihan ke akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini:
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Langkah berikutnya
- Pelajari cara menyimulasikan pemadaman layanan zona untuk grup instance terkelola (MIG) regional.
- Pelajari pemulihan dari bencana di Google Cloud.
- Siapkan PostgreSQL dengan ketersediaan tinggi di beberapa zona.
- Pertimbangan Anggaran Disrupsi Pod.
- Pelajari persistent disk zonal versus regional.
- Pelajari cara menjalankan database ketersediaan tinggi di GKE.
- Cari tahu lebih lanjut praktik terbaik Disaster Recovery di Google Cloud.
- Pelajari Pencadangan untuk GKE.