Cloud Composer 1 | Cloud Composer 2
Halaman ini menjelaskan cara melakukan pengujian database dan cluster failover untuk lingkungan Cloud Composer yang sangat tangguh.
Pengujian failover untuk lingkungan Anda menyimulasikan pemadaman total zona di pusat data. Dalam skenario semacam ini, pemadaman cluster di zona tertentu dan penonaktifan database menurut zona dapat terjadi secara bersamaan. Dengan melakukan dua pengujian failover, Anda dapat memantau bagaimana lingkungan Anda yang sangat tangguh menjalankan failover dan memeriksa pengaruhnya terhadap DAG dan tugas Anda.
Sebelum memulai
Untuk melakukan uji failover, akun Anda harus memiliki peran dan izin berikut:
Izin
composer.environments.update
. Baca bagian Kontrol akses dengan IAM untuk mengetahui daftar peran yang memiliki izin ini.Peran Kubernetes Engine Cluster Admin (
roles/container.clusterAdmin
) untuk menjalankan perintahkubectl
di cluster lingkungan. Sebagai alternatif, Anda dapat menyediakan peran Kubernetes RBAC 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 bidang kontrol lingkungan, Anda dapat menggunakan beberapa opsi. Untuk informasi selengkapnya, lihat Menjalankan perintah di lingkungan IP pribadi.
Memastikan lingkungan Anda sehat
Pastikan untuk menjalankan pengujian failover cluster database dan lingkungan hanya di lingkungan yang responsif.
Untuk memeriksa apakah lingkungan Anda sehat:
Di konsol Google Cloud, buka halaman Environments.
Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.
Buka tab Pemantauan.
Pastikan semua metrik kesehatan berwarna hijau.
Melakukan uji failover database
Anda dapat melakukan pengujian failover database, yang menyimulasikan pemadaman layanan di zona tertentu, 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 bagi 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 diubah:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Periksa metrik kesehatan lingkungan Anda untuk memastikan lingkungan Anda sehat.
Database lingkungan Anda siap untuk failover lagi 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 uji failover cluster lingkungan Anda
Anda dapat melakukan pengujian failover untuk cluster lingkungan Anda, yang menyimulasikan pemadaman layanan di zona tertentu. Misalnya, Anda mungkin ingin melakukannya untuk mengukur jumlah waktu yang diperlukan bagi lingkungan Anda 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.
Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.
Buka tab Environment configuration.
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
Periksa zona dan node tempat beban kerja dijalankan di cluster lingkungan Anda. Anda menggunakan informasi ini untuk menyimulasikan pemadaman layanan di zona tertentu nanti. Anda juga dapat menjalankan perintah ini lagi saat melakukan uji failover untuk melihat cara cluster lingkungan Anda menjalankan 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
Mengosongkan node
Pilih zona tempat Anda ingin melakukan simulasi pemadaman. Jika Anda melakukan pengujian failover cluster bersama dengan pengujian failover database, sebaiknya pilih zona utama dari instance Cloud SQL yang sangat tersedia di lingkungan Anda.
Misalnya, jika instance Cloud SQL utama berjalan di us-central1-a
, Anda dapat menyimulasikan penghentian di seluruh zona us-central1-a
dengan terlebih dahulu menjalankan uji failover database, lalu pengujian failover cluster di us-central1-a
.
Perintah berikut menyimulasikan serangkaian node yang menjadi tidak tersedia di zona tertentu. Tindakan ini secara paksa mengeluarkan Pod dari node di zona yang ditentukan dan mencegah penjadwalan ulang Pod pada node ini. Karena Pod baru tidak dapat dijadwalkan, node baru ditambahkan ke cluster.
Perintah ini tidak memengaruhi beban kerja 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.
Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.
Buka tab Pemantauan.
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
Perlu diperhatikan bahwa pemadaman layanan yang disimulasikan ditandai sebagai "Operasi pemeliharaan cluster".
Anda tidak perlu melakukan tindakan tambahan untuk mengembalikan cluster lingkungan Anda ke kesiapan failover setelah pengujian. Selama pengujian, cluster lingkungan akan otomatis menambahkan node baru yang menggantikan node yang terpengaruh oleh pemadaman layanan yang disimulasikan.