Mengonfigurasi pemeriksaan keaktifan
Aplikasi kontainer dapat berjalan untuk jangka waktu yang lama, mengakibatkan kondisi rusak yang mungkin perlu diperbaiki dengan memulai ulang kontainer. Microsoft Azure Container Instances mendukung pemeriksaan keaktifan sehingga Anda dapat mengonfigurasi kontainer dalam grup kontainer untuk memulai ulang jika fungsi penting tidak berfungsi. Pemeriksaan keaktifan berperilaku seperti Pemeriksaan keaktifan kubernetes.
Artikel ini menjelaskan cara menyebarkan grup kontainer yang mencakup pemeriksaan keaktifan, menunjukkan hidupkan ulang otomatis dari kontainer tidak sehat yang disimulasikan.
Microsoft Azure Container Instances juga mendukung pemeriksaan kesiapan, yang dapat Anda konfigurasi untuk memastikan bahwa lalu lintas mencapai kontainer hanya ketika siap.
Penyebaran YAML
Buat file liveness-probe.yaml
dengan cuplikan berikut. File ini mendefinisikan grup kontainer yang terdiri atas kontainer NGNIX yang akhirnya menjadi berbahaya.
apiVersion: 2019-12-01
location: eastus
name: livenesstest
properties:
containers:
- name: mycontainer
properties:
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
command:
- "/bin/sh"
- "-c"
- "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600"
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
livenessProbe:
exec:
command:
- "cat"
- "/tmp/healthy"
periodSeconds: 5
osType: Linux
restartPolicy: Always
tags: null
type: Microsoft.ContainerInstance/containerGroups
Jalankan perintah berikut untuk menyebarkan grup kontainer ini dengan konfigurasi YAML di atas:
az container create --resource-group myResourceGroup --name livenesstest -f liveness-probe.yaml
Perintah mulai
Penyebaran mencakup properti command
yang mendefinisikan perintah awal yang berjalan ketika kontainer pertama kali mulai berjalan. Properti ini menerima array untai (karakter). Perintah ini membuat simulasi kontainer yang memasuki kondisi tidak sehat.
Pertama, memulai sesi bash dan membuat file yang disebut healthy
dalam direktori /tmp
. Lalu, tidur selama 30 detik sebelum menghapus file, lalu memasuki tidur 10 menit:
/bin/sh -c "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600"
Perintah keaktifan
Penyebaran ini mendefinisikan livenessProbe
yang mendukung perintah exec
keaktifan yang bertindak sebagai pemeriksaan keaktifan. Jika perintah ini keluar dengan nilai bukan nol, kontainer dihilangkan dan dimulai ulang, menandakan file healthy
tidak dapat ditemukan. Jika perintah ini berhasil keluar dengan kode keluar 0, tidak ada tindakan yang diambil.
Properti periodSeconds
menunjuk perintah keaktifan harus dijalankan setiap 5 detik.
Verifikasi output keaktifan
Dalam 30 detik pertama, file healthy
yang dibuat oleh perintah mulai yang ada. Ketika perintah keaktifan memeriksa keberadaan file healthy
, kode status mengembalikan 0, menandakan keberhasilan, sehingga tidak terjadi hidupkan ulang.
Setelah 30 detik, perintah cat /tmp/healthy
mulai gagal, menyebabkan terjadi peristiwa tidak sehat dan penghilangan.
Peristiwa ini dapat dilihat dari portal Microsoft Azure atau Microsoft Azure CLI.
Dengan melihat peristiwa di portal Microsoft Azure, peristiwa jenis Unhealthy
yang dipicu pada perintah keaktifan gagal. Peristiwa berikutnya dari jenis Killing
, menandakan penghapusan kontainer sehingga hidupkan ulang dapat dimulai. Jumlah hidupkan ulang untuk penambahan kontainer setiap kali peristiwa ini terjadi.
Hidupkan ulang selesai di tempat sehingga sumber daya seperti alamat IP publik dan konten khusus simpul dipertahankan.
Jika pemeriksaan keaktifan terus-menerus gagal dan memicu terlalu banyak hidupkan ulang, kontainer Anda memasuki penundaan mundur eksponensial.
Pemeriksaan keaktifan dan kebijakan hidupkan ulang
Kebijakan hidupkan ulang menggantikan perilaku hidupkan ulang yang dipicu oleh pemeriksaan keaktifan. Misalnya, jika Anda mengatur restartPolicy = Never
dan pemeriksaan keaktifan, grup kontainer tidak akan dimulai ulang karena pemeriksaan keaktifan gagal. Grup kontainer malah mematuhi kebijakan hidupkan ulang grup kontainer Never
.
Langkah berikutnya
Skenario berbasis tugas dapat memerlukan pemeriksaan keaktifan untuk mengaktifkan hidupkan ulang otomatis jika fungsi prasyarat tidak berfungsi dengan baik. Untuk informasi selengkapnya tentang menjalankan kontainer berbasis tugas, lihat Menjalankan tugas kontainer dalam Microsoft Azure Container Instances.