Melakukan pengujian failover untuk lingkungan yang sangat tangguh

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 perintah kubectl 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:

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Monitoring.

  4. 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:

  1. Pastikan lingkungan Anda sehat.

  2. 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
    
  3. 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
    
  4. Tunggu hingga pengujian failover database selesai. Proses ini dapat memerlukan waktu hingga 3 menit.

  5. Pastikan zona utama database lingkungan Anda telah diubah:

    gcloud composer environments fetch-database-properties \
        ENVIRONMENT_NAME \
        --location LOCATION
    
  6. Periksa metrik kesehatan lingkungan Anda untuk memastikan bahwa lingkungan Anda sehat.

  7. Database lingkungan Anda akan siap untuk failover lain saat metrik lingkungan Database tersedia untuk failover (composer.googleapis.com/environment/database/available_for_failover) menjadi True. 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:

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Konfigurasi lingkungan.

  4. Klik Lihat detail cluster.

  5. Klik Connect.

  6. 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.

  1. Periksa node dan zona:

    kubectl get nodes \
      -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
    
  2. 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
    
  3. 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

Metrik lingkungan selama simulasi pemadaman layanan zona
Gambar 1. Metrik lingkungan selama simulasi pemadaman layanan zona (klik untuk memperbesar)
  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Monitoring.

  4. 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".

  5. 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.

Langkah selanjutnya