У меня есть простое приложение для весенней загрузки со следующим зондом:
livenessProbe:
httpGet:
path: /health
port: 56017
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
В конечной точке работоспособности я просто выбрасываю исключение, в результате чего оно возвращает 500. Вот статистика свежего пода после просмотра множества перезапусков:
PS C:\Users\xxx\yyy\Desktop> k get pods -n xyz -w
NAME READY STATUS RESTARTS AGE
springapi-577c6f94b9-9r4lm 1/1 Running 0 15s
springapi-577c6f94b9-9r4lm 1/1 Running 1 69s
springapi-577c6f94b9-9r4lm 1/1 Running 2 2m10s
springapi-577c6f94b9-9r4lm 1/1 Running 3 3m10s
springapi-577c6f94b9-9r4lm 1/1 Running 4 4m10s
springapi-577c6f94b9-9r4lm 1/1 Running 5 5m10s
springapi-577c6f94b9-9r4lm 0/1 CrashLoopBackOff 5 6m8s
springapi-577c6f94b9-9r4lm 1/1 Running 6 7m33s
springapi-577c6f94b9-9r4lm 0/1 CrashLoopBackOff 6 8m28s
springapi-577c6f94b9-9r4lm 1/1 Running 7 11m
springapi-577c6f94b9-9r4lm 0/1 CrashLoopBackOff 7 12m
springapi-577c6f94b9-9r4lm 1/1 Running 8 17m
springapi-577c6f94b9-9r4lm 1/1 Running 9 18m
springapi-577c6f94b9-9r4lm 0/1 CrashLoopBackOff 9 19m
springapi-577c6f94b9-9r4lm 1/1 Running 10 24m
springapi-577c6f94b9-9r4lm 1/1 Running 11 25m
springapi-577c6f94b9-9r4lm 0/1 CrashLoopBackOff 11 26m
Я заметил, что первые несколько перезапусков происходят быстро, как и ожидалось. Затем № 3, № 4, № 5 с интервалом в 1 минуту. Пока вроде имеет смысл. После этого я начинаю видеть CrashLoopBackOff, и время между двумя перезапусками увеличивается до 5 минут. Почему CrashLoopBackOff? и почему перезапуски так сильно расходятся после нескольких перезапусков?
Я видел логи стручка. Ничего необычного. Вывод журнала выглядит примерно так (эти журналы после многих перезапусков):
2021-04-04 00:46:49.172 DEBUG 1 --- Spring boot startup stuff ...
...
2021-04-04 00:47:23.121 INFO 1 --- Spring boot startup stuff ...
2021-04-04 00:47:23.178 ERROR 1 --- exception stack trace
2021-04-04 00:47:33.010 ERROR 1 --- exception stack trace
2021-04-04 00:47:43.005 ERROR 1 --- exception stack trace
2021-04-04 00:47:43.092 INFO 1 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
Когда я запускаю команду описать, я вижу сообщения вроде
Container springapi failed liveness probe, will be restarted
Liveness probe failed: HTTP probe failed with statuscode: 500
Back-off restarting failed container
Кстати, в течение этих 5 минут модуль остается в состоянии CrashLoopBackOff. Я перезапускал капсулу много раз. Я вижу одно и то же поведение каждый раз.
startupProbe
... 04.04.2021