Dokumen ini menjelaskan cara menyiapkan health check berbasis aplikasi untuk melakukan perbaikan otomatis VM dalam grup instance terkelola (MIG). Panduan ini juga menjelaskan cara melakukan hal berikut: menggunakan health check tanpa autohealing, menghapus health check, melihat kebijakan autohealing, dan memeriksa status respons setiap VM.
Anda dapat mengonfigurasi health check berbasis aplikasi untuk memverifikasi bahwa aplikasi Anda di VM merespons seperti yang diharapkan. Jika health check yang Anda konfigurasi mendeteksi bahwa aplikasi Anda di VM tidak merespons, MIG akan menandai VM tersebut sebagai tidak responsif dan memperbaikinya secara default. Memperbaiki VM berdasarkan health check berbasis aplikasi disebut autohealing.
Anda juga dapat menonaktifkan autohealing di MIG sehingga Anda dapat menggunakan health check tanpa memicu perbaikan untuk VM yang tidak responsif.
Untuk mengetahui lebih lanjut perbaikan di MIG, lihat Tentang memperbaiki VM untuk ketersediaan tinggi.
Sebelum memulai
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan region dan zona default.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Harga
Saat Anda menyiapkan health check berbasis aplikasi, setiap kali status respons VM berubah, Compute Engine secara default akan menulis entri log di Cloud Logging. Cloud Logging memberikan alokasi gratis per bulan yang kemudian diberi harga berdasarkan volume data. Untuk menghindari biaya, Anda dapat menonaktifkan log perubahan status respons.
Menyiapkan health check dan autohealing berbasis aplikasi
Untuk menyiapkan health check dan autohealing berbasis aplikasi di MIG, Anda harus melakukan hal berikut:
- Buat health check, jika Anda belum melakukannya.
- Konfigurasi kebijakan autohealing di MIG untuk menerapkan health check.
Membuat health check
Anda dapat menerapkan satu health check hingga maksimum 50 MIG. Jika Anda memiliki lebih dari 50 grup, buat beberapa health check.
Contoh berikut menunjukkan cara membuat health check untuk perbaikan otomatis. Anda dapat membuat health check regional atau global untuk autohealing di MIG. Dalam contoh ini, Anda membuat health check global yang mencari respons server web pada port 80. Untuk mengaktifkan pemeriksaan health check agar dapat menjangkau server web, konfigurasikan aturan firewall.
Konsol
Buat health check untuk autohealing yang lebih konservatif daripada health check load balancing.
Misalnya, buat health check yang mencari respons pada port
80dan yang dapat menoleransi kegagalan sebelum menandai VM sebagaiUNHEALTHYdan menyebabkannya dibuat ulang. Dalam contoh ini, VM ditandai sebagai responsif jika health check berhasil dikembalikan satu kali. VM ditandai sebagai tidak responsif jika health check gagal ditampilkan3kali berturut-turut.Di konsol Google Cloud , buka halaman Create a health check.
Beri nama health check, seperti
example-check.Pilih Scope. Anda dapat memilih Regional atau Global. Untuk contoh ini, pilih Global.
Untuk Protocol, pastikan HTTP dipilih.
Untuk Port, masukkan
80.Di bagian Kriteria kesehatan, berikan nilai berikut:
- Untuk Check interval, masukkan
5. - Untuk Timeout, masukkan
5. - Tetapkan Batas responsif untuk menentukan berapa banyak health check berhasil berurutan yang harus ditampilkan sebelum VM yang
tidak responsif ditandai sebagai responsif. Masukkan
1untuk contoh ini. - Tetapkan Nilai minimum tidak responsif untuk menentukan berapa banyak health check berturut-turut yang tidak berhasil yang harus ditampilkan sebelum VM responsif ditandai sebagai tidak responsif. Masukkan
3untuk contoh ini.
- Untuk Check interval, masukkan
Klik Create untuk membuat health check.
Buat aturan firewall untuk mengizinkan pemeriksaan health check terhubung ke aplikasi Anda.
Pemeriksaan health check berasal dari alamat dalam rentang
130.211.0.0/22dan35.191.0.0/16, jadi pastikan aturan firewall jaringan Anda mengizinkan health check untuk terhubung. Untuk contoh ini, MIG menggunakan jaringandefaultdan VM-nya diproses di port80. Jika port80belum terbuka di jaringan default, buat aturan firewall.Di konsol Google Cloud , buka halaman Firewall policies.
Klik Create firewall rule.
Masukkan Name untuk aturan firewall. Contoh,
allow-health-check.Untuk Network, pilih jaringan
default.Untuk Targets, pilih
All instances in the network.Untuk Source filter, pilih
IPv4 ranges.Untuk Source IPv4 ranges, masukkan
130.211.0.0/22dan35.191.0.0/16.Di bagian Protocols and ports, pilih Specified protocols and ports, lalu lakukan hal berikut:
- Pilih TCP.
- Di kolom Ports, masukkan
80.
Klik Create.
gcloud
Buat health check untuk autohealing yang lebih konservatif daripada health check load balancing.
Misalnya, buat health check yang mencari respons pada port
80dan yang dapat menoleransi kegagalan sebelum menandai VM sebagaiUNHEALTHYdan menyebabkannya dibuat ulang. Dalam contoh ini, VM ditandai sebagai responsif jika berhasil dikembalikan satu kali. VM ditandai sebagai tidak responsif jika tidak berhasil ditampilkan sebanyak3kali berturut-turut. Perintah berikut akan membuat health check global.gcloud compute health-checks create http example-check --port 80 \ --check-interval 30s \ --healthy-threshold 1 \ --timeout 10s \ --unhealthy-threshold 3 \ --global
Buat aturan firewall untuk mengizinkan pemeriksaan health check terhubung ke aplikasi Anda.
Pemeriksaan health check berasal dari alamat dalam rentang
130.211.0.0/22dan35.191.0.0/16, jadi pastikan aturan firewall Anda mengizinkan health check untuk terhubung. Untuk contoh ini, MIG menggunakan jaringandefault, dan VM-nya memproses port80. Jika port80belum terbuka di jaringan default, buat aturan firewall.gcloud compute firewall-rules create allow-health-check \ --allow tcp:80 \ --source-ranges 130.211.0.0/22,35.191.0.0/16 \ --network default
Terraform
Buat health check menggunakan resource
google_compute_http_health_check.Misalnya, buat health check yang mencari respons pada port
80dan yang dapat menoleransi kegagalan sebelum menandai VM sebagaiUNHEALTHYdan menyebabkan VM dibuat ulang. Dalam contoh ini, VM ditandai sebagai responsif jika berhasil dikembalikan satu kali. VM ditandai sebagai tidak responsif jika tidak berhasil ditampilkan sebanyak3kali berturut-turut. Permintaan berikut akan membuat health check global.Buat firewall menggunakan resource
google_compute_firewall.Pemeriksaan health check berasal dari alamat dalam rentang
130.211.0.0/22dan35.191.0.0/16, jadi pastikan aturan firewall Anda mengizinkan health check untuk terhubung. Untuk contoh ini, MIG menggunakan jaringandefaultdan VM-nya memproses port80. Jika port80belum terbuka di jaringan default, buat aturan firewall.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Buat health check untuk autohealing yang lebih konservatif daripada health check load balancing.
Misalnya, buat health check yang mencari respons pada port
80dan yang dapat menoleransi kegagalan sebelum menandai VM sebagaiUNHEALTHYdan menyebabkan VM dibuat ulang. Dalam contoh ini, VM ditandai sebagai responsif jika berhasil dikembalikan satu kali. VM ditandai sebagai tidak responsif jika tidak berhasil ditampilkan sebanyak3kali berturut-turut. Permintaan berikut akan membuat health check global.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/healthChecks { "name": "example-check", "type": "http", "port": 80, "checkIntervalSec": 30, "healthyThreshold": 1, "timeoutSec": 10, "unhealthyThreshold": 3 }Buat aturan firewall untuk mengizinkan pemeriksaan health check terhubung ke aplikasi Anda.
Pemeriksaan health check berasal dari alamat dalam rentang
130.211.0.0/22dan35.191.0.0/16, jadi pastikan aturan firewall Anda mengizinkan health check untuk terhubung. Untuk contoh ini, MIG menggunakan jaringandefaultdan VM-nya memproses port80. Jika port80belum terbuka di jaringan default, buat aturan firewall.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "allow-health-check", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "allowed": [ { "ports": [ "80" ], "IPProtocol": "tcp" } ] }Ganti
PROJECT_IDdengan project ID Anda.
Mengonfigurasi kebijakan autohealing di MIG
Di MIG, Anda hanya dapat menyiapkan satu kebijakan autohealing untuk menerapkan health check.
Sebelum mengonfigurasi kebijakan autohealing, jika Anda belum memiliki health check, buat health check. Anda dapat menggunakan health check regional atau global untuk autohealing di MIG. Health check regional mengurangi dependensi lintas region dan membantu mencapai residensi data, sedangkan health check global praktis jika Anda ingin menggunakan health check yang sama untuk MIG di beberapa region.
Jika Anda ingin mencegah pemicuan autohealing yang tidak disengaja saat menyiapkan health check baru atau ingin menggunakan health check tanpa autohealing, lihat Mengonfigurasi health check tanpa autohealing. Anda juga dapat menonaktifkan autohealing setelah mengonfigurasi health check di MIG.
Untuk mengonfigurasi kebijakan pemulihan otomatis, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Instance groups.
Di kolom Name pada daftar, klik nama MIG tempat Anda ingin menerapkan health check.
Klik Edit untuk mengubah MIG ini.
- Klik Instance lifecycle and autohealing untuk meluaskan bagian tersebut.
- Di bagian Autohealing, untuk Health check, pilih health check global atau regional.
- Untuk Penundaan awal, gunakan nilai default atau ubah sesuai
kebutuhan.
Penundaan awal adalah jumlah detik yang diperlukan VM baru untuk melakukan inisialisasi dan menjalankan skrip startup-nya. Selama periode penundaan awal VM, MIG mengabaikan health check yang gagal karena VM mungkin berada dalam proses startup. Tindakan ini mencegah MIG membuat ulang VM sebelum waktunya. Jika health check menerima respons yang responsif selama penundaan awal, ini menunjukkan bahwa proses startup telah selesai dan VM sudah siap. Timer penundaan awal dimulai saat kolom
currentActionVM berubah menjadiVERIFYING. Timer berhenti saat waktu yang ditetapkan selesai atau saat health check berhasil. Nilai penundaan awal harus antara0dan3600detik. Di konsol, nilai defaultnya adalah300detik.
Klik Simpan untuk menerapkan perubahan.
gcloud
Untuk mengonfigurasi kebijakan autohealing di MIG yang sudah ada, gunakan
perintah update. Misalnya, gunakan perintah berikut untuk mengonfigurasi kebijakan penyembuhan otomatis di MIG zona yang ada:
gcloud compute instance-groups managed update MIG_NAME \
--health-check HEALTH_CHECK_URL \
--initial-delay INITIAL_DELAY \
--zone ZONE
Untuk mengonfigurasi kebijakan autohealing saat membuat MIG, gunakan
perintah create.
Misalnya, gunakan perintah berikut untuk mengonfigurasi kebijakan autohealing saat
membuat MIG zona:
gcloud compute instance-groups managed create MIG_NAME \
--size SIZE \
--template INSTANCE_TEMPLATE_URL \
--health-check HEALTH_CHECK_URL \
--initial-delay INITIAL_DELAY \
--zone ZONE
Ganti kode berikut:
MIG_NAME: nama MIG tempat Anda ingin menyiapkan penyembuhan otomatis.SIZE: jumlah VM dalam grup.INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:- Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Untuk template instance global:
INSTANCE_TEMPLATE_ID
- Untuk template instance regional:
HEALTH_CHECK_URL: URL sebagian dari health check yang ingin Anda siapkan untuk pemulihan otomatis. Misalnya:- Health check regional:
projects/example-project/regions/us-central1/healthChecks/example-health-check. - Pemeriksaan kesehatan global:
projects/example-project/global/healthChecks/example-health-check.
- Health check regional:
INITIAL_DELAY: jumlah detik yang diperlukan VM baru untuk melakukan inisialisasi dan menjalankan skrip startup-nya. Selama periode penundaan awal VM, MIG mengabaikan health check yang gagal karena VM mungkin berada dalam proses startup. Tindakan ini mencegah MIG membuat ulang VM sebelum waktunya. Jika health check menerima respons yang responsif selama penundaan awal, ini menunjukkan bahwa proses startup telah selesai dan VM sudah siap. Timer penundaan awal dimulai saat kolomcurrentActionVM berubah menjadiVERIFYING. Timer berhenti saat waktu yang ditetapkan selesai atau saat health check berhasil. Nilai penundaan awal harus antara0dan3600detik. Nilai defaultnya adalah0.ZONE: zona tempat MIG berada. Untuk MIG regional, gunakan flag--region.
Terraform
Untuk mengonfigurasi kebijakan autohealing di MIG, gunakan blok auto_healing_policies.
Contoh berikut mengonfigurasi kebijakan autohealing di MIG zona. Untuk mengetahui informasi selengkapnya tentang resource yang digunakan dalam contoh, lihat google_compute_instance_group_manager. Untuk
MIG regional, gunakan resource google_compute_region_instance_group_manager.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
REST
Untuk mengonfigurasi kebijakan pemulihan otomatis di MIG yang ada, gunakan metode patch sebagai
berikut:
- Untuk MIG zona, gunakan
metode
instanceGroupManager.patch. - Untuk MIG regional, gunakan
metode
regionInstanceGroupManager.patch.
Misalnya, lakukan panggilan berikut untuk menyiapkan perbaikan otomatis di MIG zona yang sudah ada:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"autoHealingPolicies": [
{
"healthCheck": "HEALTH_CHECK_URL",
"initialDelaySec": INITIAL_DELAY
}
]
}
Untuk mengonfigurasi kebijakan autohealing saat membuat MIG, gunakan metode insert
sebagai berikut:
- Untuk MIG zona, gunakan
metode
instanceGroupManager.insert. - Untuk MIG regional, gunakan
metode
regionInstanceGroupManager.insert.
Misalnya, lakukan panggilan berikut untuk mengonfigurasi kebijakan autohealing saat membuat MIG zona:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
{
"name": "MIG_NAME",
"targetSize": SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"autoHealingPolicies": [
{
"healthCheck": "HEALTH_CHECK_URL",
"initialDelaySec": INITIAL_DELAY
}
]
}
Ganti kode berikut:
PROJECT_ID: Project ID Anda..MIG_NAME: nama MIG tempat Anda ingin menyiapkan penyembuhan otomatis.SIZE: jumlah VM dalam grup.INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:- Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Untuk template instance global:
INSTANCE_TEMPLATE_ID
- Untuk template instance regional:
HEALTH_CHECK_URL: URL sebagian dari health check yang ingin Anda siapkan untuk pemulihan otomatis. Misalnya:- Health check regional:
projects/example-project/regions/us-central1/healthChecks/example-health-check. - Pemeriksaan kesehatan global:
projects/example-project/global/healthChecks/example-health-check.
- Health check regional:
INITIAL_DELAY: jumlah detik yang diperlukan VM baru untuk melakukan inisialisasi dan menjalankan skrip startup-nya. Selama periode penundaan awal VM, MIG mengabaikan health check yang gagal karena VM mungkin berada dalam proses startup. Tindakan ini mencegah MIG membuat ulang VM sebelum waktunya. Jika health check menerima respons yang responsif selama penundaan awal, ini menunjukkan bahwa proses startup telah selesai dan VM sudah siap. Timer penundaan awal dimulai saat kolomcurrentActionVM berubah menjadiVERIFYING. Timer berhenti saat waktu yang ditetapkan selesai atau saat health check berhasil. Nilai penundaan awal harus antara0dan3600detik. Nilai defaultnya adalah0.ZONE: zona tempat MIG berada. Untuk MIG regional, gunakanregions/REGIONdi URL.
Setelah penyiapan autohealing selesai, diperlukan waktu 10 menit sebelum autohealing mulai memantau VM dalam grup. Setelah pemantauan dimulai, Compute Engine akan mulai menandai VM sebagai responsif (atau akan membuatnya ulang) berdasarkan konfigurasi autohealing Anda. Misalnya, jika Anda mengonfigurasi penundaan awal selama 5 menit, interval health check selama 1 menit, dan batas yang responsif yaitu 1 check, linimasanya akan terlihat seperti berikut:
- Penundaan 10 menit sebelum autohealing mulai memantau VM dalam grup
- + 5 menit untuk penundaan awal yang dikonfigurasi
- + 1 menit untuk interval pemeriksaan * ambang batas responsif (60 detik * 1)
- = 16 menit sebelum VM ditandai sebagai responsif atau dibuat ulang
Mengonfigurasi health check tanpa autohealing
Anda dapat menonaktifkan autohealing di MIG dan menggunakan health check yang dikonfigurasi untuk memantau respons aplikasi atau Anda dapat menerapkan logika perbaikan sendiri. Menonaktifkan autohealing di MIG tidak memengaruhi fungsi health check. Health check terus memeriksa aplikasi dan memberikan status responsif VM. Namun, MIG tidak akan lagi memperbaiki VM yang tidak responsif.
Untuk mengonfigurasi health check tanpa autohealing, pilih salah satu opsi berikut.
Konsol
Di konsol Google Cloud , buka halaman Instance groups.
Di kolom Name pada daftar, klik nama MIG tempat Anda ingin menerapkan health check.
Klik Edit untuk mengubah MIG ini.
- Klik Instance lifecycle and autohealing untuk meluaskan bagian tersebut.
- Di bagian Autohealing, untuk Health check, pilih health check global atau regional.
- Untuk Penundaan awal, gunakan nilai default atau ubah sesuai
kebutuhan.
Penundaan awal adalah jumlah detik yang diperlukan VM baru untuk melakukan inisialisasi dan menjalankan skrip startup-nya. Selama periode penundaan awal VM, MIG mengabaikan health check yang gagal karena VM mungkin berada dalam proses startup. Tindakan ini mencegah MIG membuat ulang VM sebelum waktunya. Jika health check menerima respons yang responsif selama penundaan awal, ini menunjukkan bahwa proses startup telah selesai dan VM sudah siap. Timer penundaan awal dimulai saat kolom
currentActionVM berubah menjadiVERIFYING. Timer berhenti saat waktu yang ditetapkan selesai atau saat health check berhasil. Nilai penundaan awal harus antara0dan3600detik. Di konsol, nilai defaultnya adalah300detik.
- Dalam daftar On failed health check, pilih No action.
Klik Simpan untuk menerapkan perubahan.
gcloud
Untuk mengonfigurasi health check tanpa autohealing, saat menentukan konfigurasi health check, Anda juga harus menyetel flag
--action-on-vm-failed-health-check ke do-nothing sebagai berikut:
Di MIG yang sudah ada, gunakan perintah beta
update.Misalnya, gunakan perintah berikut di MIG zona yang ada:
gcloud beta compute instance-groups managed update MIG_NAME \ --health-check HEALTH_CHECK_URL \ --initial-delay INITIAL_DELAY \ --action-on-vm-failed-health-check do-nothing \ --zone ZONESaat membuat MIG, gunakan perintah beta
create.Misalnya, gunakan perintah berikut saat membuat MIG zona:
gcloud beta compute instance-groups managed create MIG_NAME \ --size SIZE \ --template INSTANCE_TEMPLATE_URL \ --health-check HEALTH_CHECK_URL \ --initial-delay INITIAL_DELAY \ --action-on-vm-failed-health-check do-nothing \ --zone ZONE
Ganti kode berikut:
MIG_NAME: nama MIG tempat Anda ingin menyiapkan penyembuhan otomatis.SIZE: jumlah VM dalam grup.INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:- Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Untuk template instance global:
INSTANCE_TEMPLATE_ID
- Untuk template instance regional:
HEALTH_CHECK_URL: URL sebagian dari health check yang ingin Anda siapkan untuk pemulihan otomatis. Misalnya:- Health check regional:
projects/example-project/regions/us-central1/healthChecks/example-health-check. - Pemeriksaan kesehatan global:
projects/example-project/global/healthChecks/example-health-check.
- Health check regional:
INITIAL_DELAY: jumlah detik yang diperlukan VM baru untuk melakukan inisialisasi dan menjalankan skrip startup-nya. Selama periode penundaan awal VM, MIG mengabaikan health check yang gagal karena VM mungkin berada dalam proses startup. Tindakan ini mencegah MIG membuat ulang VM sebelum waktunya. Jika health check menerima respons yang responsif selama penundaan awal, ini menunjukkan bahwa proses startup telah selesai dan VM sudah siap. Timer penundaan awal dimulai saat kolomcurrentActionVM berubah menjadiVERIFYING. Timer berhenti saat waktu yang ditetapkan selesai atau saat health check berhasil. Nilai penundaan awal harus antara0dan3600detik. Nilai defaultnya adalah0.ZONE: zona tempat MIG berada. Untuk MIG regional, gunakan flag--region.
REST
Untuk mengonfigurasi health check tanpa autohealing, saat menentukan konfigurasi health check, Anda juga harus menyetel kolom
onFailedHealthCheck ke DO_NOTHING sebagai berikut:
Di MIG yang sudah ada, gunakan metode
patchbeta sebagai berikut:- Untuk MIG zona, gunakan
metode
instanceGroupManager.patchbeta. - Untuk MIG regional, gunakan
metode
regionInstanceGroupManager.patchbeta.
Misalnya, lakukan panggilan berikut di MIG zona yang sudah ada:
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME { "autoHealingPolicies": [ { "healthCheck": "HEALTH_CHECK_URL", "initialDelaySec": INITIAL_DELAY } ], "instanceLifecyclePolicy": { "onFailedHealthCheck": "DO_NOTHING" } }- Untuk MIG zona, gunakan
metode
Saat membuat MIG, gunakan metode
insertbeta sebagai berikut:- Untuk MIG zona, gunakan
metode
instanceGroupManager.insertbeta. - Untuk MIG regional, gunakan
metode
regionInstanceGroupManager.insertbeta.
Misalnya, lakukan panggilan berikut saat membuat MIG zona:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "MIG_NAME", "targetSize": SIZE, "instanceTemplate": "INSTANCE_TEMPLATE_URL", "autoHealingPolicies": [ { "healthCheck": "HEALTH_CHECK_URL", "initialDelaySec": INITIAL_DELAY } ], "instanceLifecyclePolicy": { "onFailedHealthCheck": "DO_NOTHING" } }- Untuk MIG zona, gunakan
metode
Ganti kode berikut:
PROJECT_ID: Project ID Anda..MIG_NAME: nama MIG tempat Anda ingin menyiapkan penyembuhan otomatis.SIZE: jumlah VM dalam grup.INSTANCE_TEMPLATE_URL: URL template instance yang ingin Anda gunakan untuk membuat instance di MIG. URL dapat berisi ID atau nama template instance. Tentukan salah satu nilai berikut:- Untuk template instance regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Untuk template instance global:
INSTANCE_TEMPLATE_ID
- Untuk template instance regional:
HEALTH_CHECK_URL: URL sebagian dari health check yang ingin Anda siapkan untuk pemulihan otomatis. Misalnya:- Health check regional:
projects/example-project/regions/us-central1/healthChecks/example-health-check. - Pemeriksaan kesehatan global:
projects/example-project/global/healthChecks/example-health-check.
- Health check regional:
INITIAL_DELAY: jumlah detik yang diperlukan VM baru untuk melakukan inisialisasi dan menjalankan skrip startup-nya. Selama periode penundaan awal VM, MIG mengabaikan health check yang gagal karena VM mungkin berada dalam proses startup. Tindakan ini mencegah MIG membuat ulang VM sebelum waktunya. Jika health check menerima respons yang responsif selama penundaan awal, ini menunjukkan bahwa proses startup telah selesai dan VM sudah siap. Timer penundaan awal dimulai saat kolomcurrentActionVM berubah menjadiVERIFYING. Timer berhenti saat waktu yang ditetapkan selesai atau saat health check berhasil. Nilai penundaan awal harus antara0dan3600detik. Nilai defaultnya adalah0.ZONE: zona tempat MIG berada. Untuk MIG regional, gunakanregions/REGIONdi URL.
Setelah mengonfigurasi health check, Anda dapat memantau status respons VM untuk mengonfirmasi bahwa health check berfungsi seperti yang diharapkan. Jika ingin MIG memperbaiki VM yang tidak responsif, Anda dapat mengaktifkan pemulihan otomatis.
Menghapus health check
Anda dapat menghapus health check yang dikonfigurasi dalam kebijakan autohealing sebagai berikut:
Konsol
Di konsol Google Cloud , buka halaman Instance groups.
Klik nama MIG yang health check-nya ingin Anda hapus.
Klik Edit untuk mengubah MIG ini.
Klik Instance lifecycle and autohealing untuk meluaskan bagian tersebut.
Di bagian Autohealing, untuk Health check, pilih No health check.
Klik Save untuk menerapkan perubahan.
gcloud
Untuk menghapus konfigurasi health check dalam kebijakan autohealing, di
perintah update
gunakan flag --clear-autohealing sebagai berikut:
gcloud compute instance-groups managed update MIG_NAME \
--clear-autohealing
Ganti MIG_NAME dengan nama MIG.
REST
Untuk menghapus konfigurasi health check dalam kebijakan autohealing, tetapkan kebijakan autohealing ke nilai kosong.
- Untuk MIG zona, gunakan
metode
instanceGroupManagers.patch - Untuk MIG regional, gunakan
metode
regionInstanceGroupManagers.patch.
Misalnya, untuk menghapus health check di MIG zona, buat permintaan berikut:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
"autoHealingPolicies": [
{}
]
}
Ganti kode berikut:
PROJECT_ID: Project ID Anda..MIG_NAME: nama MIG tempat Anda ingin menyiapkan penyembuhan otomatis.ZONE: zona tempat MIG berada. Untuk MIG regional, gunakanregions/REGION.
Melihat kebijakan pemulihan otomatis di MIG
Anda dapat melihat kebijakan pemulihan otomatis MIG sebagai berikut:
Konsol
Di konsol Google Cloud , buka halaman Instance groups.
Klik nama MIG yang kebijakan pemulihan otomatisnya ingin Anda lihat.
Buka tab Detail.
Bagian VM instance lifecycle menampilkan health check dan penundaan awal yang dikonfigurasi dalam kebijakan autohealing.
gcloud
Untuk melihat kebijakan pemulihan otomatis di MIG, gunakan perintah berikut:
gcloud compute instance-groups managed describe MIG_NAME \
--format="(autoHealingPolicies)"
Ganti MIG_NAME dengan nama MIG.
Berikut adalah contoh output:
autoHealingPolicies: healthCheck: https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check initialDelaySec: 300
REST
Untuk melihat kebijakan pemulihan otomatis di MIG, gunakan metode REST sebagai berikut:
- Untuk MIG zona, gunakan metode
instanceGroupManagers.get. - Untuk MIG regional, gunakan metode
regionInstanceGroupManagers.get.
Misalnya, lakukan permintaan berikut untuk melihat kebijakan pemulihan otomatis di MIG zona:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
Dalam isi respons, periksa objek autoHealingPolicies[].
Berikut adalah contoh respons:
{
...
"autoHealingPolicies": [
{
"healthCheck": "https://www.googleapis.com/compute/v1/projects/example-project/global/healthChecks/example-health-check",
"initialDelaySec": 300
}
],
...
}
Ganti kode berikut:
PROJECT_ID: Project ID Anda..MIG_NAME: nama MIG tempat Anda ingin menyiapkan penyembuhan otomatis.ZONE: zona tempat MIG berada. Untuk MIG regional, gunakanregions/REGION.
Periksa status.
Setelah menyiapkan health check berbasis aplikasi di MIG, Anda dapat memverifikasi bahwa VM sedang berjalan dan aplikasinya merespons menggunakan cara berikut:
- Memeriksa apakah VM responsif atau tidak
- Memeriksa tindakan saat ini pada VM
- Periksa apakah MIG stabil
Memeriksa apakah VM responsif atau tidak
Jika telah mengonfigurasi health check berbasis aplikasi di MIG, Anda dapat meninjau status respons setiap instance terkelola.
Periksa status kondisi instance terkelola Anda untuk:
- Identifikasi VM yang tidak responsif yang tidak diperbaiki. VM mungkin tidak
segera diperbaiki meskipun telah didiagnosis sebagai tidak sehat dalam
situasi berikut:
- VM masih booting, dan penundaan awal belum berlalu.
- Sebagian besar instance yang tidak responsif sedang diperbaiki. MIG menunda pemulihan otomatis lebih lanjut untuk memastikan grup terus menjalankan subset instance.
- Mendeteksi error konfigurasi health check. Misalnya, Anda dapat mendeteksi aturan firewall yang salah dikonfigurasi atau endpoint health check aplikasi yang tidak valid jika instance melaporkan status kondisi
TIMEOUT. - Tentukan nilai penundaan awal yang akan dikonfigurasi dengan mengukur jumlah waktu antara saat VM bertransisi ke status
RUNNINGdan saat VM bertransisi ke kondisiHEALTHYstatus. Anda dapat mengukur kesenjangan ini dengan memilih metodelist-instancesatau dengan mengamati waktu antara operasiinstances.insertdan operasi pertama sinyal sehat diterima.
Gunakan
konsol, alat command line gcloud, atau REST untuk melihat status kesehatan.
Konsol
Di konsol Google Cloud , buka halaman Instance groups.
Di kolom Name pada daftar, klik nama MIG yang ingin Anda periksa. Halaman akan terbuka dengan properti grup instance dan daftar VM yang disertakan dalam grup.
Jika VM tidak responsif, Anda dapat melihat status responsnya di kolom Health check status.
gcloud
Gunakan sub-perintah
list-instances.
gcloud compute instance-groups managed list-instances MIG_NAME
--zone ZONE
Perintah ini akan memberikan output yang mirip dengan berikut ini. Kolom HEALTH_STATE
menampilkan status respons setiap VM.
NAME: igm-with-hc-fvz6 ZONE: europe-west1-b STATUS: RUNNING HEALTH_STATE: HEALTHY ACTION: NONE INSTANCE_TEMPLATE: my-template VERSION_NAME: LAST_ERROR: NAME: igm-with-hc-gtz3 ZONE: europe-west1-b STATUS: RUNNING HEALTH_STATE: HEALTHY ACTION: NONE INSTANCE_TEMPLATE: my-template VERSION_NAME: LAST_ERROR:
Ganti kode berikut:
MIG_NAME: nama MIG.ZONE: zona tempat MIG berada. Untuk MIG regional, gunakan--region REGION.
REST
Untuk MIG regional, buat permintaan POST ke
metode
listManagedInstances:
POST https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/MIG_NAME/listManagedInstances
Untuk MIG zona, gunakan metode listManagedInstances MIG zona:
POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/MIG_NAME/listManagedInstances
Permintaan tersebut menampilkan respons yang mirip dengan berikut ini, yang menyertakan kolom instanceHealth untuk setiap instance terkelola.
{
"managedInstances": [
{
"instance": "https://www.googleapis.com/compute/v1/projects/sproject-id/zones/zone/instances/igm-with-hc-fvz6",
"instanceStatus": "RUNNING",
"currentAction": "NONE",
"id": "6159431761228150698",
"version": {
"instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/my-template"
},
"instanceHealth": [
{
"healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/example-check-01",
"detailedHealthState": "HEALTHY"
}
],
"name": "igm-with-hc-fvz6"
},
{
"instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/igm-with-hc-gtz3",
"instanceStatus": "RUNNING",
"currentAction": "NONE",
"id": "6622324799312181783",
"version": {
"instanceTemplate": "https://www.googleapis.com/compute/v1/projects/project-id/global/instanceTemplates/my-template"
},
"instanceHealth": [
{
"healthCheck": "https://www.googleapis.com/compute/v1/projects/project-id/global/healthChecks/example-check-01",
"detailedHealthState": "HEALTHY"
}
],
"name": "igm-with-hc-gtz3"
}
]
}Status kesehatan
Status kondisi VM berikut tersedia:
HEALTHY: VM dapat dijangkau, koneksi ke endpoint health check aplikasi dapat dibuat, dan responsnya sesuai dengan persyaratan yang ditentukan oleh health check.DRAINING: VM sedang dikosongkan. Koneksi yang ada ke VM memiliki waktu untuk diselesaikan, tetapi koneksi baru akan ditolak.UNHEALTHY: VM dapat dijangkau, tetapi tidak sesuai dengan persyaratan yang ditentukan oleh health check.TIMEOUT: VM tidak dapat dijangkau, koneksi ke endpoint health check aplikasi tidak dapat dibuat, atau server pada VM tidak merespons dalam waktu tunggu yang ditentukan. Misalnya, hal ini dapat disebabkan oleh aturan firewall yang salah dikonfigurasi atau aplikasi server yang kelebihan beban pada VM.UNKNOWN: Sistem health check tidak mengetahui VM atau kondisinya tidak diketahui saat ini. Diperlukan waktu 10 menit untuk pemantauan dimulai pada VM baru di MIG.
VM baru menampilkan status UNHEALTHY hingga diverifikasi oleh sistem health check.
Perlu atau tidaknya VM diperbaiki bergantung pada status responsnya:
- Jika VM memiliki status respons
UNHEALTHYatauTIMEOUT, dan telah melewati periode inisialisasi, MIG akan segera mencoba memperbaikinya. - Jika VM memiliki status respons
UNKNOWN, MIG tidak akan segera memperbaikinya. Hal ini untuk mencegah perbaikan VM yang tidak perlu yang sinyal health check-nya tidak tersedia untuk sementara.
Upaya pemulihan otomatis dapat ditunda jika:
- VM akan tetap tidak responsif setelah beberapa kali perbaikan berturut-turut.
- Sebagian besar VM yang tidak responsif ada dalam grup secara keseluruhan.
Kami ingin mempelajari kasus penggunaan, tantangan, atau masukan Anda tentang nilai status kondisi VM. Anda dapat menyampaikan masukan kepada tim kami di mig-discuss@google.com.
Memeriksa tindakan saat ini pada VM
Ketika MIG sedang dalam proses pembuatan instance VM, MIG menetapkan
kolom currentAction hanya baca instance tersebut ke CREATING. Jika kebijakan autohealing
dilampirkan ke grup, setelah VM dibuat dan dijalankan, MIG
akan menetapkan tindakan instance saat ini ke VERIFYING dan health checker
mulai memeriksa aplikasi VM. Jika aplikasi lulus health check awal ini dalam waktu yang diperlukan untuk memulai aplikasi, maka VM akan diverifikasi dan MIG mengubah kolom currentAction VM menjadi NONE.
Untuk memeriksa tindakan saat ini pada VM, lihat Melihat tindakan saat ini pada VM.
Periksa apakah MIG stabil
Di tingkat grup, Compute Engine mengisi kolom hanya baca bernama
status
yang berisi flag isStable.
Jika semua VM dalam grup berjalan dan responsif (yaitu, kolom currentAction untuk setiap instance terkelola ditetapkan ke NONE), MIG akan menetapkan kolom
status.isStable ke true. Perlu diingat bahwa stabilitas MIG bergantung
pada konfigurasi grup di luar kebijakan autohealing; Misalnya, jika grup Anda
diskalakan otomatis, dan jika sedang diskalakan atau diskalakan, MIG akan menetapkan
kolom status.isStable ke false karena operasi autoscaler.
Untuk memeriksa nilai kolom status.isStable MIG, lihat
Memeriksa apakah MIG stabil.
Melihat histori operasi autohealing
Anda dapat menggunakan gcloud CLI atau REST untuk melihat peristiwa autohealing sebelumnya.
gcloud
Gunakan perintah gcloud compute operations list
dengan
filter
untuk melihat hanya peristiwa perbaikan autohealing dalam project Anda.
gcloud compute operations list --filter='operationType~compute.instances.repair.*'
Untuk mengetahui informasi selengkapnya tentang operasi perbaikan tertentu, gunakan perintah
describe. Contoh:
gcloud compute operations describe repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5 --zone us-east1-b
REST
Untuk MIG regional, kirim permintaan GET ke resource
regionOperations
dan sertakan filter untuk mencakupkan daftar output ke
peristiwa compute.instances.repair.*.
GET https://compute.googleapis.com/compute/v1/projects/project-id/region/region/operations?filter=operationType+%3D+%22compute.instances.repair.*%22
Untuk MIG zona, gunakan resource
zoneOperations.
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations?filter=operationType+%3D+%22compute.instances.repair.*%22
Untuk mengetahui informasi selengkapnya tentang operasi perbaikan tertentu, kirimkan permintaan GET
untuk operasi spesifik tersebut. Contoh:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/operations/repair-1539070348818-577c6bd6cf650-9752b3f3-1d6945e5
Apa yang membuat health check autohealing yang baik
Health check yang digunakan untuk autohealing harus bersifat konservatif agar tidak menghapus dan membuat ulang instance secara preemptive. Jika health check autohealer terlalu agresif, autohealer mungkin salah menganggap instance yang sibuk sebagai instance yang gagal, sehingga akan memulai ulang instance tersebut secara tidak perlu sehingga mengurangi ketersediaan.
unhealthy-threshold. Harus lebih dari1. Idealnya, tetapkan nilai ini ke3atau lebih. Tindakan ini akan melindungi dari kegagalan yang jarang terjadi seperti kehilangan paket jaringan.healthy-threshold. Nilai2sudah cukup untuk sebagian besar aplikasi.timeout. Tetapkan nilai waktu ini ke jumlah yang banyak (lima kali atau lebih daripada waktu respons yang diharapkan). Waktu tunggu harus kurang dari atau sama dengancheck-interval. Tindakan ini memberikan perlindungan terhadap penundaan yang tidak terduga seperti instance yang sibuk atau koneksi jaringan yang lambat.check-interval. Nilai ini harus antara 1 detik dan dua kali waktu tunggu (tidak terlalu lama atau terlalu singkat). Jika nilai terlalu panjang, instance yang gagal tidak akan segera diambil. Jika nilai terlalu pendek, instance dan jaringan bisa sangat sibuk, mengingat tingginya jumlah pemeriksaan health check yang dikirim setiap detik.
Kemungkinan penyebab keterlambatan dalam perbaikan otomatis
Untuk menjaga stabilitas MIG Anda selama pemulihan otomatis, Compute Engine menerapkan batas berikut. Karena batas ini, Anda mungkin melihat penundaan dalam perbaikan otomatis.
Perbaikan serentak maksimum: Jika instance dalam MIG gagal melewati health check, MIG akan melakukan perbaikan otomatis hingga maksimum 30% instance yang tidak berjalan pada waktu tertentu. Misalnya, jika MIG Anda memiliki 10 instance dan 4 di antaranya gagal dalam health check, autohealing akan mencoba memperbaiki paling banyak 2 instance (30% dari 4, dibulatkan).
Penundaan antara upaya perbaikan berikutnya: Jika instance berulang kali gagal dalam health check setelah diperbaiki otomatis, MIG akan secara bertahap meningkatkan waktu antara upaya perbaikan berikutnya. Penundaan ini dapat berlangsung hingga maksimal sekitar 60 menit di antara percobaan ulang.
Langkah berikutnya
- Coba tutorial, Menggunakan autohealing untuk aplikasi dengan ketersediaan tinggi.
- Pantau perubahan status respons VM.
- Menerapkan update konfigurasi selama perbaikan.
- Aktifkan perbaikan atau penyembuhan otomatis, jika Anda telah menonaktifkan penyembuhan otomatis.