Перейти к содержимому

Kubernetes Node Affinity: объяснение, Required vs Preferred, In и NotIn (практика)

Shubham gour

0:00 / 0:00

Kubernetes Node Affinity: объяснение, Required vs Preferred, In и NotIn (практика)

411 просмотров · 7 дн. назад
Shubham gour
5,48 тыс. подписчиков
411 просмотров · 7 дн. назад
Как убедиться, что Pod запускается только на нужном узле — например, на узле с SSD — и избегает использования тех, которые ему не нужны? В этом практическом руководстве по привязке узлов Kubernetes вы узнаете, как привязка узлов использует метки узлов для установки правил планирования для ваших Pod-ов, и как она выходит за рамки простого селектора узлов. Мы начнем с основных понятий: что такое привязка узлов, requiredDuringSchedulingIgnoredDuringExecution и preferredDuringSchedulingIgnoredDuringExecution, а также идея антипривязки. Затем мы создадим кластер Minikube из 3 узлов, пометим узлы по типу диска, запланируем Pod на узле с SSD с помощью оператора In, не будем запускать другой Pod на этом узле с помощью оператора NotIn и удалим метку узла. Что вы узнаете: • Что такое привязка узлов — правила планирования, которые помогают Kubernetes выбирать подходящие узлы для ваших Pods • Зачем нужна привязка узлов, если nodeSelector уже существует • requiredDuringSchedulingIgnoredDuringExecution — жесткое правило; Отсутствие соответствующего узла означает, что Pod остается в состоянии ожидания. • preferredDuringSchedulingIgnoredDuringExecution — мягкое предпочтение с резервным вариантом. • Что означает «IgnoredDuringExecution», когда метка узла изменяется после планирования. • Концепции антиаффинности: избегание узла с NotIn и распределение реплик с антиаффинностью Pod. • Создание кластера Minikube из 3 узлов. • Присвоение меток узлам с помощью kubectl label nodes (disk-type=ssd / disk-type=hdd) и их перечисление с помощью kubectl get nodes -L. • Запись nodeAffinity → nodeSelectorTerms → matchExpressions с оператором In. • Исправление ошибки «неизвестное поле», вызванной опечаткой в ​​nodeSelectorTerms. • Проверка размещения Pod с помощью kubectl get pods -o wide и kubectl describe pod. • Удержание Pod вне узлов SSD с помощью NotIn. оператор • Удаление метки узла с помощью kubectl ⏱️ Разделы 0:00 Введение: запуск Pod на нужном узле 0:54 Что такое привязка узлов? 1:50 Обязательные и предпочтительные параметры при планировании 3:53 Антиаффинность: NotIn и антиаффинность Pod 5:03 Кластер Minikube из 3 узлов 6:00 Пометка узлов 7:13 Pod с аффинностью узлов 10:32 Применение и проверка 12:14 Избегать узла с NotIn 14:49 Удаление метки 15:28 Итоги 📚 Ресурсы • Документация Kubernetes – Назначение Pod'ов узлам (аффинность узлов): https://kubernetes.io/docs/concepts/s... • Документация Kubernetes – Назначение Pod'ов узлам с использованием аффинности узлов: https://kubernetes.io/docs/tasks/conf... • Документация Kubernetes – Метки и селекторы: https://kubernetes.io/docs/concepts/o... ▶️ Полный плейлист Kubernetes:    • Kubernetes Tutorial for Beginners | Comple...   Новичок в планировании? Сначала посмотрите предыдущее видео о метках и допусках. Если привязка узлов наконец-то стала понятной, подпишитесь на Shubham Gour Tech, чтобы получать больше практических руководств по Kubernetes и DevOps. Вы бы использовали обязательные или предпочтительные правила в своем кластере? Расскажите мне в комментариях. #Kubernetes #NodeAffinity #KubernetesScheduling #DevOps #KubernetesTutorial