Какви видове тестове съществуват за проверка на състоянието на услуги и приложения?
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 # Интервал между проверките