Lakukan uji failover untuk lingkungan Cloud Composer yang sangat tangguh

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

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.

  3. Buka tab Pemantauan.

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

  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 diubah:

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

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

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.

  3. Buka tab Environment configuration.

  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

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.

  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
    

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

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

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.

  3. Buka tab Pemantauan.

  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

    Perlu diperhatikan bahwa pemadaman layanan yang disimulasikan ditandai sebagai "Operasi pemeliharaan cluster".

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

Langkah selanjutnya