All Products
Search
Document Center

Serverless App Engine:Konfigurasikan manajemen siklus hidup aplikasi

Last Updated:Jun 22, 2026

Jika Anda terbiasa dengan Kubernetes dan perlu menjalankan tindakan tertentu sebelum atau sesudah kontainer aplikasi dimulai atau dihentikan—seperti men-deploy resource atau melakukan graceful shutdown—Anda dapat mengonfigurasi manajemen siklus hidup aplikasi. Topik ini menjelaskan cara mengonfigurasi PostStart, PreStop, dan TerminationGracePeriodSeconds untuk aplikasi Serverless App Engine (SAE).

Ikhtisar

  • Kait Pod (atau kait kontainer), yang dikelola oleh komponen Kubernetes kubelet, menjalankan tugas kustom pada tahap-tahap penting dalam siklus hidup sebuah kontainer, termasuk segera setelah proses kontainer dimulai (PostStart) dan sebelum dihentikan (PreStop). Kait ini memungkinkan Kubernetes mengelola siklus hidup kontainer secara lebih fleksibel dan presisi. Untuk informasi selengkapnya, lihat Container Lifecycle Hooks.

    • PostStart: Kait siklus hidup yang dijalankan segera setelah kontainer dibuat untuk memberi tahu kontainer tentang event tersebut. Tidak ada parameter yang diteruskan ke penanganan kait. Jika penanganan gagal, kontainer akan dihentikan dan dijalankan ulang sesuai dengan kebijakan restart-nya.

    • PreStop: Kait siklus hidup yang dipicu sebelum kontainer dihentikan, biasanya digunakan untuk menjalankan tugas pembersihan atau melakukan graceful shutdown. Penanganan kait harus menyelesaikan eksekusinya sebelum Kubernetes mengirimkan sinyal terminasi (misalnya SIGTERM) ke kontainer. Terlepas dari hasil eksekusi penanganan, setelah selesai, Kubernetes akan mengirimkan sinyal SIGTERM dan menunggu periode tertentu sebelum secara paksa menghentikan kontainer.

  • TerminationGracePeriodSeconds: Pengaturan ini menentukan periode tenggang untuk terminasi kontainer, memungkinkannya menyelesaikan operasi pembersihan dan shutdown sebelum dihentikan secara paksa. Hal ini meningkatkan stabilitas dengan mencegah masalah seperti kehilangan data, kegagalan permintaan, dan ketidaktersediaan layanan akibat terminasi mendadak. Saat dikombinasikan dengan kait PreStop, pengaturan ini memungkinkan proses graceful shutdown yang lengkap.

Titik masuk

Titik masuk bervariasi tergantung skenario:

Buat aplikasi

  1. Masuk ke Konsol SAE. Di panel navigasi kiri, pilih . Pilih wilayah dan namespace, lalu klik Create Application.

  2. Pada halaman wizard Basic Information, konfigurasikan parameter yang diperlukan dan klik Next: Advanced Settings.

  3. Pada halaman Advanced Settings, temukan dan buka bagian Application Lifecycle Management.

Ubah aplikasi yang sedang berjalan

Peringatan

Men-deploy ulang aplikasi akan menyebabkan restart. Untuk menghindari gangguan layanan, lakukan deployment selama jam sepi.

  1. Masuk ke Konsol SAE. Di panel navigasi kiri, pilih . Pilih wilayah dan namespace, lalu klik nama aplikasi Anda.

  2. Pada halaman Basic Information aplikasi, klik Deploy Application.

  3. Pada halaman Deploy Application, temukan dan buka bagian Application Lifecycle Management.

Ubah aplikasi yang telah dihentikan

  1. Masuk ke Konsol SAE. Di panel navigasi kiri, pilih . Pilih wilayah dan namespace, lalu klik nama aplikasi Anda.

  2. Pada halaman Basic Information aplikasi, klik Modify Application Configurations.

  3. Pada halaman Modify Application Configurations, temukan dan buka bagian Application Lifecycle Management.

Prosedur

Pada bagian Application Lifecycle Management, konfigurasikan PostStart, PreStop, dan TerminationGracePeriodSeconds sesuai kebutuhan.

Kami menyarankan Anda mengonfigurasi ketiga pengaturan ini untuk membentuk loop manajemen siklus hidup yang lengkap bagi kontainer Anda, sehingga memastikan startup dan shutdown layanan berjalan lancar, pelepasan resource teratur, serta operasi tanpa downtime.

PostStart

Pada bagian Application Lifecycle Management, konfigurasikan kait PostStart di tab PostStart.

Catatan

SAE menyediakan dua interpreter shell:

  • >_ /bin/sh

  • >_ /bin/bash

Sebagai contoh, sebelum aplikasi dimulai, tulis konten Hello from the postStart handler ke file /usr/share/message.

Pilih >_/bin/sh dan masukkan perintah berikut di editor kode: echo "Hello from the postStart handler" > /usr/share/message.

Di lingkungan produksi, konfigurasikan pengaturan sesuai kebutuhan bisnis Anda. Contoh yang disediakan dalam topik ini hanya bertujuan verifikasi minimal dan tidak boleh digunakan di lingkungan produksi.

Verifikasi hasil:

Setelah aplikasi dibuat atau di-deploy ulang, gunakan Webshell untuk membuka terminal instans dan pastikan file /usr/share/message ada serta berisi konten yang diharapkan.

[~]$cat /usr/share/message
Hello from the postStart handler
[~]$

PreStop

Pada bagian Application Lifecycle Management, konfigurasikan kait PreStop di tab PreStop.

Catatan

SAE menyediakan dua interpreter shell:

  • >_ /bin/sh

  • >_ /bin/bash

Sebagai contoh, sebelum kontainer dihentikan, jalankan skrip untuk menulis Perform cleanup ke file /cleanup.log, lalu tunggu 100 detik untuk verifikasi.

Di lingkungan produksi, konfigurasikan pengaturan sesuai kebutuhan bisnis Anda. Contoh yang disediakan dalam topik ini hanya bertujuan verifikasi minimal dan tidak boleh digunakan di lingkungan produksi.

Pilih >_/bin/sh dan masukkan perintah berikut di editor kode: echo "Perform cleanup" > /cleanup.log && sleep 100.

Verifikasi hasil:

Pada halaman Basic Information aplikasi, klik Stop Application. Kemudian, gunakan Webshell untuk membuka terminal instans dan pastikan file /cleanup.log ada serta berisi konten yang diharapkan.

[/]$cat /cleanup.log
Perform cleanup
[/]$

TerminationGracePeriodSeconds

Pada bagian Application Lifecycle Management, di tab TerminationGracePeriodSeconds, atur timeout graceful shutdown menjadi 60 detik.

Jika timeout graceful shutdown lebih singkat daripada waktu yang dibutuhkan kontainer untuk berhenti secara mulus, kontainer akan dihentikan secara paksa (Sinyal: SIGKILL, kode keluar: 137). Waktu yang dibutuhkan ini mencakup eksekusi kait PreStop dan penanganan sinyal SIGTERM oleh kontainer. Misalnya, jika kontainer memerlukan 100 detik untuk berhenti secara mulus tetapi timeout diatur hanya 60 detik, kontainer akan dihentikan sebelum proses graceful shutdown-nya selesai.

Verifikasi hasil:

Dalam contoh ini, timeout graceful shutdown sengaja diatur lebih pendek daripada waktu graceful shutdown kontainer untuk tujuan verifikasi.

Pada halaman Basic Information aplikasi, klik Stop Application. Kemudian, gunakan Webshell untuk membuka terminal instans dan pastikan kontainer melaporkan kode keluar 137.

Selama graceful shutdown, kontainer tetap berada dalam status Terminating hingga timeout yang dikonfigurasi habis.
[/]${"metadata":{},"status":"Failure","message":"command terminated with non-zero exit code: error executing command [env COLUMNS=137 ROWS=46 LINES=46 /bin/sh -i -c /bin/bash || clear;/bin/sh], exit code 137","reason":"NonZeroExitCode","details":{"causes":[{"reason":"ExitCode","message":"137"}]}}