All Products
Search
Document Center

Platform For AI:Pemeriksaan kesehatan

Last Updated:Mar 25, 2026

EAS menyediakan fitur pemeriksaan kesehatan berbasis mekanisme pemeriksaan kesehatan Kubernetes untuk secara otomatis mendeteksi dan memulihkan kontainer yang gagal. Fitur ini memastikan hanya instans yang sehat yang menerima traffic serta mencegah alokasi sumber daya ke instans yang tidak sehat. Topik ini menjelaskan cara mengonfigurasi fitur pemeriksaan kesehatan tersebut.

Batasan

Fitur pemeriksaan kesehatan hanya tersedia saat Anda menyebar layanan menggunakan custom image yang mencakup logika pemeriksaan kesehatan.

Cara kerja

Fitur pemeriksaan kesehatan EAS memanfaatkan mekanisme pemeriksaan kesehatan Kubernetes dengan menggunakan probe dan metode pemeriksaan kesehatan untuk memantau kesehatan serta ketersediaan layanan Anda. Fitur ini mencakup komponen-komponen berikut:

  • Jenis probe yang didukung:

    Probe type

    Description

    Liveness probes

    Menentukan apakah sebuah kontainer sedang berjalan. Jika pemeriksaan liveness probe gagal, kubelet akan menghentikan kontainer tersebut dan menerapkan kebijakan restart yang telah dikonfigurasi. Jika sebuah kontainer tidak memiliki liveness probe, kubelet mengasumsikan bahwa probe selalu mengembalikan Success dan kontainer tersebut dalam keadaan hidup.

    Readiness probes

    Menentukan apakah sebuah kontainer siap melayani permintaan. Hanya Pod yang siap yang dapat menerima traffic. Asosiasi antara Service dan Endpoints-nya bergantung pada kesiapan Pod tersebut:

    • Jika sebuah Pod tidak siap, alamat IP-nya dihapus dari daftar Endpoint Service terkait.

    • Ketika Pod menjadi siap, alamat IP-nya ditambahkan kembali ke daftar Endpoint.

    Startup probes

    Menentukan kapan aplikasi dalam kontainer telah dimulai. Probe ini menunda pemeriksaan liveness dan readiness hingga kontainer sepenuhnya diinisialisasi, sehingga mencegah sistem menghentikan kontainer yang memerlukan waktu lama untuk startup sebelum siap.

  • Metode pemeriksaan kesehatan yang didukung:

    Health check method

    Description

    http_get

    Mengirim permintaan HTTP GET untuk memeriksa kesehatan layanan. Kode status respons menentukan apakah pemeriksaan berhasil.

    tcp_socket

    Mencoba membuka koneksi TCP untuk memeriksa kesehatan layanan.

    exec

    Menjalankan perintah tertentu di dalam kontainer. Pemeriksaan dianggap berhasil jika perintah tersebut keluar dengan kode 0.

Siapkan custom image

Anda dapat menggunakan framework web untuk mengenkapsulasi logika prediksi Anda. Contoh berikut menggunakan framework Flask dan file app.py:

import json
from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/', methods = ['GET','POST'])
def process_handle_func():
    """ 
       Parsing badan permintaan sesuai kebutuhan Anda.
    """
    data = request.get_data().decode('utf-8')
    body = json.loads(data)
    res = process(body)
    """ 
       Atur respons sesuai kebutuhan Anda.
    """
    response = make_response(res)
    response.status_code = 200
    return response

def process(data):
    """ 
       Logika prediksi Anda
    """
    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 penyebaran JSON untuk layanan tersebut.
    """
    app.run(host='0.0.0.0', port=8000)

Anda dapat menulis Dockerfile sederhana untuk menyalin kode prediksi dan menginstal paket yang diperlukan. Berikut adalah contoh Dockerfile:

# Contoh ini menggunakan Python.
FROM registry.cn-shanghai.aliyuncs.com/eas/bashbase-amd64:0.0.1
COPY ./process_code  /eas
RUN /xxx/pip install required_packages
CMD ["/xxx/python", "/eas/xxx/app.py"] 

Untuk langkah-langkah detail tentang cara membuat custom image, lihat Build Images on a Container Registry Enterprise Edition Instance. Untuk informasi lebih lanjut tentang pembuatan custom image, lihat Custom images. Sebagai alternatif, Anda dapat menyimpan kode Anda di sistem file NAS atau repositori Git dan menyambungkannya ke instans layanan melalui storage mount selama penyebaran. Untuk informasi lebih lanjut, lihat Storage mount. Topik ini menjelaskan cara menggunakan metode pertama untuk mengonfigurasi fitur pemeriksaan kesehatan selama penyebaran layanan.

Konfigurasikan pemeriksaan kesehatan

Penyebaran kustom

  1. Masuk ke PAI console. Pilih wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (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 informasi tentang parameter lainnya, lihat Deploy a custom inference service.

    Parameter

    Description

    Image Configuration

    Pilih Image Address dan masukkan alamat custom image Anda. Misalnya, registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

    Command

    Perintah entri untuk image. Hanya perintah tunggal yang didukung, bukan skrip kompleks. Perintah ini harus konsisten dengan perintah dalam Dockerfile Anda. Misalnya, /data/eas/ENV/bin/python /data/eas/app.py.

    Anda juga harus memasukkan nomor port. Ini adalah port HTTP lokal tempat image mendengarkan setelah dimulai, seperti 8000.

    Penting
    • Engine EAS mendengarkan pada port tetap 8080 dan 9090. Port kontainer Anda tidak boleh 8080 atau 9090.

    • Port ini harus sesuai dengan port yang ditentukan dalam file xxx.py yang dirujuk oleh perintah run.

    Health Check

    Aktifkan sakelar Health Check, konfigurasikan parameter, lalu klik OK. Untuk detail parameter, lihat tabel Health check parameters.

    Catatan

    Anda dapat menambahkan hingga tiga pemeriksaan kesehatan, masing-masing dengan jenis probe yang unik.

    Parameter pemeriksaan kesehatan

    Parameter

    Description

    Probe Type

    Jenis probe berikut didukung:

    • Liveness Probe: Memeriksa apakah kontainer berada dalam keadaan berjalan normal.

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

    • Startup Probe: Dirancang untuk aplikasi yang memerlukan waktu inisialisasi lama. Probe ini mencegah sistem salah menandai kontainer sebagai gagal karena startup yang lambat.

    Untuk informasi lebih lanjut tentang cara kerja masing-masing probe, lihat How it works.

    Check Method

    Metode pemeriksaan kesehatan berikut didukung:

    • http_get: Memanggil metode HTTP GET menggunakan alamat IP, port, dan path kontainer. Kontainer dianggap sehat jika kode status respons lebih besar dari atau sama dengan 200 dan kurang dari 400.

    • tcp_socket: Melakukan pemeriksaan TCP menggunakan alamat IP dan port kontainer. Kontainer dianggap sehat jika koneksi TCP dapat dibuat.

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

    Call Path

    Parameter ini hanya tersedia ketika Anda memilih http_get untuk Check Method.

    URL akses untuk pemeriksaan server HTTP memiliki awalan http://localhost dan akhiran yang dapat dikustomisasi dengan nilai default /.

    Port Number

    Parameter ini hanya tersedia ketika Anda memilih http_get atau tcp_socket untuk Check Method.

    Nomor port yang akan diperiksa, misalnya 8000.

    Command

    Parameter ini hanya tersedia ketika Anda memilih exec untuk Check Method.

    Masukkan perintah yang akan dijalankan. Konsol secara otomatis mengonversi input Anda ke format yang diperlukan dan menambahkannya ke deployment JSON.

    Latency for Check Initialization

    Jumlah waktu dalam detik yang ditunggu setelah kontainer dimulai sebelum pemeriksaan kesehatan pertama dilakukan. Default: 15.

    Check Interval

    Interval (dalam detik) antara pemeriksaan kesehatan. Default: 10. Interval yang pendek dapat meningkatkan overhead Pod, sedangkan interval yang panjang dapat menunda deteksi kegagalan.

    Check Timeout Period

    Timeout untuk pemeriksaan kesehatan dalam detik. Default: 1. Jika pemeriksaan timeout, dianggap gagal.

    Check Success Threshold

    Jumlah kegagalan berturut-turut setelah keberhasilan yang diperlukan untuk menandai kontainer sebagai gagal. Nilai default adalah 3 untuk readiness probe, dan 1 untuk liveness dan startup probe.

    Check Failure Threshold

    Jumlah keberhasilan berturut-turut yang diperlukan setelah kegagalan untuk menandai kontainer sebagai sehat. Default: 1.

  4. Setelah mengonfigurasi parameter, klik Deploy.

Penyebaran JSON

Buat file baru dalam format JSON bernama service.json. Berikut adalah contoh isi file tersebut.

{
    "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
        }
    ]
}

Tabel berikut menjelaskan parameter kunci. Untuk informasi tentang parameter lainnya, lihat JSON deployment.

Parameter

Description

image

Alamat custom image yang digunakan untuk menyebar layanan model.

Karena EAS tidak menyediakan akses jaringan publik, Anda perlu menggunakan alamat registri internal VPC untuk penyebaran. Misalnya, registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

env

name

Nama variabel lingkungan.

value

Nilai variabel lingkungan.

command

Perintah entri untuk image hanya mendukung format perintah tunggal dan tidak mendukung skrip kompleks. Misalnya: /data/eas/ENV/bin/python /data/eas/app.py.

port

Port jaringan tempat proses dalam image mendengarkan. Misalnya, 8000.

Penting

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

liveness_check

Catatan

Contoh ini menggunakan liveness probe. Anda juga dapat menggunakan health_check untuk readiness probe atau startup_check untuk startup probe.

http_get

Menggunakan metode HTTP GET untuk memeriksa port tertentu. Parameter berikut didukung:

  • http_get.path: Path akses server HTTP yang akan diperiksa, yang diawali dengan http://localhost, memiliki akhiran yang ditentukan pengguna, dan default-nya /.

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

Dua metode pemeriksaan kesehatan berikut juga didukung:

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

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

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

initial_delay_seconds

Waktu tunda (dalam detik) setelah kontainer dimulai sebelum pemeriksaan kesehatan pertama dijalankan. Default: 0.

period_seconds

Interval (dalam detik) antara pemeriksaan kesehatan. Default: 10. Interval yang pendek dapat meningkatkan overhead Pod, sedangkan interval yang panjang dapat menunda deteksi kegagalan.

timeout_seconds

Jumlah detik setelah pemeriksaan kesehatan timeout. Default: 1. Timeout dianggap sebagai kegagalan.

failure_threshold

Jumlah kegagalan berturut-turut setelah keberhasilan yang diperlukan untuk menandai kontainer sebagai gagal. Nilai default adalah 3 untuk readiness probe, dan 1 untuk liveness dan startup probe.

success_threshold

Jumlah keberhasilan berturut-turut yang diperlukan setelah kegagalan untuk menandai kontainer sebagai berhasil. Default: 1.