Как найти причину сбоя капсулы? - PullRequest
2 голосов
/ 28 февраля 2020

Есть ли способ узнать, почему модуль kubernetes выходит из строя со статусом "craskLoopBackOff" при большой нагрузке?

У меня есть HorizontalPodAutoscaler, который никогда не срабатывает. В своем состоянии он всегда показывает низкий уровень (ниже 50%) использование процессора и памяти.

Хвост журналов приложений в модулях также не дает никакой информации.

Ответы [ 3 ]

1 голос
/ 28 февраля 2020

Попробуйте посмотреть на события Kubernetes kubectl get events --sort-by='.lastTimestamp'

Если вы не получите ничего значимого из событий go для указанного узла c и посмотрите журналы кубелетов journalctl -u kubelet

0 голосов
/ 07 марта 2020

Ниже приведены некоторые очевидные причины аварийного отката, которые я наблюдал:

  1. в ожидании полного заполнения некоторого условия, например, некоторых секретов, сбой healthcheck et c
  2. Модуль pod работает с пакетным QoS или бестабильным QoS и убивается из-за недоступности ресурсов на узле

. Этот сценарий можно запустить, чтобы найти возможные проблемы для модулей в пространстве имен: https://github.com/dguyhasnoname/k8s-day2-ops/blob/master/namespace_scripts/debug_app_namespace.sh

0 голосов
/ 28 февраля 2020

Чтобы получить журналы из модуля, вы должны использовать:

kubectl logs [podname] -p

Вы также можете сделать kubelet logs, но это в основном для журналов кластера.

Если журналов нет, это означает, что ваш Приложение не создавало никаких журналов до появления cra sh. Вам нужно будет переписать приложение и, например, добавить дамп памяти на cru sh.

. Вы упомянули, что pod умирает под большой нагрузкой, но статистика показывает только 50% использования. Вы должны войти в модуль и самостоятельно проверить загрузку, возможно, проверить, сколько файлов открыто, потому что, возможно, вы достигли предела.

Вы можете прочитать документы Kubernetes о Самоанализ приложения и отладка и go over Отладка CrashLoopBackoffs с помощью Init-Containers .

Вы также можете попробовать запустить свой образ в Docker и проверить там логи. Имеется хорошая документация о доступных журналах и устранении неполадок .

Если вы предоставите более подробную информацию, мы могли бы быть более полезными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...