View a markdown version of this page

Menentukan Kondisi Tugas Amazon ECS Menggunakan Pemeriksaan Kondisi Kontainer - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menentukan Kondisi Tugas Amazon ECS Menggunakan Pemeriksaan Kondisi Kontainer

Saat Anda membuat definisi tugas, Anda dapat mengonfigurasi pemeriksaan kesehatan untuk wadah Anda. Pemeriksaan kesehatan adalah perintah yang berjalan secara lokal pada wadah dan memvalidasi kesehatan dan ketersediaan aplikasi.

Agen kontainer Amazon ECS hanya memantau dan melaporkan pemeriksaan kesehatan yang ditentukan dalam definisi tugas. Amazon ECS tidak memantau pemeriksaan kesehatan Docker yang disematkan dalam image wadah tetapi tidak ditentukan dalam definisi wadah. Parameter pemeriksaan kondisi yang ditentukan dalam ketentuan kontainer menimpa setiap pemeriksaan kondisi Docker yang ada di citra kontainer.

Ketika pemeriksaan kesehatan ditentukan dalam definisi tugas, wadah menjalankan proses pemeriksaan kesehatan di dalam wadah, dan kemudian mengevaluasi kode keluar untuk menentukan kesehatan aplikasi.

Pemeriksaan kesehatan terdiri dari parameter berikut:

  • Command — Perintah yang dijalankan wadah untuk menentukan apakah itu sehat. Array string dapat dimulai CMD dengan menjalankan argumen perintah secara langsung, atau CMD-SHELL menjalankan perintah dengan shell default container. Gunakan CMD-SHELL saat Anda membutuhkan fitur shell seperti pipa, pengalihan, rantai perintah, atau ekspansi variabel lingkungan. Misalnya, CMD-SHELL memungkinkan Anda untuk menggunakan perintah seperti curl -f http://localhost/ || exit 1 di mana shell menafsirkan || operator. Gunakan CMD untuk perintah sederhana yang tidak memerlukan interpretasi shell.

  • Interval — Periode waktu (dalam detik) antara setiap pemeriksaan kesehatan.

  • Waktu tunggu — Periode waktu (dalam detik) untuk menunggu pemeriksaan kesehatan berhasil sebelum dianggap gagal.

  • Percobaan ulang — Jumlah kali untuk mencoba lagi pemeriksaan kesehatan yang gagal sebelum wadah dianggap tidak sehat.

  • Periode mulai — Masa tenggang opsional untuk memberikan waktu kontainer untuk melakukan bootstrap sebelum pemeriksaan kesehatan yang gagal dihitung dalam jumlah maksimum percobaan ulang.

    Jika pemeriksaan kondisi berhasil dalam startPeriod, maka kontainer dianggap sehat dan kegagalan berikutnya dihitung terhadap jumlah maksimum percobaan kembali.

Untuk informasi tentang cara menentukan pemeriksaan kesehatan dalam definisi tugas, lihatPemeriksaan kondisi.

Berikut ini menjelaskan kemungkinan nilai status kesehatan untuk wadah:

  • HEALTHY—Pemeriksaan kesehatan wadah telah berhasil lulus.

  • UNHEALTHY—Pemeriksaan kesehatan wadah gagal.

  • UNKNOWN—Pemeriksaan kesehatan wadah sedang dievaluasi, tidak ada pemeriksaan kesehatan kontainer yang ditentukan, atau Amazon ECS tidak memiliki status kesehatan wadah.

Perintah pemeriksaan kesehatan berjalan pada wadah. Oleh karena itu Anda harus menyertakan perintah dalam gambar wadah.

Pemeriksaan kesehatan terhubung ke aplikasi melalui antarmuka loopback wadah di localhost atau127.0.0.1. Kode keluar 0 menunjukkan keberhasilan, dan kode keluar bukan nol menunjukkan kegagalan.

Pertimbangkan hal berikut saat menggunakan pemeriksaan kesehatan wadah:

  • Pemeriksaan kondisi kontainer memerlukan versi 1.17.0 atau yang lebih baru dari agen kontainer Amazon ECS.

  • Pemeriksaan kesehatan kontainer didukung untuk tugas Fargate jika Anda menggunakan versi platform Linux 1.1.0 atau yang lebih tinggi atau versi platform Windows 1.1.0 atau lebih tinggi

Bagaimana Amazon ECS menentukan kesehatan tugas

Kontainer yang penting dan memiliki perintah pemeriksaan kesehatan dalam definisi tugas adalah satu-satunya yang dipertimbangkan untuk menentukan kesehatan tugas.

Aturan berikut dievaluasi secara berurutan:

  1. Jika status satu wadah penting adalahUNHEALTHY, maka status tugasnya adalahUNHEALTHY.

  2. Jika status satu wadah penting adalahUNKNOWN, maka status tugasnya adalahUNKNOWN.

  3. Jika status semua wadah penting adalahHEALTHY, maka status tugasnya adalahHEALTHY.

Pertimbangkan contoh kesehatan tugas berikut dengan 2 wadah penting.

Wadah 1 kesehatan Wadah 2 kesehatan Kesehatan tugas
UNHEALTHY UNKNOWN UNHEALTHY
UNHEALTHY HEALTHY UNHEALTHY
HEALTHY UNKNOWN UNKNOWN
HEALTHY HEALTHY HEALTHY

Pertimbangkan contoh kesehatan tugas berikut dengan 3 wadah.

Wadah 1 kesehatan Wadah 2 kesehatan Wadah 3 kesehatan Kesehatan tugas
UNHEALTHY UNKNOWN UNKNOWN UNHEALTHY
UNHEALTHY UNKNOWN HEALTHY UNHEALTHY
UNHEALTHY HEALTHY HEALTHY UNHEALTHY
HEALTHY UNKNOWN HEALTHY UNKNOWN
HEALTHY UNKNOWN UNKNOWN UNKNOWN
HEALTHY HEALTHY HEALTHY HEALTHY

Bagaimana pemeriksaan kesehatan dipengaruhi oleh pemutusan agen

Jika agen kontainer Amazon ECS terputus dari layanan Amazon ECS, ini tidak akan menyebabkan kontainer beralih ke status. UNHEALTHY Ini dirancang, untuk memastikan bahwa kontainer tetap berjalan selama agen restart atau tidak tersedianya sementara. Status pemeriksaan kesehatan adalah respons “terakhir terdengar dari” dari agen Amazon ECS, jadi jika wadah dipertimbangkan HEALTHY sebelum pemutusan, status itu akan tetap sampai agen terhubung kembali dan pemeriksaan kesehatan lainnya terjadi. Tidak ada asumsi yang dibuat tentang status pemeriksaan kesehatan kontainer.