Когда вы выполняете
kubectl cordon, Kubernetes помечает ноду таинтом:node.kubernetes.io/unschedulable:NoSchedule.
Планировщик видит этот taint и перестаёт размещать на ноде новые podы.
Но если посмотреть на ваш logging agent или CNI plugin, запущенный как DaemonSet, он всё равно продолжает работать
Почему?
Потому что контроллер DaemonSet автоматически добавляет каждому pod toleration:
node.kubernetes.io/unschedulable:NoSchedule.
Благодаря этому podы DaemonSet игнорируют taint, выставленный cordon
И это сделано намеренно, потому что DaemonSet используются для критичных системных компонентов, таких как:
- сборщики логов
- агенты мониторинга
- CNI-плагины
Эти компоненты должны работать на каждой ноде, даже во время обслуживания.
Если они остановятся, вы потеряете наблюдаемость и сетевую связность на этих нодах.
Если хотите глубже разобраться в taints и tolerations, прочитайте следующий гайд:
Читать здесь: https://courses.devopscube.com/courses/certified-kubernetes-administrator-course/lectures/55659898
👉 DevOps Portal
