#kubernetes #kubelet #kube-controller-manager
#kubernetes #kubelet #kube-контроллер-менеджер
Вопрос:
Если состояние модуля равно Failed
, Kubernetes попытается создать новые модули, пока не достигнет terminated-pod-gc-threshold
in kube-controller-manager
. В результате в кластере останется много Failed
модулей, которые необходимо очистить.
Существуют ли другие причины, кроме Evicted
того, что вызовет Pod Failed
?
Комментарии:
1. Что
kubectl describe pod NAME
говорит? Пожалуйста, добавьте вывод к вашему вопросу. Правильно ли настроены проверки работоспособности модуля? Можете ли вы показать их конфигурацию?2. @John Я не видел других причин, кроме
Evicted
тех, которые вызывают PodFailed
, и хочу знать, есть ли другие причины: D3. О, так это скорее теоретический вопрос?
4. Да, я хочу знать, видел ли кто-нибудь причины, отличные от
Evicted
тех, которые вызывают PodFailed
.
Ответ №1:
Может быть много причин для состояния POD FAILED
. Вам просто нужно проверить наличие проблем (если таковые существуют), выполнив команду
kubectl -n <namespace> describe pod <pod-name>
Внимательно проверьте EVENTS
раздел, в котором перечислены все события, произошедшие во время создания модуля. Надеюсь, вы сможете точно определить причину сбоя оттуда.
Однако существует несколько причин сбоя модуля POD, некоторые из них следующие:
- Неправильный образ, используемый для модуля.
- В модуль передаются неправильные команда / аргументы.
- Kubelet не удалось проверить работоспособность модуля (т. Е. Сбой проверки работоспособности).
- Модуль не прошел проверку работоспособности.
- Проблема в сетевом плагине CNI (неправильная конфигурация плагина CNI, используемого для работы в сети).
Например:
В приведенном выше примере не удалось извлечь изображение «not-so-busybox», поскольку оно не существует, поэтому модуль НЕ удалось запустить. Состояние модуля и события четко описывают проблему.
Ответ №2:
Просто сделайте это:
kubectl get pods <pod_name> -o yaml
И в выходных данных, ближе к концу, вы можете увидеть что-то вроде этого:
Это даст вам хорошее представление о том, где именно произошел сбой модуля и что произошло.
Ответ №3:
Модули не выдержат сбоев планирования, сбоев узлов или других удалений, таких как нехватка ресурсов или в случае обслуживания узла. Модули не должны создаваться вручную, но почти всегда с помощью контроллеров, таких как развертывания (самовосстановление, репликация и т.д.).
Причина, по которой модуль не удался или был завершен, может быть получена с помощью
kubectl describe pod <pod_name>
Другие ситуации, с которыми я столкнулся при сбое модуля:
- Проблемы с изображением (больше не существует)
- Когда модуль пытается получить доступ, например, к ConfigMap или секретам, но он не найден в пространстве имен.
- Сбой проверки работоспособности
- Постоянный том не удается смонтировать
- Ошибка проверки
Кроме того, удаление основано на ресурсах — Политика выселения
Это также может быть вызвано истощением узла / модуля. Вы можете прочитать об утечке здесь.