Узел EKS переходит в состояние NodeNotReady при выполнении пакетных заданий

Я выполняю пакетное задание в своем кластере EKS, которое обучает модель машинного обучения, и обучение длится 8-10 часов. Однако похоже, что узел, на котором выполняется задание, перемещается, прекращается, и задание перезапускается на новом узле. Я слежу за узлом в Prometheus и, похоже, не было проблем с процессором или OOM.

Моя следующая ставка заключалась в том, чтобы заглянуть в журналы облачных трасс EKS, и сразу после удаления узла я вижу следующие события -

  • журнал kube-controller-manager
controller_utils.go:179] Recording status change NodeNotReady event message for node XXX
controller_utils.go:121] Update ready status of pods on node [XXX]
event.go:274] Event(v1.ObjectReference{Kind:"Node", Namespace:"", Name:"XXX", UID:"1bf33ec8-41cd-434a-8579-3ba4b8cdd5f1", APIVersion:"", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'NodeNotReady' Node XXX status is now: NodeNotReady
node_lifecycle_controller.go:917] Node XXX is unresponsive as of 2021-06-09 01:00:48.962450508 +0000 UTC m=+5151508.967069635. Adding it to the Taint queue.
I0609 01:00:48.962465 1 node_lifecycle_controller.go:917] Node XXX is unresponsive as of 2021-06-09 01:00:48.962450508 +0000 UTC m=+5151508.967069635. Adding it to the Taint queue.
node_lifecycle_controller.go:180] deleting node since it is no longer present in cloud provider: XXX
  • журнал kube-scheduler
node_tree.go:113] Removed node "XXX" in group "us-east-2:\x00:us-east-2b" from NodeTree

Я проверил логи kubelet, но сообщений о переводе узла в состояние NotReady нет. Я ожидал, что по крайней мере увижу это сообщение в журнале kubelet - https://github.com/kubernetes/kubernetes/blob/e9de1b0221dd8687aba527e682fafc7c33370c09/pkg/kubelet/kubelet_gode_status

Это заставляет меня задаться вопросом, умирает ли кубелет, или узел недоступен, или какое-либо соединение потеряно от kube-api-server к kubelet на этом узле.

Я работал над этим несколько дней, но безуспешно.

Примечание. Пакетное задание, запущенное в Kubernetes, в конечном итоге успешно запускается при перезапуске. Также эта проблема носит спорадический характер, то есть иногда перезапуск происходит, а иногда нет и завершается при первом запуске.


person Aks    schedule 10.06.2021    source источник
comment
Вы используете ASG? Или в чем может быть причина удаленного узла.   -  person Matt    schedule 10.06.2021
comment
мы не используем ASG. Вот что мне интересно, я не знаю, по какой причине удаленный узел заставляет меня думать, что AWS, должно быть, удаляет экземпляр или что-то в этом роде.   -  person Aks    schedule 10.06.2021
comment
Вы проверяли журналы cloudwatch, кто / что удаляет экземпляр node / ec2?   -  person Matt    schedule 10.06.2021
comment
Какие журналы обслуживания мне следует проверить? т.е. кто будет удалять экземпляр node / ec2?   -  person Aks    schedule 10.06.2021
comment
Также мне интересно из приведенных выше журналов, что узел помечается как NotReady, а затем автоматическое масштабирование кластера отключает узел. Так что, возможно, автомасштабирование удаляет узел.   -  person Aks    schedule 10.06.2021
comment
ах, так вы используете автомасштабирование кластера? Да, это может быть так. Обратите внимание на это: stackoverflow.com/questions/63871413/   -  person Matt    schedule 10.06.2021
comment
Спасибо, что указали на это. Я посмотрю. Однако это может помешать удалить узел, на котором выполняется пакетное задание, но как я могу узнать, что именно является причиной того, что узел становится NotReady   -  person Aks    schedule 10.06.2021
comment
Проверьте журналы автомасштабирования кластера. возможно, есть информация о том, что он удалил узел.   -  person Matt    schedule 10.06.2021