memahami probe - Setelah belajar Namespace, selanjutnya kita akan belajar Probe. Probe adalah sistem pengecekan pada kubernetes yang berfungsi untuk me-restart pod jika ada kesalahan. Probe memiliki 2 jenis pengecekan atau fitur utama yaitu Liveness, Readiness, dan Startup Probe.
- Liveness, yaitu pengecekan ketika ada error di pod, maka pod akan otamatis di-restart.
- Readiness, yaitu pengecekan ketika ada error di pod, maka semua traffic akan di-blok.
- Startup, yaitu pengecekan yang terjadi hanya di awal up pod. Tujuannya adalah memastikan pod berjalan dengan baik dan siap menerima traffic.
Mekanisme Pengecekan Probe
Ada 3 cara melakukan pengecekan probe berdasarkan jenis aplikasi dalam pod yang digunakan, yaitu:
- HTTP get, untuk aplikasi web
- TCP socket, untuk aplikasi socket server/web
- Command Exec, untuk aplikasi general
Konfigurasi Pengecekan
- initialDelaySeconds, yaitu delay di awal ketika pod baru dijalankan.
- periodSeconds, seberapa sering pengecekan dilakukan (setiap berapa detik).
- timeoutSeconds, seberapa lama respon yang diterima. Jika lebih, maka dianggap error.
- successThreshold, seberapa banyak pengecekan agar pod bisa dianggap sehat.
- failureThreshold, seberapa banyak pengecekan agar pod dianggap error.
Membuat Pod Dengan Probe Di Dalamnya
apiVersion: v1
kind: Pod
metadata:
name: pod-name
labels:
label-key1: label-value1
annotations:
annotation-key1: annotation-value
spec:
containers:
- name: container-name
image: image-name
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /health
port: 80
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
startupProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
Di dalam konfigurasi probe, kita bisa menambahkan liveness, readiness, dan startup secara bersamaan, atau salah satu sesuai kebutuhan.
Kita akan membuat pod nginx dengan menerapkan liveness probe. Karena nginx dapat diakses melalui http, kita akan menggunakan metode pengecekan httpGet.
pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
label-key1: label-value1
annotations:
annotation-key1: annotation-value
spec:
containers:
- name: container-name
image: image-name
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
$ kubectl create -f pod-nginx.yaml
Selanjutnya, kita akan mencoba mematikan lalu menyalakan kembali minikube agar pod yang kita buat error.
$ minikube stop
$ minikube start
Lalu kita cek pod yang kita buat tadi.
Kolom RESTARTS menunjukan bahwa pod berhasil direstart sebanyak 4 kali (karena saya mencoba berkali-kali). Kita bisa melihat log nya melalui perintah berikut.
$ kubectl describe pod nginx
Oke, itulah penjelasan mengenai Prob. Selanjutnya kita akan belajar tentang Replication Controller.
No comments:
Post a Comment
Komentar yang bermutu Insyaallah akan mendapatkan berkah