全部产品
Search
文档中心

Platform For AI:Pemeriksaan Kesehatan

更新时间:Jul 16, 2025

Elastic Algorithm Service (EAS) menyediakan fitur pemeriksaan kesehatan yang menggunakan mekanisme pemeriksaan kesehatan Kubernetes. Fitur ini secara otomatis mendeteksi dan memulihkan kontainer yang gagal, memastikan hanya instance sehat yang menerima lalu lintas dan sumber daya tidak dialokasikan ke instance yang tidak sehat. Topik ini menjelaskan cara mengonfigurasi fitur pemeriksaan kesehatan.

Batasan

Fitur pemeriksaan kesehatan hanya dapat dikonfigurasi saat menggunakan gambar kustom yang berisi logika pemeriksaan kesehatan untuk menerapkan layanan.

Cara kerjanya

Fitur pemeriksaan kesehatan EAS memanfaatkan mekanisme pemeriksaan kesehatan Kubernetes untuk mendeteksi dan mengelola status kesehatan serta ketersediaan layanan melalui teknologi probe dan metode pemeriksaan kesehatan. Tabel berikut menjelaskan jenis-jenis probe dan metode pemeriksaan kesehatan.

  • Jenis-Jenis Probe

    Jenis Probe

    Deskripsi

    Liveness probe

    Kubelet menggunakan liveness probe untuk memeriksa apakah kontainer masih hidup, membunuh kontainer yang tidak sehat, dan kemudian melakukan operasi selanjutnya berdasarkan kebijakan restart. Jika sebuah kontainer tidak diperiksa oleh liveness probe, kubelet menganggap bahwa liveness probe mengembalikan Success untuk kontainer tersebut. Ini menunjukkan bahwa kontainer masih hidup.

    Readiness probe

    Readiness probe digunakan untuk memeriksa apakah sebuah kontainer siap menerima permintaan. Hanya pod yang berada dalam status Ready yang dapat menerima permintaan. Hubungan antara layanan dan titik akhir bergantung pada apakah sebuah pod siap.

    • Jika nilai field Ready adalah False, Kubernetes menghapus alamat IP pod dari daftar titik akhir yang terkait dengan layanan.

    • Setelah nilai field Ready berubah menjadi True, Kubernetes menambahkan alamat IP pod ke daftar titik akhir yang terkait dengan layanan.

    Startup probe

    Kubelet menggunakan startup probe untuk mengetahui kapan sebuah kontainer diluncurkan. Anda dapat menggunakan startup probe untuk memastikan bahwa liveness probe dan readiness probe hanya dikirim ke kontainer setelah kontainer diluncurkan. Startup probe dapat digunakan untuk melakukan pemeriksaan liveness pada kontainer yang memiliki kecepatan mulai lambat. Dengan cara ini, kontainer tidak dibunuh oleh kubelet sebelum kontainer diluncurkan.

  • Metode Pemeriksaan Kesehatan

    Metode Pemeriksaan Kesehatan

    Deskripsi

    http_get

    Kirim permintaan HTTP GET untuk memeriksa status kesehatan dan kelangsungan hidup layanan, dan konfirmasi apakah probe berhasil berdasarkan kode status yang dikembalikan.

    tcp_socket

    Mencoba membuat koneksi TCP untuk memeriksa status kesehatan dan kelangsungan hidup layanan.

    exec

    Jalankan perintah tertentu di dalam kontainer dan konfirmasi apakah probe berhasil berdasarkan kode keluar.

Siapkan gambar kustom

Anda dapat memilih kerangka web untuk mengenkapsulasi logika prediksi. Dalam contoh ini, kerangka Flask digunakan. Berikut adalah contoh file app.py:

import json
from flask import Flask, request, make_response

app = Flask(__name__)

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

def process(data):
    """ 
       Logika prediksi Anda
    """
    return 'result'

if __name__ == '__main__':
    """
    Anda harus mengatur parameter host ke 0.0.0.0. Jika tidak, pemeriksaan kesehatan mungkin gagal selama penyebaran layanan. 
    Nomor port yang Anda tentukan untuk parameter port harus sama dengan nomor port yang ditentukan dalam file konfigurasi JSON layanan yang Anda sebarkan. 
    """
    app.run(host='0.0.0.0', port=8000)

Tulis Dockerfile sederhana untuk menyalin kode prediksi ke dalam file dan menginstal paket yang diperlukan. Contoh berikut menunjukkan isi Dockerfile:

# Dalam contoh ini, Python digunakan.
FROM registry.cn-shanghai.aliyuncs.com/eas/bashbase-amd64:0.0.1
COPY ./process_code  /eas
RUN /xxx/pip install Nama paket yang Anda butuhkan
CMD ["/xxx/python", "/eas/xxx/app.py"] 

Untuk informasi tentang cara membuat gambar kustom, lihat Gunakan instance Container Registry Enterprise Edition untuk membangun gambar. Untuk detail lebih lanjut tentang gambar kustom, lihat Sebarkan layanan model menggunakan gambar kustom. Anda juga dapat menyimpan kode di File Storage NAS (NAS) atau repositori Git, kemudian pasang penyimpanan ke instance layanan untuk menulis kode selama penyebaran layanan. Untuk informasi lebih lanjut, lihat Pasang penyimpanan ke layanan. Bagian berikut menjelaskan cara mengonfigurasi fitur pemeriksaan kesehatan selama penyebaran layanan dengan menyalin kode prediksi ke Dockerfile.

Konfigurasikan fitur pemeriksaan kesehatan selama penyebaran layanan

Konfigurasikan fitur pemeriksaan kesehatan di konsol PAI

  1. Masuk ke konsol PAI. Pilih wilayah di bagian atas halaman, pilih ruang kerja yang diinginkan, dan klik Enter Elastic Algorithm Service (EAS).

  2. Klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.

  3. Di bagian Environment Information halaman Custom Deployment, konfigurasikan parameter kunci berikut. Untuk informasi tentang parameter lainnya, lihat Parameter untuk penyebaran kustom di konsol.

    Parameter

    Deskripsi

    Image Configuration

    Pilih Image Address dan masukkan alamat gambar kustom yang telah disiapkan. Contoh: registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

    Command to Run

    Perintah entri gambar. Anda hanya dapat memasukkan satu perintah. Skrip kompleks tidak didukung. Perintah harus sesuai dengan perintah dalam Dockerfile. Contoh: /data/eas/ENV/bin/python /data/eas/app.py.

    Anda juga harus memasukkan nomor port, yaitu port HTTP lokal tempat gambar mendengarkan setelah gambar dimulai. Contoh: 8000.

    Penting
    • Kami sarankan Anda tidak menentukan port 8080 dan port 9090 karena mesin EAS mendengarkan di port tersebut.

    • Nomor port harus sama dengan nomor port yang dikonfigurasi di file xxx.py yang ditentukan dalam perintah.

    Health Check

    Aktifkan Health Check. Setelah mengonfigurasi parameter terkait, dan klik OK. Untuk instruksi konfigurasi parameter rinci, lihat Parameter pemeriksaan kesehatan.

    Catatan

    Anda dapat menambahkan hingga tiga item pemeriksaan kesehatan, masing-masing dengan satu jenis probe. Jenis probe tidak boleh duplikat.

    Parameter Pemeriksaan Kesehatan

    Parameter

    Deskripsi

    Probe Type

    Jenis-jenis probe berikut didukung:

    • Liveness probe: memeriksa apakah kontainer berjalan seperti yang diharapkan.

    • Readiness probe: memastikan bahwa kontainer diinisialisasi dan siap memproses permintaan.

    • Startup probe: mencegah aplikasi ditandai salah sebagai gagal karena peluncuran lambat kontainer. Probe ini dirancang untuk aplikasi yang memerlukan waktu lama untuk diinisialisasi.

    Untuk informasi tentang prinsip kerja setiap jenis probe, lihat Cara kerjanya.

    Check Method

    Metode pemeriksaan kesehatan berikut didukung:

    • http_get: Panggil metode HTTP GET menggunakan alamat IP, nomor port, dan jalur kontainer. Jika kode status respons lebih besar dari atau sama dengan 200 dan kurang dari 400, kontainer sehat.

    • tcp_socket: Lakukan pemeriksaan TCP menggunakan alamat IP dan nomor port kontainer. Jika koneksi TCP terbentuk, kontainer sehat.

    • exec (Custom Health Check): Jalankan perintah tertentu di dalam kontainer. Jika kode keluar adalah 0 setelah operasi berhasil, pemeriksaan kesehatan berhasil.

    Call Path

    Parameter ini tersedia hanya jika Anda mengatur parameter Check Method ke http_get.

    Titik akhir server HTTP tempat Anda ingin melakukan pemeriksaan kesehatan. Awalan titik akhir adalah http://localhost. Anda harus menentukan akhiran kustom untuk titik akhir. Akhiran default adalah /.

    Port Number

    Parameter ini tersedia hanya jika Anda mengatur parameter Check Method ke http_get atau tcp_socket.

    Nomor port untuk pemeriksaan kesehatan. Contoh: 8000.

    Command

    Parameter ini tersedia hanya jika Anda mengatur parameter Check Method ke exec(Custom Health Check).

    Perintah yang ingin Anda jalankan. Frontend secara otomatis mengonversi perintah ke format yang sesuai dan menulis perintah ke file konfigurasi layanan JSON.

    Latency for Check Initialization

    Waktu yang diperlukan untuk memulai pemeriksaan kesehatan pertama setelah kontainer diluncurkan. Nilai default: 0. Unit: detik.

    Check Interval

    Frekuensi pemeriksaan kesehatan. Nilai default: 10. Unit: detik. Frekuensi tinggi menghasilkan overhead tambahan untuk pod. Frekuensi rendah dapat menyebabkan kesalahan kontainer diabaikan.

    Check Timeout Period

    Periode waktu habis pemeriksaan kesehatan. Nilai default: 1. Unit: detik. Jika pemeriksaan kesehatan habis waktu, pemeriksaan kesehatan dianggap gagal.

    Check Success Threshold

    Jumlah minimum pemeriksaan kesehatan gagal berturut-turut setelah pemeriksaan kesehatan berhasil sebelum layanan dianggap tidak sehat. Nilai default untuk readiness probe: 3. Nilai default untuk liveness dan startup probe: 1.

    Check Failure Threshold

    Jumlah minimum pemeriksaan kesehatan berhasil berturut-turut setelah pemeriksaan kesehatan gagal sebelum layanan dianggap sehat. Nilai default: 1.

  4. Setelah mengonfigurasi parameter, klik Deploy.

Konfigurasikan fitur pemeriksaan kesehatan pada klien lokal

  1. Unduh klien EASCMD dan lengkapi autentikasi identitas. Dalam contoh ini, Windows 64-bit digunakan.

  2. Buat file konfigurasi layanan bernama service.json di direktori tempat klien berada. Contoh berikut menunjukkan isi file:

    {
        "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 Semua Parameter Layanan Model.

    Parameter

    Deskripsi

    image

    Alamat gambar kustom yang digunakan untuk menerapkan layanan model.

    EAS tidak mendukung akses Internet. Anda perlu mengakses gambar menggunakan endpoint VPC repositori gambar tempat gambar diunggah. Contoh: registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz.

    env

    name

    Nama variabel lingkungan yang digunakan untuk meluncurkan kontainer berdasarkan gambar.

    value

    Nilai variabel lingkungan yang digunakan untuk meluncurkan kontainer berdasarkan gambar.

    command

    Perintah entri gambar. Anda hanya dapat memasukkan satu perintah. Skrip kompleks, seperti /data/eas/ENV/bin/python /data/eas/app.py, tidak didukung.

    port

    Port jaringan tempat proses dalam gambar mendengarkan. Contoh: 8000.

    Penting

    Nomor port harus sesuai dengan nomor port yang dikonfigurasi di file xxx.py yang ditentukan di command.

    liveness_check

    Catatan

    liveness_check menunjukkan bahwa probe liveness digunakan dalam pemeriksaan kesehatan. Anda juga dapat menentukan health_check atau startup_check.

    http_get

    Metode pemeriksaan HTTP GET yang digunakan untuk mengirim permintaan melalui port 8000. Perhatikan parameter berikut:

    • http_get.path: titik akhir server HTTP tempat Anda melakukan pemeriksaan kesehatan. Awalan titik akhir adalah http://localhost. Anda harus menentukan akhiran kustom untuk titik akhir. Akhiran default adalah/.

    • http_get.port: port tempat Anda melakukan pemeriksaan kesehatan pada HTTP Server.

    Anda juga dapat menggunakan metode pemeriksaan kesehatan berikut:

    • tcp_socket: Lakukan pemeriksaan TCP menggunakan alamat IP dan nomor port kontainer. Jika koneksi TCP terbentuk, kontainer sehat. Metode konfigurasi:

      "tcp_socket":{
          "port":8000
      }
    • exec: Jalankan perintah tertentu di dalam kontainer. Jika kode keluar adalah 0 setelah eksekusi berhasil, pemeriksaan kesehatan berhasil. Metode konfigurasi:

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

    initial_delay_seconds

    Waktu yang diperlukan untuk memulai pemeriksaan kesehatan pertama setelah kontainer diluncurkan. Nilai default: 0. Unit: detik.

    period_seconds

    Frekuensi pemeriksaan kesehatan. Nilai default: 10. Unit: detik. Frekuensi tinggi menghasilkan overhead tambahan untuk pod. Frekuensi rendah dapat menyebabkan kesalahan kontainer diabaikan.

    timeout_seconds

    Periode waktu habis pemeriksaan kesehatan. Nilai default: 1. Unit: detik. Jika pemeriksaan kesehatan habis waktu, pemeriksaan kesehatan dianggap gagal.

    success_threshold

    Jumlah minimum pemeriksaan kesehatan gagal berturut-turut setelah pemeriksaan kesehatan berhasil sebelum layanan dianggap tidak sehat. Nilai default untuk readiness probe: 3. Nilai default untuk liveness dan startup probe: 1.

    failure_threshold

    Jumlah minimum pemeriksaan kesehatan berhasil berturut-turut setelah pemeriksaan kesehatan gagal sebelum layanan dianggap sehat. Nilai default: 1.

  3. Jalankan perintah berikut di direktori tempat file JSON berada untuk menerapkan layanan. Untuk informasi lebih lanjut, lihat Jalankan perintah untuk menggunakan klien EASCMD.

    eascmdwin64.exe create service.json