全部产品
Search
文档中心

Enterprise Distributed Application Service:Konfigurasi hook dan probe siklus hidup aplikasi

更新时间:Nov 11, 2025

Anda dapat mengonfigurasi hook siklus hidup PostStart dan PreStop di konsol Enterprise Distributed Application Service (EDAS) untuk menjalankan operasi kustom segera setelah aplikasi dimulai atau sebelum berhenti. Selain itu, Anda juga dapat mengonfigurasi probe Liveness dan Readiness di konsol EDAS guna memeriksa status aktif dan kesiapan kontainer. Topik ini menjelaskan cara mengonfigurasi hook siklus hidup aplikasi serta probe Liveness dan Readiness untuk kontainer.

Informasi latar belakang

Dalam banyak kasus, Anda perlu menjalankan operasi tertentu tepat sebelum atau sesudah aplikasi dimulai atau dihentikan. Misalnya, men-deploy sumber daya sebelum aplikasi dimulai, melakukan shutdown yang mulus, atau memberi tahu layanan atau aplikasi lain sebelum aplikasi berhenti berjalan. EDAS mengintegrasikan fitur lifecycle hook Kubernetes sehingga Anda dapat mengonfigurasi hook siklus hidup PostStart dan PreStop untuk kontainer.

Saat men-deploy aplikasi dalam kluster Kubernetes, Anda harus memastikan apakah Pod masih aktif dan siap memberikan layanan. EDAS mengintegrasikan fitur probe Pod dari Kubernetes, yang memungkinkan Anda mengonfigurasi probe Liveness untuk menentukan kapan kontainer harus direstart dan probe Readiness untuk memeriksa apakah kontainer siap menerima lalu lintas.

Konfigurasi hook dan probe siklus hidup aplikasi saat membuat aplikasi

  1. Masuk ke Konsol EDAS. Di panel navigasi sebelah kiri, pilih Application Management > Applications. Halaman Applications akan muncul. Di bilah navigasi atas, pilih wilayah. Di bagian atas halaman, pilih namespace. Di pojok kiri atas, klik Create Application.

  2. Pada langkah Basic Information, tentukan Jenis Kluster dan Lingkungan Runtime Aplikasi, lalu klik Next. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Cluster Type

    Jenis kluster tempat Anda ingin men-deploy aplikasi. Pilih Kubernetes Clusters.

    Application Runtime Environment

    Lingkungan runtime aplikasi. Pilih lingkungan runtime aplikasi berdasarkan jenis aplikasi yang di-host.

    • Java

      • Custom: Pilih opsi ini jika Anda ingin menggunakan gambar kustom untuk men-deploy aplikasi di kluster Kubernetes.

      • Java: Pilih opsi ini jika Anda ingin menggunakan paket JAR universal untuk men-deploy aplikasi sebagai aplikasi Dubbo atau Spring Boot. Anda dapat mengatur parameter Lingkungan Java setelah memilih opsi ini.

      • Tomcat: Pilih opsi ini jika Anda ingin menggunakan paket WAR universal untuk men-deploy aplikasi sebagai aplikasi Dubbo atau Spring. Anda dapat mengatur parameter Lingkungan Java dan Versi Kontainer setelah memilih opsi ini.

      • EDAS-Container (HSF): Pilih opsi ini jika Anda ingin menggunakan paket WAR atau FatJar untuk men-deploy aplikasi sebagai aplikasi High-speed Service Framework (HSF). Anda dapat mengatur parameter Lingkungan Java, Versi Pandora, dan Versi Ali-Tomcat setelah memilih opsi ini.

    • PHP: Pilih opsi ini jika aplikasi adalah aplikasi PHP yang berjalan di Apache HTTP Server.

    • Node.js, C++, Go, and Other Languages: Pilih opsi ini jika Anda ingin menggunakan gambar kustom untuk men-deploy aplikasi di kluster Kubernetes. Proses konfigurasi untuk aplikasi multi-bahasa tidak dijelaskan dalam topik ini.

  3. Pada langkah Configurations, konfigurasikan informasi lingkungan, informasi dasar, dan metode penyebaran untuk aplikasi, atur parameter sumber daya terkait, lalu klik Next.

  4. Pada langkah Advanced Settings, buka bagian Application Life Cycle Management dan konfigurasikan parameter berikut.

    Parameter

    Deskripsi

    PostStart

    Tentukan hook kontainer PostStart. Hook ini langsung dipicu setelah kontainer dibuat. Hook ini memberi tahu Kubernetes bahwa kontainer telah dibuat. Anda tidak perlu pass parameter ke penanganan hook terkait. Jika penanganan hook gagal dieksekusi, sistem akan menghentikan kontainer dan menentukan apakah akan merestart kontainer berdasarkan kebijakan restart kontainer. Untuk informasi selengkapnya, lihat Container Lifecycle Hooks.

    PreStop

    Tentukan hook kontainer PreStop. Hook ini dipicu sebelum kontainer dihapus. Penanganan hook terkait harus dieksekusi sebelum permintaan penghapusan kontainer dikirim ke daemon Docker. Daemon Docker mengirim sinyal SIGTERM ke dirinya sendiri untuk menghapus kontainer, terlepas dari hasil eksekusi penanganan hook. Untuk informasi selengkapnya, lihat Container Lifecycle Hooks.

    TerminationGracePeriod configuration

    Tentukan periode timeout yang diizinkan untuk shutdown yang mulus sebuah Pod. Pastikan hook PreStop selesai dan aplikasi memproses sinyal SIGTERM dalam periode timeout tersebut. Anda juga dapat menyesuaikan periode timeout untuk mengontrol durasi penghapusan Pod.

    Liveness

    Tentukan probe Liveness. Probe ini memantau status kontainer Anda dan memeriksa apakah aplikasi dalam kondisi sehat. Jika aplikasi tidak sehat, kontainer akan dihapus dan dibuat ulang. Untuk informasi selengkapnya, lihat Pod Lifecycle.

    Readiness

    Tentukan probe Readiness. Probe ini memantau status kontainer Anda dan memeriksa apakah aplikasi telah dimulai dan dapat berjalan sesuai harapan. Jika aplikasi tidak dapat berjalan sesuai harapan, status kontainer akan diperbarui. Untuk informasi selengkapnya, lihat Pod Lifecycle.

  5. Klik Create Application.

  6. Di halaman Creation Completed, periksa informasi di bagian Basic Information, Configurations, dan Advanced Settings, lalu klik Create Application.

    Di bagian atas halaman Application Overview, klik View Details. Di halaman Change List, lihat proses perubahan aplikasi. Tunggu beberapa menit hingga aplikasi diterapkan. Setelah proses perubahan aplikasi selesai, lihat status instans di bagian Basic Information pada halaman Application Overview. Jika status menunjukkan bahwa Pod sedang Berjalan, berarti aplikasi telah diterapkan.

Konfigurasi hook dan probe siklus hidup aplikasi saat memperbarui aplikasi

Anda dapat mengonfigurasi hook dan probe siklus hidup aplikasi saat membuat aplikasi atau memperbarui konfigurasi tersebut saat men-deploy ulang aplikasi.

  1. Masuk ke Konsol EDAS.

  2. Di panel navigasi sebelah kiri, klik Application Management > Applications. Di bilah navigasi atas, pilih wilayah. Di bagian atas halaman, pilih namespace. Pilih Container Service or Serverless Kubernetes Cluster dari daftar drop-down Cluster Type. Kemudian, temukan aplikasi yang ingin Anda deploy dan klik nama aplikasi tersebut.

  3. Di halaman Overview atau Basic information, pilih Deploy > Deploy di pojok kanan atas.

  4. Di halaman Select Deployment Mode, pilih mode penyebaran dan klik Start Deployment di pojok kanan atas bagian mode penyebaran yang ditentukan.

  5. Konfigurasikan parameter lingkungan dan paket penyebaran aplikasi, lalu buka bagian Application Life Cycle Management. Di bagian tersebut, konfigurasikan parameter sesuai kebutuhan bisnis Anda, lalu klik OK.

    Parameter

    Deskripsi

    PostStart

    Tentukan hook kontainer PostStart. Hook ini langsung dipicu setelah kontainer dibuat. Hook ini memberi tahu Kubernetes bahwa kontainer telah dibuat. Anda tidak perlu pass parameter ke penanganan hook terkait. Jika penanganan hook gagal dieksekusi, sistem akan menghentikan kontainer dan menentukan apakah akan merestart kontainer berdasarkan kebijakan restart kontainer. Untuk informasi selengkapnya, lihat Container Lifecycle Hooks.

    PreStop

    Tentukan hook kontainer PreStop. Hook ini dipicu sebelum kontainer dihapus. Penanganan hook terkait harus dieksekusi sebelum permintaan penghapusan kontainer dikirim ke daemon Docker. Daemon Docker mengirim sinyal SIGTERM ke dirinya sendiri untuk menghapus kontainer, terlepas dari hasil eksekusi penanganan hook. Untuk informasi selengkapnya, lihat Container Lifecycle Hooks.

    TerminationGracePeriod configuration

    Tentukan periode timeout yang diizinkan untuk shutdown yang mulus sebuah Pod. Pastikan hook PreStop selesai dan aplikasi memproses sinyal SIGTERM dalam periode timeout tersebut. Anda juga dapat menyesuaikan periode timeout untuk mengontrol durasi penghapusan Pod.

    Liveness

    Tentukan probe Liveness. Probe ini memantau status kontainer Anda dan memeriksa apakah aplikasi dalam kondisi sehat. Jika aplikasi tidak sehat, kontainer akan dihapus dan dibuat ulang. Untuk informasi selengkapnya, lihat Pod Lifecycle.

    Readiness

    Tentukan probe Readiness. Probe ini memantau status kontainer Anda dan memeriksa apakah aplikasi telah dimulai dan dapat berjalan sesuai harapan. Jika aplikasi tidak dapat berjalan sesuai harapan, status kontainer akan diperbarui. Untuk informasi selengkapnya, lihat Pod Lifecycle.

    Penting

    Setelah Anda mengklik OK, aplikasi akan direstart. Disarankan untuk melakukan operasi ini di luar jam sibuk.

Konfigurasi manajemen siklus hidup aplikasi

Konfigurasi hook PostStart dan PreStop

Anda dapat mengonfigurasi hook PostStart dengan cara yang sama seperti mengonfigurasi hook PreStop. Hook dapat dikonfigurasi dalam mode berikut.

Mode

Deskripsi

Exec

Menjalankan perintah tertentu di dalam kontainer. Jika nilai 0 dikembalikan setelah perintah dijalankan, berarti perintah tersebut berhasil dijalankan tanpa kesalahan.

HttpGet

Mengirim permintaan HTTP GET ke titik akhir kontainer tertentu. Jika kode status yang dikembalikan lebih besar dari atau sama dengan 200 tetapi kurang dari 400, permintaan tersebut berhasil.

Dalam mode HttpGet, Anda dapat mengonfigurasi parameter berikut:

  • Host: alamat host tujuan permintaan HTTP. Jika parameter ini dikosongkan, alamat IP Pod akan digunakan.

  • Path: jalur tujuan permintaan HTTP. Nilai default: /.

  • Port: nomor port tujuan permintaan HTTP.

  • Scheme: jenis protokol. Protokol HTTP dan HTTPS didukung. Nilai default: HTTP.

  • HttpHeaders: header permintaan HTTP kustom.

Contoh berikut menunjukkan cara mengonfigurasi hook PostStart dalam mode Exec dan HttpGet di EDAS:

  • Exec mode

    Sebagai contoh, Anda ingin menjalankan perintah berikut setelah kontainer dibuat:

    echo "container started"

    Anda dapat mengonfigurasi hook PostStart dalam mode Exec dengan salah satu metode berikut di EDAS:

    • Metode 1: Pisahkan perintah menjadi parameter-parameter berbeda. Metode ini cocok untuk perintah pendek dengan sedikit parameter.

      FGHU

    • Metode 2: Mulai shell dan jalankan perintah di dalam shell tersebut. Metode ini cocok untuk perintah panjang dengan banyak parameter.

      srgd

  • HttpGet mode

    Gambar berikut menunjukkan cara mengonfigurasi hook PostStart dalam mode HttpGet. Setelah kontainer dimulai, permintaan HTTP GET dikirim ke http://example.com:8080/healthz.

    sregtd

    Catatan

    Jika hook PostStart atau PreStop gagal dijalankan, kontainer akan secara otomatis direstart. Informasi kegagalan eksekusi hook dapat ditemukan di catatan perubahan aplikasi.

Konfigurasi probe Liveness dan Readiness

EDAS mendukung jenis probe kontainer Kubernetes berikut.

Probe kontainer

Deskripsi

LivenessProbe

Memeriksa apakah kontainer masih aktif. Jika pemeriksaan gagal, Kubernetes secara otomatis menghentikan kontainer dan merestart kontainer berdasarkan kebijakan restart.

ReadinessProbe

Memeriksa apakah kontainer siap menerima lalu lintas. Jika pemeriksaan berhasil, Kubernetes menambahkan Pod ke daftar layanan tempat Pod tersebut berada sehingga Pod mulai menerima lalu lintas.

Anda dapat mengonfigurasi probe Liveness dan Readiness dalam salah satu mode berikut.

Mode

Deskripsi

Exec

Menjalankan perintah tertentu di dalam kontainer. Jika nilai 0 dikembalikan setelah perintah dijalankan, pemeriksaan berhasil.

HttpGet

Mengirim permintaan HTTP GET ke titik akhir kontainer tertentu. Jika kode status yang dikembalikan lebih besar dari atau sama dengan 200 tetapi kurang dari 400, pemeriksaan berhasil.

TcpSocket

Memeriksa apakah port TCP tertentu yang sesuai dengan alamat IP kontainer diaktifkan. Jika port diaktifkan, pemeriksaan berhasil.

Dalam mode-mode di atas, Anda dapat mengonfigurasi parameter berikut untuk probe Liveness atau Readiness.

Parameter

Deskripsi

InitialDelaySeconds

Waktu tunda dari saat kontainer dimulai hingga pemeriksaan probe pertama dilakukan. Satuan: detik. Nilai valid: 1 hingga 1000.

PeriodSeconds

Interval antara dua pemeriksaan berturut-turut. Satuan: detik. Nilai valid: 1 hingga 1000.

SuccessThreshold

Jumlah pemeriksaan sukses berturut-turut yang harus terjadi setelah kegagalan sebelum pemeriksaan dinyatakan sukses. Nilai valid: 1 hingga 1000. Nilai valid untuk probe Liveness: 1.

TimeoutSeconds

Waktu timeout untuk satu pemeriksaan. Satuan: detik. Nilai valid: 1 hingga 1000.

FailureThreshold

Jumlah pemeriksaan gagal berturut-turut yang harus terjadi setelah keberhasilan sebelum pemeriksaan dinyatakan gagal. Nilai valid: 1 hingga 1000.

Gambar berikut menunjukkan contoh konfigurasi probe Liveness dalam mode TcpSocket. Dalam contoh ini, parameter Host dikosongkan sehingga alamat IP Pod digunakan sebagai alamat host. Pemeriksaan dilakukan menggunakan port 18081. Pemeriksaan pertama dimulai 60 detik setelah kontainer dimulai, dengan interval 10 detik. Jika salah satu pemeriksaan berhasil, Pod dianggap aktif. Waktu timeout untuk setiap pemeriksaan adalah lima detik. Jika tiga pemeriksaan berturut-turut gagal, Kubernetes akan menghentikan kontainer dan merestartnya berdasarkan kebijakan restart.

Livess

Verifikasi hasil

Setelah mengonfigurasi hook siklus hidup aplikasi, Anda dapat memverifikasi konfigurasi tersebut dengan langkah-langkah berikut.

Sebagai contoh, Anda telah mengonfigurasi skrip Hello from the postStart handler sebelum memulai aplikasi. Setelah aplikasi diterapkan, jalankan perintah berikut di web shell Anda:

cat /usr/share/message

Periksa apakah skrip Hello from the postStart handler ada di file Anda. Jika skrip tersebut ada, konfigurasi tersebut valid.

Lifecycle configured

Grup DingTalk untuk kluster ACK dan Serverless Kubernetes di EDAS

Jika Anda memiliki pertanyaan atau saran saat menggunakan Container Service for Kubernetes (ACK) dan kluster Serverless Kubernetes di EDAS, kirimkan tiket. Untuk memberikan masukan, Anda juga dapat bergabung ke grup DingTalk dengan mencari ID grup DingTalk 23197114.