Kubernetes не может обнаружить нездоровый узел
Я закрываю свой узел k8s вручную, чтобы посмотреть, повлияет ли это на мастер.
После выключения проверяю состояние узлов:
kubectl get nodes
Узел, который вышел из строя, все еще видится готовым в статусе. Как следствие, k8s все еще пытается планировать пакеты на этом узле, но на самом деле не может. И что еще хуже, это не перенесет стручки на другие здоровые узлы.
Через некоторое время (5-10 минут) k8s замечает, что узел исчез.
Это ожидаемое поведение? Если нет, как я могу это исправить?
Я провел исследование и выяснил, как K8s проверяет состояние узла, я не смог найти ничего ценного.
1 ответ
Я сам нашел проблему.
Я обрезал соединение на сетевом уровне с помощью правил брандмауэра. Так как kubelet открыл сессию до того, как новый узел запрещающих правил был замечен Готов Когда он был готов, он получал трафик. И трафик будет заблокирован новыми правилами, так как у них нет открытого сеанса.
Так что это несоответствие происходит только при изменении правил брандмауэра.