
За последний месяц мы столкнулись с 4 AUTO_REPAIR_NODES
событиями (выявленными командой gcloud container operations list
) на нашем кластере GKE. Последствием автовосстановления узла является то, что узел создается заново и получает новый внешний IP, а новый внешний IP, который не был внесен в белый список сторонними службами, в конечном итоге приводит к сбою служб, работающих на этом новом узле.
Я заметил, что у нас есть "Автоматический ремонт узла«включен в нашем кластере Kubernetes и возникло искушение отключить его, но прежде чем я это сделаю, мне нужно больше узнать о ситуации.
У меня есть вопросы:
- Каковы некоторые общие причины, которые делают узел нездоровым изначально? Я знаю об этой статьеhttps://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair#node_repair_processкоторый говорит: «узел сообщает оНе готовстатус последовательных проверок в течение заданного временного порога" вызовет автоматическое восстановление. Но что может привести к тому, что узел станетНе готов?
- Я также знаю об этой статье.https://kubernetes.io/docs/concepts/architecture/nodes/#node-statusгде упоминается полный список состояний узла: {OutOfDisk, Ready, MemoryPressure, PIDPressure, DiskPressure, NetworkUnavailable, ConfigOK}. Интересно, если любое из {OutOfDisk, MemoryPressure, PIDPressure, DiskPressure, NetworkUnavailable} становится истинным для узла, станет ли этот узел NotReady?
- Какие негативные последствия могут возникнуть после отключения «Автоматического восстановления узлов» в кластере?Я в основном задаюсь вопросом, не окажемся ли мы в худшей ситуации, чем автоматически восстановленные узлы и недавно подключенные IP-адреса, не внесенные в белый список.. Если «Автоматическое восстановление узла» отключено, то для модулей, работающих на неработоспособном узле, который должен был быть автоматически восстановлен, Kubernetes создаст новые модули на других узлах?
решение1
Мастер по сути выполняет проверку работоспособности узла. Если узел не может ответить или объявляет себя NotReady, он будет восстановлен с помощью автовосстановления узла. На узлах GKE также есть детектор проблем узла, который может обнаруживать проблемы в ОС.
Любое из упомянутых условий может привести к переходу узла в состояние NotReady. Существуют и другие возможные факторы, такие как повторяющиеся ошибки на уровне ОС.
Отключение автоматического восстановления узлов может привести к тому, что узлы перейдут в состояние NotReady и останутся в нем. Хотя во многих случаях узел попытается решить проблему, убивая модули или процессы, возможно, что узел застрянет в состоянии NotReady
Вместо того, чтобы отключать автовосстановление узлов, я бы рекомендовал изменить настройки из-за требования белого списка. Вместо этого вы можетенастроить шлюз NAT для всего исходящего трафика GKE; вы можете назначить статический IP для NAT и просто беспокоиться о внесении этого IP в белый список. Вам больше не придется беспокоиться о том, что узлы будут менять IP.