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.

Portal peristiwa tidak sehat

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.

Penghitung hidupkan ulang portal

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 = Neverdan 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.