RestartCount представляет количество раз, когда контейнер внутри модуля был перезапущен, это основано на количестве мертвых контейнеров, которые еще не были удалены. Обратите внимание, что это рассчитывается из мертвых контейнеров.
-w
в команде для контрольного флага, а различные заголовки перечислены ниже
$ kubectl get pods -w
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 21m
Чтобы получить подробный вывод, используйте -o wide
flag
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 1 21h 10.244.2.36 worker-node-2 <none> <none>
Таким образом, поле READY представляет контейнеры внутри модулей и может быть детально рассмотрено командой description pod. См. Жизненный цикл POD
$ kubectl describe pod nginx| grep -i -A6 "Conditions"
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
RESTARTS Поле отслеживается под счетчиком перезапусков, извлеките его из описания модуля, как показано ниже.
$ kubectl describe pod nginx | grep -i "Restart"
Restart Count: 0
Итак, в качестве теста мы сейчас попробуем перезапустить вышеуказанный контейнер и посмотреть, какие поля обновлены. Мы находим узел, на котором работает наш контейнер, и уничтожаем его с узла с помощью команды docker, и он должен автоматически перезапускаться с помощью kubernetes
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 21h 10.244.2.36 worker-node-2 <none> <none>
ubuntu@worker-node-2:~$ sudo docker ps -a | grep -i nginx
4c8e2e6bf67c nginx "nginx -g 'daemon of…" 22 hours ago Up 22 hours
ubuntu@worker-node-2:~$ sudo docker kill 4c8e2e6bf67c
4c8e2e6bf67c
- Состояние POD изменяется на ERROR
- Количество READY равно 0/1
ubuntu@cluster-master:~$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 0/1 Error 0 21h 10.244.2.36 worker-node-2 <none> <none>
Как только POD восстанавливает неисправный контейнер.
- Количество READY снова равно 1/1
- STATUS возвращается к работе
- Счетчик RESTARTS увеличивается на 1
ubuntu@cluster-master:~$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 1 21h 10.244.2.36 worker-node-2 <none> <none>
Проверьте также перезапуск с помощью команды описаний
$ kubectl describe pods nginx | grep -i "Restart"
Restart Count: 1
Значения в вашем выводе не являются несовместимыми .. именно так будет работать модуль с restartPolicy of Always
, он будет пытаться вернуть отказавший контейнер, пока не будет достигнут предел CrashLoopBackOff.
См. Примеры состояния POD
Модуль работает и имеет один контейнер. Контейнер выходит с успехом. Событие завершения журнала.
Если restartPolicy имеет значение:
- Всегда: перезапустить контейнер; Стручок фазы остается работающим.
- OnFailure: Стручок фазы становится успешным.
- Никогда: Стручок фазы становится успешным.