Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Halaman ini menjelaskan cara melakukan pengujian failover database dan cluster untuk lingkungan yang sangat tangguh.
Pengujian failover untuk lingkungan Anda menyimulasikan gangguan total pada zona di pusat data. Dalam skenario seperti itu, pemadaman layanan zona cluster dan pemadaman layanan zona database dapat terjadi secara bersamaan. Dengan melakukan dua pengujian failover, Anda dapat memantau performa lingkungan yang sangat tangguh dalam melakukan failover dan memeriksa pengaruhnya terhadap DAG dan tugas Anda.
Sebelum memulai
Untuk melakukan pengujian failover, Akun Google 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 langsung di GKE.
Jika Anda menggunakan jaringan yang diizinkan, dan Anda harus menjalankan perintah
kubectl
dari mesin yang dapat mengakses endpoint bidang kontrol cluster GKE. Bergantung pada cara Anda menyiapkan akses ke endpoint bidang kontrol lingkungan, Anda dapat menggunakan beberapa opsi. Untuk mengetahui informasi selengkapnya, lihat Menjalankan perintah di lingkungan IP pribadi.
Memeriksa apakah lingkungan Anda berfungsi dengan baik
Pastikan untuk melakukan pengujian failover hanya pada lingkungan yang responsif. Untuk memeriksa apakah lingkungan Anda berfungsi dengan baik:
Di konsol Google Cloud , buka halaman Environments.
Dalam 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 uji failover database, yang menyimulasikan gangguan zona, dengan memicunya menggunakan perintah Google Cloud CLI. Misalnya, Anda mungkin ingin melakukannya untuk mengukur waktu yang dibutuhkan database lingkungan Anda untuk beralih ke zona lain.
Untuk melakukan pengujian failover database untuk lingkungan Anda:
Pastikan lingkungan Anda dalam kondisi baik.
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.
Periksa apakah zona utama database lingkungan Anda telah diubah:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Periksa metrik kualitas lingkungan Anda untuk memastikan bahwa lingkungan Anda dalam kondisi baik.
Database lingkungan Anda siap untuk melakukan failover lain saat metrik lingkungan Database tersedia untuk failover (
composer.googleapis.com/environment/database/available_for_failover
) menjadiTrue
. Untuk mengetahui 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 Anda, yang menyimulasikan pemadaman layanan zona. Misalnya, Anda mungkin ingin melakukannya untuk mengukur jumlah waktu yang diperlukan lingkungan Anda untuk beralih ke zona lain.
Memeriksa apakah lingkungan Anda berfungsi dengan baik
Sebelum memulai pengujian, pastikan lingkungan Anda dalam kondisi baik.
Mengonfigurasi kredensial untuk cluster lingkungan Anda
Untuk mendapatkan kredensial cluster:
Di konsol Google Cloud , buka halaman Environments.
Dalam 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 uji 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 gangguan. Jika Anda melakukan pengujian failover cluster bersama dengan pengujian failover database, sebaiknya pilih zona primer 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 menjadi tidak tersedia di zona tertentu. Tindakan ini akan mengeluarkan Pod secara paksa dari node di zona yang ditentukan dan mencegah penjadwalan ulang Pod di node ini. Karena Pod baru tidak dapat dijadwalkan, node baru 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.
Dalam daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
Buka tab Monitoring.
Periksa apakah metrik berikut "hijau" selama operasi failover, atau tetap berstatus "merah" paling lama beberapa menit.
- Kesehatan lingkungan
- Heartbeat scheduler
- Kesehatan server web
- Kesehatan database
- Pekerja yang aktif
- Penjadwal aktif
- Server web aktif
- Pemicu aktif
Perhatikan bahwa gangguan simulasi ditandai sebagai "Operasi pemeliharaan cluster".
Anda tidak perlu melakukan tindakan tambahan apa pun untuk mengembalikan cluster lingkungan Anda ke status siap melakukan failover setelah pengujian. Selama pengujian, cluster lingkungan akan otomatis menambahkan node baru yang menggantikan node yang terpengaruh oleh simulasi gangguan.