Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini menjelaskan cara melakukan pengujian failover database dan cluster untuk lingkungan yang sangat tangguh.
Pengujian failover untuk lingkungan Anda menyimulasikan pemadaman total zona di data center. Dalam skenario tersebut, pemadaman layanan zona cluster dan pemadaman layanan zona database mungkin terjadi secara bersamaan. Dengan melakukan dua pengujian failover, Anda dapat memantau cara lingkungan yang sangat tangguh melakukan failover dan memeriksa pengaruhnya terhadap DAG dan tugas Anda.
Sebelum memulai
Untuk melakukan pengujian failover, akun Anda harus memiliki peran dan izin berikut:
Izin
composer.environments.update
. Lihat Kontrol akses dengan IAM untuk mengetahui daftar peran dengan izin ini.Peran Kubernetes Engine Cluster Admin (
roles/container.clusterAdmin
) untuk menjalankan perintahkubectl
di cluster lingkungan. Sebagai alternatif, Anda dapat menyediakan peran RBAC Kubernetes secara langsung di GKE.
Jika menggunakan jaringan yang diizinkan, Anda harus menjalankan perintah
kubectl
dari mesin yang dapat mengakses endpoint bidang kontrol cluster GKE. Bergantung pada cara menyiapkan akses ke endpoint panel kontrol lingkungan, Anda dapat menggunakan beberapa opsi. Untuk informasi selengkapnya, lihat Menjalankan perintah di lingkungan IP pribadi.
Memastikan lingkungan Anda sehat
Pastikan untuk melakukan pengujian failover cluster database dan lingkungan hanya di lingkungan yang sehat.
Untuk memeriksa apakah lingkungan Anda sehat:
Di konsol Google Cloud, buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
Buka tab Monitoring.
Pastikan semua metrik kesehatan berwarna hijau.
Melakukan pengujian failover database
Anda dapat melakukan pengujian failover database, yang menyimulasikan pemadaman zona, dengan memicunya menggunakan perintah Google Cloud CLI. Misalnya, Anda mungkin ingin melakukannya untuk mengukur jumlah waktu yang diperlukan database lingkungan Anda untuk beralih ke zona lain.
Untuk melakukan pengujian failover database untuk lingkungan Anda:
Pastikan lingkungan Anda sehat.
Dapatkan zona utama database lingkungan Anda:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Ganti kode berikut:
ENVIRONMENT_NAME
: nama lingkungan Cloud Composer Anda.LOCATION
: region tempat lingkungan berada.
Contoh:
gcloud composer environments fetch-database-properties \ example-environment \ --location us-central1
Mulai pengujian failover database:
gcloud composer environments database-failover \ ENVIRONMENT_NAME \ --location LOCATION
Ganti kode berikut:
ENVIRONMENT_NAME
: nama lingkungan Cloud Composer Anda.LOCATION
: region tempat lingkungan berada.
Contoh:
gcloud composer environments database-failover \ example-environment \ --location us-central1
Tunggu hingga pengujian failover database selesai. Proses ini dapat memerlukan waktu hingga 3 menit.
Pastikan zona utama database lingkungan Anda telah diubah:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Periksa metrik kesehatan lingkungan Anda untuk memastikan bahwa lingkungan Anda sehat.
Database lingkungan Anda akan siap untuk failover lain saat metrik lingkungan Database tersedia untuk failover (
composer.googleapis.com/environment/database/available_for_failover
) menjadiTrue
. Untuk informasi selengkapnya tentang cara melihat metrik lingkungan di Cloud Monitoring, lihat Memantau lingkungan.
Melakukan pengujian failover cluster lingkungan Anda
Anda dapat melakukan pengujian failover untuk cluster lingkungan, yang menyimulasikan pemadaman layanan zona. Misalnya, Anda mungkin ingin melakukannya untuk mengukur waktu yang diperlukan lingkungan untuk beralih ke zona lain.
Memastikan lingkungan Anda sehat
Sebelum memulai pengujian, pastikan lingkungan Anda sehat.
Mengonfigurasi kredensial untuk cluster lingkungan Anda
Untuk mendapatkan kredensial cluster:
Di konsol Google Cloud, buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
Buka tab Konfigurasi lingkungan.
Klik Lihat detail cluster.
Klik Connect.
Salin dan jalankan perintah Google Cloud CLI yang ditampilkan.
Contoh:
gcloud container clusters get-credentials \ us-central1-exam-db23ee12-gke \ --region us-central1 \ --project example-project
Memeriksa cluster lingkungan Anda
Periksa zona dan node tempat workload berjalan di cluster lingkungan Anda. Anda akan menggunakan informasi ini untuk menyimulasikan pemadaman layanan zonal nanti. Anda juga dapat menjalankan perintah ini lagi saat melakukan pengujian failover untuk melihat cara cluster lingkungan Anda melakukan failover.
Periksa node dan zona:
kubectl get nodes \ -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
Periksa pod:
kubectl get pods --all-namespaces \ -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName \ --field-selector metadata.namespace!=kube-system
Lihat informasi yang lebih mendetail tentang pod:
kubectl get pods --all-namespaces -o wide \ --field-selector metadata.namespace!=kube-system
Menguras node
Pilih zona tempat Anda ingin menyimulasikan pemadaman. Jika Anda melakukan pengujian
failover cluster bersama dengan pengujian failover database,
Anda dapat memilih zona utama dari
instance Cloud SQL dengan ketersediaan tinggi di lingkungan Anda.
Misalnya, jika instance Cloud SQL utama berjalan di us-central1-a
,
Anda dapat menyimulasikan pemadaman layanan di seluruh zona us-central1-a
dengan terlebih dahulu
melakukan pengujian failover database, lalu pengujian failover cluster di
us-central1-a
.
Perintah berikut menyimulasikan sekumpulan node yang tidak tersedia di zona tertentu. Tindakan ini akan memaksa Pod keluar dari node di zona yang ditentukan dan mencegah penjadwalan ulang Pod di node ini. Karena Pod baru tidak dapat dijadwalkan, node baru akan ditambahkan ke cluster.
Perintah ini tidak memengaruhi workload yang berjalan di namespace composer-system
. Anda mungkin melihat pesan error terkait dalam output perintah. Hal ini
tidak memengaruhi pengujian failover. Node yang ada di zona yang dipilih
masih ditandai sebagai tidak dapat dijadwalkan.
Untuk menyimulasikan kegagalan zona cluster di zona yang dipilih:
kubectl get nodes -o name -l "topology.gke.io/zone=ZONE" | \
xargs kubectl drain \
--ignore-daemonsets --delete-emptydir-data --force --disable-eviction
Ganti kode berikut:
ZONE
: zona tempat Anda ingin menyimulasikan kegagalan zona cluster.
Memeriksa metrik lingkungan
Di konsol Google Cloud, buka halaman Environments.
Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
Buka tab Monitoring.
Pastikan metrik berikut berwarna "hijau" selama operasi failover, atau tetap berstatus "merah" selama maksimal beberapa menit.
- Kesehatan lingkungan
- Heartbeat scheduler
- Kesehatan server web
- Kesehatan database
- Pekerja yang aktif
- Penjadwal aktif
- Server web aktif
- Pemicu aktif
Perhatikan bahwa pemadaman simulasi ditandai sebagai "Operasi pemeliharaan cluster".
Anda tidak perlu melakukan tindakan tambahan apa pun untuk mengembalikan cluster lingkungan ke kesiapan failover setelah pengujian. Selama pengujian, cluster lingkungan akan otomatis menambahkan node baru yang menggantikan node yang terpengaruh oleh simulasi pemadaman.