Sobes.tech
Junior

Какви видове тестове съществуват за проверка на състоянието на услуги и приложения?

sobes.tech AI

Отговор от AI

Има няколко често срещани вида проби:

  • Проба за жизненост (Liveness): Определя дали приложението работи. Ако пробата не успее, Kubernetes рестартира пода. Използва се за откриване на зациклили процеси.

    • HTTP Get проби: Изпращат HTTP GET заявки към посочения път и порт.
    • TCP сокет проби: Проверяват възможността за свързване към посочения порт.
    • Exec проби: Изпълнява команда вътре в контейнера и проверява кода за връщане.
  • Проба за готовност (Readiness): Определя дали подът е готов да приема трафик. Ако пробата не успее, услугата не насочва трафик към този под. Използва се за определяне на готовността на приложението след стартиране или по време на актуализация.

    • Използва същите механизми като пробите за жизненост (HTTP Get, TCP сокет, Exec).
  • Проба за стартиране (Startup): Определя дали инициализацията на приложението е завършила. Ако пробата е конфигурирана, Kubernetes няма да изпълнява проби за жизненост и готовност, докато пробата за стартиране не бъде успешна. Полезна за бавно стартиращи приложения, за да се предотвратят преждевременни рестарти.

    • Използва същите механизми като другите проби.

Пример за конфигурация в Kubernetes:

livenessProbe: # Проверка за жизненост
  httpGet: # По HTTP
    path: /healthz # Път
    port: 8080 # Порт
  initialDelaySeconds: 15 # Забавяне преди първата проверка
  timeoutSeconds: 1 # Време за изчакване на отговора
readinessProbe: # Проверка за готовност
  tcpSocket: # По TCP
    port: 8080 # Порт
  initialDelaySeconds: 5 # Забавяне преди първата проверка
  periodSeconds: 10 # Интервал между проверките