All Products
Search
Document Center

Elastic Container Instance:Gunakan probe untuk pemeriksaan kesehatan kontainer

Last Updated:Jun 21, 2026

Pemeriksaan kelangsungan hidup (liveness probe) dan pemeriksaan kesiapan (readiness probe) adalah mekanisme untuk memantau status kontainer. Pemeriksaan kelangsungan hidup menentukan apakah kontainer berjalan dengan baik, sedangkan pemeriksaan kesiapan menentukan apakah kontainer siap melayani permintaan. Topik ini menjelaskan cara mengonfigurasi kedua jenis pemeriksaan tersebut untuk kontainer di Elastic Container Instance (ECI). Probe-probe ini membantu ECI memantau dan mengelola status kontainer Anda guna memastikan ketersediaan dan stabilitas layanan yang tinggi.

Ikhtisar

ECI mendukung pemeriksaan kelangsungan hidup dan pemeriksaan kesiapan untuk memantau kesehatan serta status kontainer.

Probe

Description

Use cases

liveness probe

Memeriksa apakah kontainer berjalan dengan baik.

  • Jika pemeriksaan berhasil, kontainer dianggap sehat.

  • Jika pemeriksaan gagal, sistem akan restart kontainer berdasarkan kebijakan restart yang dikonfigurasi.

  • Jika pemeriksaan kelangsungan hidup tidak dikonfigurasi, kontainer selalu dianggap sehat.

  • Pemeriksaan kelangsungan hidup dapat mendeteksi deadlock. Misalnya, jika aplikasi sedang berjalan tetapi tidak dapat melanjutkan proses, probe akan merestart kontainer untuk membantu pemulihan.

  • Aplikasi yang berjalan lama mungkin memasuki kondisi rusak yang tidak dapat dipulihkan tanpa restart. Pemeriksaan kelangsungan hidup dapat mendeteksi dan memperbaiki situasi ini.

readiness probe

Memeriksa apakah kontainer siap menerima dan melayani permintaan.

  • Jika pemeriksaan berhasil, kontainer dianggap siap dan dapat menerima traffic.

  • Jika pemeriksaan gagal, kontainer tidak siap, dan sistem berhenti mengirimkan traffic kepadanya hingga probe berhasil kembali.

  • Jika pemeriksaan kesiapan tidak dikonfigurasi, kontainer dianggap siap segera setelah dimulai.

Gunakan pemeriksaan kesiapan jika aplikasi sementara tidak dapat melayani traffic, misalnya saat memuat data atau file konfigurasi dalam jumlah besar selama startup. Dalam kasus seperti ini, Anda tidak ingin menghentikan aplikasi, tetapi ingin sementara waktu berhenti mengirimkan permintaan kepadanya.

Konfigurasi API

Saat membuat instans ECI melalui operasi CreateContainerGroup, Anda dapat mengonfigurasi probe menggunakan parameter LivenessProbe dan ReadinessProbe. Untuk informasi selengkapnya, lihat CreateContainerGroup.

Parameter LivenessProbe

Penting

Saat mengonfigurasi parameter LivenessProbe, Anda hanya dapat menentukan satu metode pemeriksaan: HttpGet, Exec, atau TcpSocket.

Parameter

Type

Example

Description

Container.N.LivenessProbe.HttpGet.Path

string

/healthyz

Jalur untuk permintaan pemeriksaan kesehatan HTTP GET.

Container.N.LivenessProbe.HttpGet.Port

integer

8888

Port untuk permintaan pemeriksaan kesehatan HTTP GET.

Container.N.LivenessProbe.HttpGet.Scheme

string

HTTP

Protokol permintaan HTTP GET. Nilai yang valid:

  • HTTP

  • HTTPS

Container.N.LivenessProbe.Exec.Command.N

array

cat /tmp/healthy

Perintah yang dijalankan di dalam kontainer untuk pemeriksaan kesehatan.

Container.N.LivenessProbe.TcpSocket.Port

integer

8000

Port yang diperiksa untuk pemeriksaan kesehatan soket TCP.

Container.N.LivenessProbe.InitialDelaySeconds

integer

5

Waktu tunda dalam detik setelah kontainer dimulai sebelum probe pertama dijalankan.

Container.N.LivenessProbe.PeriodSeconds

integer

1

Interval pengulangan probe. Nilai default: 10. Nilai minimum: 1. Satuan: detik.

Container.N.LivenessProbe.SuccessThreshold

integer

1

Jumlah keberhasilan berturut-turut yang diperlukan agar probe dianggap berhasil setelah sebelumnya gagal. Nilai ini harus 1 untuk pemeriksaan kelangsungan hidup. Default: 1.

Container.N.LivenessProbe.FailureThreshold

integer

3

Jumlah kegagalan berturut-turut yang diperlukan agar probe dianggap gagal. Nilai default: 3.

Container.N.LivenessProbe.TimeoutSeconds

integer

1

Jumlah detik setelah probe dianggap timeout. Nilai default: 1. Nilai minimum: 1. Satuan: detik.

Parameter ReadinessProbe

Penting

Saat mengonfigurasi parameter ReadinessProbe, Anda hanya dapat menentukan satu metode pemeriksaan: HttpGet, Exec, atau TcpSocket.

Parameter

Type

Example

Description

Container.N.ReadinessProbe.HttpGet.Path

string

/healthyz

Jalur untuk permintaan pemeriksaan kesehatan HTTP GET.

Container.N.ReadinessProbe.HttpGet.Port

integer

8888

Port untuk permintaan pemeriksaan kesehatan HTTP GET.

Container.N.ReadinessProbe.HttpGet.Scheme

string

HTTP

Protokol permintaan HTTP GET. Nilai yang valid:

  • HTTP

  • HTTPS

Container.N.ReadinessProbe.Exec.Command.N

array

cat /tmp/healthy

Perintah yang dijalankan di dalam kontainer untuk pemeriksaan kesehatan.

Container.N.ReadinessProbe.TcpSocket.Port

integer

8000

Port yang diperiksa untuk pemeriksaan kesehatan soket TCP.

Container.N.ReadinessProbe.InitialDelaySeconds

integer

5

Waktu tunda dalam detik setelah kontainer dimulai sebelum probe pertama dijalankan.

Container.N.ReadinessProbe.PeriodSeconds

integer

1

Interval pengulangan probe. Nilai default: 10. Nilai minimum: 1. Satuan: detik.

Container.N.ReadinessProbe.SuccessThreshold

integer

1

Jumlah minimum keberhasilan berturut-turut yang diperlukan agar probe dianggap berhasil setelah sebelumnya gagal. Default: 1. Minimum: 1.

Container.N.ReadinessProbe.FailureThreshold

integer

3

Jumlah kegagalan berturut-turut yang diperlukan agar probe dianggap gagal. Nilai default: 3.

Container.N.ReadinessProbe.TimeoutSeconds

integer

1

Jumlah detik setelah probe dianggap timeout. Nilai default: 1. Nilai minimum: 1. Satuan: detik.

Konfigurasi Konsol

Saat membuat instans ECI di Konsol Elastic Container Instance, pilih kontainer pada bagian Container Configurations, perluas pengaturan lanjutan kontainer, aktifkan pemeriksaan kesehatan, lalu konfigurasi probe tersebut.

Catatan

Saat mengonfigurasi probe di Konsol, hanya metode command line dan HTTP request yang didukung. Metode TCP socket tidak didukung.

Parameter

Description

Timeout Period

  • Waiting Period: Waktu dalam detik yang ditunggu setelah kontainer dimulai sebelum probe pertama dijalankan. Ini sesuai dengan parameter API initialDelaySeconds.

  • Timeout Period: Waktu dalam detik setelah probe dianggap timeout. Jika probe timeout, maka dianggap gagal. Ini sesuai dengan parameter API timeoutSeconds.

Method

Pilih metode pemeriksaan.

  • Script: Probe menjalankan perintah di dalam kontainer. Jika perintah tersebut keluar dengan kode status 0, pemeriksaan dianggap berhasil.

  • HTTP Request: Probe mengirim permintaan HTTP ke kontainer. Jika kode status respons lebih besar dari atau sama dengan 200 dan kurang dari 400 (2xx atau 3xx), pemeriksaan dianggap berhasil.

Script

Jika Anda memilih Script sebagai metode pemeriksaan, Anda harus menentukan perintah yang akan dijalankan di dalam kontainer.

HTTP Request

Jika Anda memilih HTTP Request sebagai metode pemeriksaan, Anda harus menentukan jalur, port, dan protokol untuk permintaan HTTP GET.

Contoh

Contoh ini menunjukkan cara membuat instans ECI dengan pemeriksaan kelangsungan hidup dan pemeriksaan kesiapan, lalu mensimulasikan kegagalan layanan untuk mengamati cara kerja probe tersebut.

  1. Panggil operasi CreateContainerGroup untuk membuat instans ECI.

    Contoh berikut menggunakan metode soket TCP untuk pemeriksaan kesehatan:

    ContainerGroupName=test-probe
    # Gunakan image nginx dan buat serta asosiasikan EIP secara otomatis.
    Container.1.Name=container-1
    Container.1.Image=nginx
    AutoCreateEip=true
    # Liveness probe: periksa port 80 setiap 3 detik, mulai 5 detik setelah launch. Ambang batas keberhasilan: 1, ambang batas kegagalan: 3, timeout: 10 detik.
    Container.1.LivenessProbe.TcpSocket.Port=80
    Container.1.LivenessProbe.InitialDelaySeconds=5
    Container.1.LivenessProbe.PeriodSeconds=3
    Container.1.LivenessProbe.SuccessThreshold=1
    Container.1.LivenessProbe.FailureThreshold=3
    Container.1.LivenessProbe.TimeoutSeconds=10
    # Readiness probe: periksa port 80 setiap 3 detik, mulai 5 detik setelah launch. Ambang batas keberhasilan: 1, ambang batas kegagalan: 3, timeout: 10 detik.
    Container.1.ReadinessProbe.TcpSocket.Port=80
    Container.1.ReadinessProbe.InitialDelaySeconds=5
    Container.1.ReadinessProbe.PeriodSeconds=3
    Container.1.ReadinessProbe.SuccessThreshold=1
    Container.1.ReadinessProbe.FailureThreshold=3
    Container.1.ReadinessProbe.TimeoutSeconds=10
  2. Lihat event instans ECI di Konsol Elastic Container Instance.

    Setelah instans ECI dibuat, klik ID instans untuk membuka halaman detailnya. Di tab Events, Anda dapat melihat bahwa kontainer dimulai secara normal.

    Daftar event menampilkan empat event Normal secara berurutan: Pulling image "nginx", Successfully pulled image "nginx", Created container container-1, dan Started container container-1.

  3. Hubungkan ke kontainer. Untuk informasi selengkapnya, lihat Hubungkan ke instans ECI dengan Workbench.

  4. Ubah port pendengar Nginx untuk mensimulasikan kegagalan layanan.

    1. Modifikasi port pendengar Nginx.

      Catatan

      Image Nginx yang digunakan dalam contoh ini tidak memiliki vim yang terinstal. Sebelum menjalankan perintah vi, jalankan apt-get update dan apt-get install vim untuk menginstal vim.

      vi /etc/nginx/conf.d/default.conf

      Ubah port pendengar dari 80 menjadi 8080, seperti pada contoh berikut:

      server {
          listen       8080;
          listen  [::]:8080;
          server_name  localhost;
          #access_log  /var/log/nginx/host.access.log  main;
          location / {
              root   /usr/share/nginx/html;
              index  index.html index.htm;
          }
          #error_page  404              /404.html;
          # redirect server error pages to the static page /50x.html
          #
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   /usr/share/nginx/html;
          }
      }
    2. Muat ulang konfigurasi Nginx.

      nginx -s reload
  5. Periksa efek probe tersebut.

    Beberapa detik setelah Anda memuat ulang Nginx, kontainer secara otomatis direstart. Anda dapat melihat event instans untuk memverifikasi bahwa kontainer direstart setelah pemeriksaan kelangsungan hidup dan pemeriksaan kesiapan gagal.

    Daftar event menunjukkan bahwa probe gagal dengan pesan dial tcp 172.x.x.x:80: connect: connection refused, yang menunjukkan bahwa koneksi ke port kontainer ditolak. Akibatnya, ECI secara otomatis merestart kontainer container-1.