Kubernetes Probes


Kubernetes (K8s) є потужним інструментом для оркестрації контейнерів, який допомагає розгортати, масштабувати та управляти програмними аплікаціями. У світі, де висока доступність та надійність є критично важливими, Kubernetes пропонує інструменти для моніторингу стану вашого додатку. Однією з ключових особливостей K8s для забезпечення надійності є probes, або датчики.

Що таке Probes?

Probes у Kubernetes — це механізми, які дозволяють Kubelet (агенту, що запущений на кожній ноді) перевіряти стан контейнера. Використовуючи probes, Kubernetes може вирішити, коли перезапустити контейнер, коли відмовитись від запитів на контейнер (якщо він не готовий обробляти запити) та коли контейнер готовий приймати трафік.

Види Probes

У Kubernetes існують три основні типи probes, які використовуються для різних цілей:

Конфігурація Probes

Probes можуть бути налаштовані з допомогою трьох основних параметрів:

Крім того, для конфігурації probes можуть бути використані такі методи:

Приклад Конфігурації

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mycontainer
    image: myimage
    livenessProbe:
      httpGet:
        path: /health
        port: 8080
      initialDelaySeconds: 15
      timeoutSeconds: 2
    readinessProbe:
      exec:
        command:
        - cat
        - /app/is_ready
      initialDelaySeconds: 5
      periodSeconds: 5

У цьому прикладі для контейнера налаштовано liveness probe, яка виконує HTTP GET запит на шлях /health через 15 секунд після старту контейнера і кожні 2 секунди після цього. Readiness probe виконує команду cat /app/is_ready кожні 5 секунд, починаючи з 5 секунд після старту контейнера.