All Products
Search
Document Center

Platform For AI:Pemeriksaan kesehatan

Last Updated:Jul 03, 2026

Pemeriksaan kesehatan EAS menggunakan mekanisme probe Kubernetes untuk secara otomatis mendeteksi dan memulihkan kontainer yang tidak sehat, sehingga hanya instans yang sehat yang menerima traffic.

Batasan

Pemeriksaan kesehatan hanya tersedia saat Anda menyebarlayankan layanan menggunakan custom image yang menyertakan logika pemeriksaan kesehatan.

Cara kerja

Pemeriksaan kesehatan EAS menggunakan mekanisme probe Kubernetes untuk mendeteksi dan mengelola kesehatan layanan. EAS mendukung jenis probe dan metode pemeriksaan kesehatan berikut.

  • Jenis probe yang didukung:

    Probe type

    Description

    Liveness probe

    Menentukan apakah sebuah kontainer sedang berjalan. Jika probe mendeteksi kontainer yang tidak sehat, kubelet akan menghentikan kontainer tersebut dan menerapkan restart policy. Jika kontainer tidak memiliki liveness probe yang dikonfigurasi, kubelet menganggap hasil liveness probe-nya selalu Success.

    Readiness probe

    Menentukan apakah sebuah kontainer siap melayani permintaan. Hanya Pod dalam status Ready yang menerima traffic. Asosiasi antara Service dan Endpoints-nya dikelola berdasarkan kesiapan Pod:

    • Ketika status Ready Pod bernilai False, Kubernetes menghapus alamat IP Pod dari daftar Endpoint yang terkait dengan Service tersebut.

    • Ketika status Ready Pod berubah menjadi True, Kubernetes menambahkan kembali alamat IP Pod ke dalam daftar Endpoint.

    Startup probe

    Menentukan kapan sebuah kontainer telah selesai melakukan startup. Gunakan probe ini untuk kontainer yang memerlukan waktu lama saat startup agar pemeriksaan liveness dan readiness tidak dijalankan sebelum inisialisasi selesai, yang dapat menyebabkan kontainer dihentikan secara prematur.

  • Metode pemeriksaan kesehatan yang didukung:

    Health check method

    Description

    http_get

    Mengirim permintaan HTTP GET untuk memeriksa kesehatan dan ketersediaan layanan. Pemeriksaan berhasil jika kode status respons berada dalam rentang 2xx atau 3xx.

    tcp_socket

    Mencoba membuka koneksi TCP untuk memeriksa kesehatan dan ketersediaan layanan.

    exec

    Menjalankan perintah tertentu di dalam kontainer. Hasil pemeriksaan ditentukan oleh kode keluar (exit code) perintah tersebut.

Siapkan custom image

Bungkus logika prediksi Anda dengan framework web. Contoh berikut menggunakan Flask:

import json
from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/', methods = ['GET','POST'])
def process_handle_func():
    """
       Parse the request body based on actual requirements
    """
    data = request.get_data().decode('utf-8')
    body = json.loads(data)
    res = process(body)
    """
       Set the response based on actual requirements
    """
    response = make_response(res)
    response.status_code = 200
    return response

def process(data):
    """
       Your prediction logic
    """
    return 'result'

if __name__ == '__main__':
    """
    Catatan: host harus diatur ke 0.0.0.0, jika tidak pemeriksaan kesehatan akan gagal saat penyebaran layanan.
    port harus sesuai dengan port yang ditentukan dalam file konfigurasi JSON untuk layanan yang diterapkan.
    """
    app.run(host='0.0.0.0', port=8000)

Buat Dockerfile untuk menyalin kode prediksi Anda dan menginstal paket yang diperlukan:

# Python example
FROM registry.cn-shanghai.aliyuncs.com/eas/bashbase-amd64:0.0.1
COPY ./process_code  /eas
RUN /xxx/pip install 需要的包
CMD ["/xxx/python", "/eas/xxx/app.py"] 

Untuk langkah-langkah membuat custom image, lihat Build Images on a Container Registry Enterprise Edition Instance. Tinjau Deploy model services with custom images untuk panduan pembuatan image. Sebagai alternatif, simpan kode Anda di sistem file NAS atau repositori Git dan pasang penyimpanan tersebut saat menyebar (lihat Storage mounts). Topik ini menggunakan pendekatan pertama untuk menunjukkan konfigurasi pemeriksaan kesehatan dalam Configure health checks when deploying a service.

Konfigurasikan pemeriksaan kesehatan saat menyebar layanan

Konfigurasikan pemeriksaan kesehatan dalam penyebaran kustom

  1. Login ke PAI console, pilih wilayah target di bagian atas halaman, pilih ruang kerja target di sebelah kanan, lalu klik Go to EAS.

  2. Pada tab Inference Service, klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.

  3. Pada bagian Environment Information, konfigurasikan parameter kunci berikut. Untuk parameter lainnya, lihat Custom deployment.

    Parameter

    Description

    Image Configuration

    Pilih Image Address, lalu masukkan alamat custom image Anda di kolom teks, misalnya, registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

    Command

    Perintah entrypoint kontainer. Hanya satu perintah yang didukung — skrip kompleks tidak diizinkan. Perintah harus sesuai dengan yang didefinisikan dalam Dockerfile Anda. Contoh: /data/eas/ENV/bin/python /data/eas/app.py.

    Masukkan nomor port tempat kontainer mendengarkan setelah startup, misalnya, 8000.

    Penting
    • Engine EAS mendengarkan pada port tetap 8080 dan 9090. Hindari menggunakan port-port ini untuk kontainer Anda.

    • Port harus sesuai dengan yang dikonfigurasi dalam file xxx.py yang dirujuk dalam perintah run.

  4. Pada bagian Features, buka panel Stability guarantee, aktifkan toggle Health Check, konfigurasikan parameter yang dijelaskan di bawah ini, lalu klik OK.

    Parameter pemeriksaan kesehatan

    Parameter

    Description

    Probe Type

    Tiga jenis probe didukung:

    • Liveness Probe: Memeriksa apakah kontainer berjalan secara normal.

    • Readiness Probe: Memverifikasi bahwa kontainer telah menyelesaikan inisialisasi dan siap menangani permintaan.

    • Startup Probe: Dirancang untuk aplikasi yang membutuhkan waktu tambahan untuk inisialisasi, mencegah kontainer yang startup-nya lambat salah ditandai sebagai gagal.

    Untuk deskripsi cara kerja masing-masing probe, lihat How it works.

    Check Method

    Tiga metode pemeriksaan kesehatan didukung:

    • http_get: Memanggil metode HTTP GET menggunakan alamat IP, port, dan path kontainer. Pemeriksaan berhasil jika kode status respons berada di antara 200 (inklusif) hingga 400 (eksklusif).

    • tcp_socket: Menjalankan pemeriksaan TCP menggunakan alamat IP dan port kontainer. Pemeriksaan berhasil jika koneksi TCP dapat dibuat.

    • exec (custom health check): Menjalankan perintah tertentu di dalam kontainer. Pemeriksaan berhasil jika perintah tersebut keluar dengan kode 0.

    Call Path

    Hanya tersedia ketika Check Method diatur ke http_get.

    URL server HTTP yang akan diperiksa. Awalannya adalah http://localhost. Akhiran path dapat dikustomisasi dan secara default bernilai /.

    Port Number

    Hanya tersedia ketika Check Method diatur ke http_get atau tcp_socket.

    Port yang akan diperiksa, misalnya, 8000.

    Command

    Hanya tersedia ketika Check Method diatur ke exec.

    Masukkan perintah yang akan dijalankan. Konsol secara otomatis mengonversi perintah tersebut ke format yang diperlukan dan menuliskannya ke dalam JSON penyebaran.

    Latency for Check Initialization

    Waktu tunda sebelum pemeriksaan kesehatan pertama dijalankan setelah kontainer dimulai. Nilai default-nya adalah 15 detik.

    Check Interval

    Seberapa sering pemeriksaan kesehatan dijalankan. Nilai default-nya adalah 10 detik. Frekuensi tinggi menambah beban pada Pod; frekuensi rendah menunda deteksi kesalahan kontainer.

    Check Timeout Period

    Waktu timeout untuk setiap pemeriksaan kesehatan. Nilai default-nya adalah 1 detik. Pemeriksaan yang melebihi durasi ini dianggap gagal.

    Check Success Threshold

    Jumlah pemeriksaan gagal berturut-turut yang diperlukan untuk menandai kontainer yang sebelumnya sehat sebagai tidak sehat. Nilai default-nya adalah 3 untuk readiness probe dan 1 untuk liveness dan startup probe.

    Check Failure Threshold

    Jumlah pemeriksaan sukses berturut-turut yang diperlukan untuk menandai kontainer yang sebelumnya tidak sehat sebagai sehat. Nilai default-nya adalah 1.

  5. Klik Deploy.

Konfigurasikan pemeriksaan kesehatan dalam penyebaran JSON

Buat file JSON bernama service.json. Contoh file ditunjukkan di bawah ini.

{
    "metadata": {
        "name": "test",
        "instance": 1,
        "enable_webservice": true
    },
    "cloud": {
        "computing": {
            "instance_type": "ml.gu7i.c16m60.1-gu30"
        }
    },
    "containers": [
        {
            "image":"registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz",
            "env":[
                {
                    "name":"VAR_NAME",
                    "value":"var_value"
                }
            ],
            "liveness_check":{
                "http_get":{
                    "path":"/",
                    "port":8000
                },
                "initial_delay_seconds":3,
                "period_seconds":3,
                "timeout_seconds":1,
                "success_threshold":2,
                "failure_threshold":4
            },
            "command":"/data/eas/ENV/bin/python /data/eas/app1.py",
            "port":8000
        }
    ]
}

Parameter kunci dijelaskan dalam tabel berikut. Untuk parameter lainnya, lihat JSON deployment.

Parameter

Description

image

Alamat custom image yang digunakan untuk menyebar layanan model.

EAS tidak mengizinkan akses jaringan publik. Gunakan alamat registri internal VPC, misalnya: registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

env

name

Nama variabel lingkungan yang diteruskan ke kontainer saat runtime.

value

Nilai variabel lingkungan tersebut.

command

Perintah entrypoint kontainer. Hanya satu perintah yang didukung — skrip kompleks tidak diizinkan. Contoh: /data/eas/ENV/bin/python /data/eas/app.py.

port

Port jaringan tempat proses di dalam kontainer mendengarkan, misalnya, 8000.

Penting

Port harus sesuai dengan port yang dikonfigurasi dalam file command field xxx.py.

liveness_check

Catatan

Menentukan liveness probe sebagai jenis probe pemeriksaan kesehatan. Anda juga dapat mengonfigurasi ini sebagai health_check (readiness probe) atau startup_check (startup probe).

http_get

Mengirim permintaan HTTP GET ke port 8000. Sub-parameter:

  • http_get.path: URL server HTTP yang akan diperiksa. Awalannya adalah http://localhost. Akhiran path dapat dikustomisasi dan secara default bernilai /.

  • http_get.port: Port server HTTP yang akan diperiksa.

Dua metode pemeriksaan kesehatan tambahan didukung:

  • tcp_socket: Menjalankan pemeriksaan TCP menggunakan alamat IP dan port kontainer. Pemeriksaan berhasil jika koneksi TCP dapat dibuat. Konfigurasi:

    "tcp_socket":{
        "port":8000
    }
  • exec: Menjalankan perintah tertentu di dalam kontainer. Pemeriksaan berhasil jika perintah tersebut keluar dengan kode 0. Konfigurasi:

    "exec":{
        "command":[
            "your_script",
            "with_args"
        ]
    }

initial_delay_seconds

Waktu tunda sebelum pemeriksaan kesehatan pertama dijalankan setelah kontainer dimulai. Nilai default-nya adalah 0 detik.

period_seconds

Seberapa sering pemeriksaan kesehatan dijalankan. Nilai default-nya adalah 10 detik. Frekuensi tinggi menambah beban pada Pod; frekuensi rendah menunda deteksi kesalahan kontainer.

timeout_seconds

Waktu timeout untuk setiap pemeriksaan kesehatan. Nilai default-nya adalah 1 detik. Pemeriksaan yang melebihi durasi ini dianggap gagal.

success_threshold

Jumlah pemeriksaan gagal berturut-turut yang diperlukan untuk menandai kontainer yang sebelumnya sehat sebagai tidak sehat. Nilai default-nya adalah 3 untuk readiness probe dan 1 untuk liveness dan startup probe.

failure_threshold

Jumlah pemeriksaan sukses berturut-turut yang diperlukan untuk menandai kontainer yang sebelumnya tidak sehat sebagai sehat. Nilai default-nya adalah 1.