全部产品
Search
文档中心

Serverless App Engine:Konfigurasikan manajemen siklus hidup aplikasi

更新时间:Jul 06, 2025

Jika Anda sudah familiar dengan Kubernetes dan ingin menjalankan operasi tertentu sebelum atau sesudah kontainer aplikasi dimulai atau dihentikan, Anda dapat mengonfigurasi manajemen siklus hidup aplikasi. Sebagai contoh, Anda dapat menerapkan sumber daya sebelum kontainer berjalan atau mematikan aplikasi secara mulus sebelum kontainer dihentikan. Topik ini menjelaskan cara mengonfigurasi PostStart, PreStop, dan TerminationGracePeriodSeconds di Serverless App Engine (SAE).

Ikhtisar

  • Pod hook (kontainer hook) adalah mekanisme yang diimplementasikan oleh komponen kubelet yang dikelola oleh Kubernetes. Mekanisme ini digunakan untuk mengeksekusi tugas kustom pada tahap-tahap penting dalam siklus hidup kontainer, termasuk sebelum proses kontainer dimulai (preStart) dan dihentikan (preStop). Hook memungkinkan Kubernetes untuk mengelola siklus hidup kontainer dengan fleksibilitas dan presisi yang lebih besar. Untuk informasi lebih lanjut, lihat Container Lifecycle Hooks.

    • PostStart Setting: Hook ini langsung dipicu setelah sebuah kontainer dibuat. Hook memberi tahu Kubernetes bahwa kontainer telah dibuat. Hook tidak mengirim parameter ke penanganan hook yang sesuai. Jika penanganan hook gagal dieksekusi, kontainer akan dihentikan, dan kebijakan restart kontainer digunakan untuk menentukan apakah akan me-restart kontainer tersebut.

    • PreStop Setting: Hook ini dipicu sebelum sebuah kontainer dihapus, sering digunakan untuk operasi pembersihan atau mematikan layanan secara mulus. Penanganan hook harus sepenuhnya dieksekusi sebelum permintaan untuk menghapus kontainer dikirim ke Docker daemon. Docker daemon mengirim semafor SIGTERM kepada dirinya sendiri untuk menghapus kontainer, tanpa memedulikan hasil eksekusi penanganan hook.

  • Timeout Duration Settings of Graceful Shutdown (TerminationGracePeriodSeconds): Pengaturan ini memberikan waktu jeda untuk pematian mulus, memastikan bahwa tugas pembersihan dan pematian yang diperlukan selesai sebelum aplikasi dipaksa dihentikan. Hal ini meningkatkan stabilitas dan keandalan sistem serta mencegah masalah seperti kehilangan data, kegagalan permintaan, dan ketidaktersediaan layanan yang disebabkan oleh penghentian paksa. Dikombinasikan dengan hook PreStop, ini memfasilitasi proses pematian mulus yang lengkap.

Persiapan

Prosedur bervariasi tergantung pada skenario:

Buat aplikasi

  1. Masuk ke Konsol SAE. Di panel navigasi sebelah kiri, pilih Applications > Applications. Pada halaman yang muncul, pilih wilayah di bilah navigasi atas dan namespace dari daftar drop-down Namespace, lalu klik Create Application.

  2. Di bagian Basic Information halaman Create Application, konfigurasikan parameter yang diperlukan dan klik Next: Advanced Settings.

  3. Pada halaman yang muncul, temukan dan perluas bagian Application Lifecycle Management.

Modifikasi aplikasi yang sedang berjalan

Peringatan

Setelah Anda menerapkan ulang aplikasi, aplikasi tersebut akan di-restart. Untuk mencegah kesalahan tak terduga seperti gangguan bisnis, kami sarankan Anda menerapkan aplikasi selama jam-jam sepi.

  1. Masuk ke Konsol SAE. Di panel navigasi sebelah kiri, pilih Applications > Applications. Pada halaman yang muncul, pilih wilayah di bilah navigasi atas dan namespace dari daftar drop-down Namespace, lalu klik nama aplikasi target.

  2. Di halaman Basic Information aplikasi target, klik Deploy Application.

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

Modifikasi aplikasi yang dihentikan

  1. Masuk ke Konsol SAE. Di panel navigasi sebelah kiri, pilih Applications > Applications. Pada halaman yang muncul, pilih wilayah di bilah navigasi atas dan namespace dari daftar drop-down Namespace, lalu klik nama aplikasi target.

  2. Di halaman Basic Information aplikasi target, klik Modify Application Configurations.

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

Prosedur

Di bagian Application Lifecycle Management, konfigurasikan PostStart Settings, PreStop Settings, dan Timeout Duration Settings of Graceful Shutdown sesuai kebutuhan.

Kami merekomendasikan Anda mengonfigurasi ketiganya untuk mencapai manajemen siklus hidup yang lengkap untuk kontainer, memastikan startup dan shutdown layanan yang lancar, pelepasan sumber daya yang teratur, dan tanpa gangguan bisnis.

Pengaturan PostStart

Konfigurasikan PostStart di tab PostStart Settings di bagian Application Lifecycle Management.

Catatan

SAE menyediakan dua interpreter shell:

  • >_ /bin/sh

  • >_ /bin/bash

Dalam contoh ini, tulis Hello from the postStart handler di dalam skrip /usr/share/message sebelum Anda memulai aplikasi.

Dalam lingkungan produksi, konfigurasikan parameter berdasarkan kebutuhan bisnis Anda. Contoh yang diberikan dalam bagian ini hanya untuk verifikasi minimal fitur dan tidak boleh digunakan dalam lingkungan produksi.

oNFSDw9bjS

Verifikasi:

Setelah aplikasi dibuat atau diterapkan ulang, gunakan Webshell untuk memeriksa apakah skrip /usr/share/message berisi konten yang diharapkan.

R5oYr5WL5f

Pengaturan PreStop

Konfigurasikan PreStop di tab PreStop Settings di bagian Application Lifecycle Management.

Catatan

SAE menyediakan dua interpreter shell:

  • >_ /bin/sh

  • >_ /bin/bash

Dalam contoh ini, jalankan perintah Perform cleanup dan tulis Perform cleanup di dalam skrip /cleanup.log. Tunggu selama 100 detik sebelum melakukan verifikasi.

Dalam lingkungan produksi, konfigurasikan parameter berdasarkan kebutuhan bisnis Anda. Contoh yang diberikan dalam bagian ini hanya untuk verifikasi minimal fitur dan tidak boleh digunakan dalam lingkungan produksi.

je7qGGznHp

Verifikasi:

Di halaman Basic Information aplikasi, klik Stop Application, lalu gunakan Webshell untuk memeriksa apakah file /cleanup.log berisi konten yang diharapkan.

fEznm2T8Jm

Pengaturan Durasi Timeout Pematian Mulus (TerminationGracePeriodSeconds)

Konfigurasikan durasi timeout pematian mulus di tab Timeout Duration Settings of Graceful Shutdown di bagian Application Lifecycle Management.

Jika durasi timeout pematian mulus yang Anda atur lebih pendek daripada periode pematian mulus (termasuk waktu untuk eksekusi hook PreStop dan waktu untuk proses kontainer SIGTERM signal), kontainer akan dipaksa dihentikan (nama sinyal: SIGKILL, kode keluar: 137) saat timeout berakhir, mengganggu proses pematian mulus. Sebagai contoh, jika periode pemberhentian pematian mulus kontainer adalah 100 detik dan periode timeout pematian mulus diatur menjadi 60 detik, kontainer akan dihentikan sebelum pematian mulus selesai.

bXgkgc94CQ

Verifikasi:

Dalam contoh ini, durasi timeout pematian mulus diatur lebih pendek daripada periode pematian mulus untuk tujuan verifikasi.

Di halaman Basic Information aplikasi, klik Stop Application, lalu gunakan Webshell untuk memeriksa apakah kode keluar 137 muncul di dalam kontainer.

Selama pematian mulus, kontainer akan tetap berada dalam status Terminating hingga periode timeout terlampaui.

51N2ViXRg9