Anda dapat mengonfigurasi probe liveness atau probe readiness untuk mendeteksi status kesehatan aplikasi berbasis cloud-native, layanan mikro, atau aplikasi berbasis kontainer. Ini membantu memastikan bahwa aplikasi Anda sehat dan siap menerima lalu lintas. Dibandingkan dengan kebijakan probing di Kubernetes sumber terbuka, Knative menggunakan probing yang lebih sering dan aktif untuk mengurangi waktu mulai dingin pod.
Cara kerjanya
Anda dapat mengonfigurasi probe liveness dan readiness untuk memastikan bahwa aplikasi Anda sehat dan siap menerima lalu lintas.
Probe liveness: digunakan untuk memantau status kesehatan kontainer. Jika sebuah kontainer dalam keadaan Gagal atau layanan di dalam kontainer gagal diluncurkan, probe liveness akan me-restart kontainer tersebut.
Probe readiness: digunakan untuk mengelola penskalaan otomatis aplikasi secara efisien agar hanya pod dalam keadaan Siap yang dapat menerima lalu lintas. Ini meningkatkan stabilitas dan kecepatan respons layanan.
Gambar berikut menunjukkan cara kerja probe di Knative.
Tentukan probe readiness atau probe liveness dalam CustomResource (CR) Layanan Knative.
Kubelet mengirimkan probe liveness untuk mendeteksi kontainer yang ditentukan.
Knative menulis ulang dan mengirimkan probe readiness ke kontainer queue-proxy. Pendeteksian dimulai dari komponen Activator atau kontainer queue-proxy untuk memastikan seluruh tautan jaringan dikonfigurasi dan siap.
CatatanJika tidak ada probe yang didefinisikan, Knative akan mendefinisikan probe readiness default untuk kontainer utama. Probe readiness default memeriksa soket TCP pada port layanan Knative.
Knative mendefinisikan probe readiness untuk kontainer queue-proxy. Status queue-proxy menggabungkan hasil dari probe readiness yang ditulis ulang oleh semua kontainer, termasuk kontainer utama dan kontainer sidecar. Ketika kontainer queue-proxy memberikan respons sukses dan lapisan jaringan Knative dikonfigurasi, Knative menganggap bahwa pod sehat dan siap menerima lalu lintas.
Prasyarat
Knative telah diterapkan di kluster ACS. Untuk informasi lebih lanjut, lihat Terapkan Knative.
Konfigurasikan port listening kustom
Metode konfigurasi
Tambahkan bidang readinessProbe atau livenessProbe ke Layanan Knative untuk mengonfigurasi probe readiness dan probe liveness, masing-masing. Metode konfigurasi sama dengan yang digunakan di Kubernetes. Untuk informasi lebih lanjut, lihat Konfigurasikan Probe Liveness, Readiness, dan Startup.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: runtime
namespace: default
spec:
template:
spec:
containers:
- name: first-container
image: <YOUR-IMAGE> # Ganti <YOUR-IMAGE> dengan nama gambar aktual.
ports:
- containerPort: 8080
readinessProbe: # Periksa kapan kontainer siap setelah kontainer mulai.
httpGet: # Port yang digunakan untuk probe liveness melalui koneksi soket TCP.
port: 8080 # Tentukan port selain containerPort untuk probe readiness.
path: "/health"
livenessProbe: # Periksa apakah kontainer masih hidup.
tcpSocket:
port: 8080
- name: second-container
image: <YOUR-IMAGE>
readinessProbe:
httpGet:
port: 8089
path: "/health"
livenessProbe:
tcpSocket:
port: 8089Jenis probe yang didukung
Jenis probe | Deskripsi |
| Kirim permintaan HTTP GET untuk memeriksa status kesehatan dan kelangsungan hidup layanan, serta konfirmasi keberhasilan probe berdasarkan kode status yang dikembalikan. |
| Mencoba membuat koneksi TCP untuk memeriksa status kesehatan dan kelangsungan hidup layanan. |
| Jalankan perintah tertentu di dalam kontainer dan konfirmasi keberhasilan probe berdasarkan kode keluar. |
| Panggil metode yang didefinisikan oleh Protokol Pemeriksaan Kesehatan gRPC untuk memeriksa status kesehatan dan kelangsungan hidup layanan. |
Probe PreStop kustom tidak didukung karena Knative sudah menyediakan hook PreStop bawaan untuk mendukung shutdown yang lancar.
Referensi
Untuk informasi lebih lanjut tentang cara mengonfigurasi Sertifikat untuk mengakses Layanan melalui HTTPS menggunakan nama domain kustom, lihat Konfigurasikan Sertifikat untuk Mengakses Layanan Knative melalui HTTPS.