Ask Belajar Kubernetes 6: Probe AdityaDees - AdityaDees

Hot

https://publishers.chitika.com/

Contact us for advertising.

23 February 2022

Ask Belajar Kubernetes 6: Probe AdityaDees

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.

  1. Liveness, yaitu pengecekan ketika ada error di pod, maka pod akan otamatis di-restart.
  2. Readiness, yaitu pengecekan ketika ada error di pod, maka semua traffic akan di-blok.
  3. 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:

  1. HTTP get, untuk aplikasi web
  2. TCP socket, untuk aplikasi socket server/web
  3. Command Exec, untuk aplikasi general

Konfigurasi Pengecekan

  1. initialDelaySeconds, yaitu delay di awal ketika pod baru dijalankan.
  2. periodSeconds, seberapa sering pengecekan dilakukan (setiap berapa detik).
  3. timeoutSeconds, seberapa lama respon yang diterima. Jika lebih, maka dianggap error.
  4. successThreshold, seberapa banyak pengecekan agar pod bisa dianggap sehat. 
  5. 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

https://payclick.com/

Contact us for advertising.