Taints и Tolerations в Kubernetes: объяснение NoSchedule, NoExecute и nodeSelector (практика)
Shubham gour
0:00 / 0:00
Taints и Tolerations в Kubernetes: объяснение NoSchedule, NoExecute и nodeSelector (практика)
648 просмотров · 9 дн. назад
Shubham gour
5,49 тыс. подписчиков
648 просмотров · 9 дн. назад
Хотите зарезервировать узел Kubernetes для одного конкретного приложения и не допускать на него другие Pod-ы? Именно для этого и существуют метки и допуски Kubernetes. В этом практическом руководстве по меткам и допускам Kubernetes вы узнаете, как метка на узле отпугивает Pod-ы, как соответствующий допуск на Pod-е позволяет ему попасть на него, и почему вам все еще нужен nodeSelector, если Pod-узел должен попасть именно на этот узел.
Мы создадим кластер Minikube из 3 узлов, пометим третий узел меткой dedicated=demo:NoSchedule, развернем Deployment nginx без допусков, чтобы наблюдать, как планировщик избегает помеченного узла, а затем создадим Pod-узел с соответствующим допуском и nodeSelector и проверим, работает ли он на помеченном узле.
Что вы узнаете:
• Проблема: резервирование узла (например, дорогостоящего оборудования) для выделенного приложения
• Как работают метки и допуски — метка = ограничение на узле, допуск = ключ в Pod
• Почему допуск не принимает решение о планировании — это делает планировщик
• Синтаксис метки: kubectl taint nodes NODE_NAME key=value:effect
• Три эффекта метки: NoSchedule, PreferNoSchedule и NoExecute
• Написание допусков: ключ, оператор: Equal, значение и эффект
• Создание кластера Minikube из 3 узлов с профилем (minikube start --nodes 3 -p taint-demo) и переключением контекста
• Метка узла и подтверждение того, что Pod-ы развертывания избегают его (kubectl get pods -o wide)
• Привязка Pod-допускателя к узлу с меткой с помощью nodeSelector (kubernetes.io/hostname)
• Проверка меток узла с помощью команды kubectl describe node
⏱️ Разделы
0:00 Введение: резервирование узла для выделенного приложения
0:34 Как работают метки и допуски
2:15 Синтаксис меток
4:08 Три эффекта меток
6:15 Что такое допуск?
8:52 Кластер Minikube из 3 узлов
12:35 Загрязнение третьего узла
13:43 Развертывание без допусков
19:25 Под с допуском (+ nodeSelector)
23:38 Проверка планирования
25:49 Итоги
📚 Ресурсы
• Документация Kubernetes – Загрязнения и допуски: https://kubernetes.io/docs/concepts/s...
• Документация Kubernetes – Назначение подов узлам (nodeSelector): https://kubernetes.io/docs/concepts/s...
• Документация Minikube – Использование многоузловых кластеров: https://minikube.sigs.k8s.io/docs/tut...
▶️ Полный плейлист по Kubernetes: • Kubernetes Tutorial for Beginners | Comple...
Если это прояснило для вас понятия «тейнты» и «толерантности», подпишитесь на канал Shubham Gour Tech, чтобы получать больше практических уроков по Kubernetes и DevOps. Какой эффект тейнта вы бы использовали в своем кластере — NoSchedule, PreferNoSchedule или NoExecute? Напишите в комментариях.
#Kubernetes #TaintsAndTolerations #KubernetesScheduling #DevOps #KubernetesTutorial