Настройка аннотаций, меток и taints на узлах
Содержание
OverviewТребования1) Синхронизация меток с Machines на NodesШаг 1: Включите синхронизацию меток в controller managerШаг 2: Добавьте метки в шаблоны MachineПроверка2) Синхронизация аннотаций с Machines на NodesШаг 1: Включите синхронизацию аннотаций в controller managerШаг 2: Добавьте аннотации в шаблоны MachineПроверка3) Применение taints с Machines на NodesПроверкаПримечанияOverview
Cluster API (CAPI) может передавать выбранные метаданные Machine соответствующему Node:
- Метки (Labels): через синхронизацию controller manager
- Аннотации (Annotations): через синхронизацию controller manager
- Taints: через шаблоны Machine (применяются во время регистрации узла)
В этом руководстве показано, как настроить каждый из этих элементов и как проверить их применение как к ресурсам Machine, так и Node.
Примечание: В примерах предполагается, что ваш controller manager Cluster API называется
capi-controller-manager, и что вы управляете объектамиMachineDeploymentиKubeadmControlPlaneдля рабочих и управляющих узлов соответственно.
Требования
- Права на редактирование деплоймента
capi-controller-managerи ресурсов Cluster API - версии 4.2.0 или новее
1) Синхронизация меток с Machines на Nodes
Шаг 1: Включите синхронизацию меток в controller manager
Добавьте следующий аргумент в контейнер capi-controller-manager, чтобы указать, какие метки Machine синхронизировать с Nodes:
Замените список через запятую на метки, которые вы хотите синхронизировать.
additional-sync-machine-labels поддерживает регулярные выражения.
Шаг 2: Добавьте метки в шаблоны Machine
-
Для рабочих узлов (
MachineDeployment): задайте метки в.spec.template.metadata.labels. -
Для управляющих узлов (
KubeadmControlPlane): задайте метки в.spec.machineTemplate.metadata.labels.
Проверка
2) Синхронизация аннотаций с Machines на Nodes
Шаг 1: Включите синхронизацию аннотаций в controller manager
Добавьте следующий аргумент в контейнер capi-controller-manager, чтобы указать, какие аннотации Machine синхронизировать с Nodes:
additional-sync-machine-annotations поддерживает регулярные выражения.
Замените список через запятую на аннотации, которые вы хотите синхронизировать.
Шаг 2: Добавьте аннотации в шаблоны Machine
-
Для рабочих узлов (
MachineDeployment): задайте аннотации в.spec.template.metadata.annotations. -
Для управляющих узлов (
KubeadmControlPlane): задайте аннотации в.spec.machineTemplate.metadata.annotations.
Проверка
3) Применение taints с Machines на Nodes
Taints настраиваются непосредственно в шаблонах Machine, чтобы применяться к Node во время регистрации.
-
Для рабочих узлов (
MachineDeployment): задайте taints в.spec.template.spec.taints. -
Для управляющих узлов (
KubeadmControlPlane): задайте taints в.spec.machineTemplate.taints.
Проверка
Примечания
- Убедитесь, что имена полей написаны правильно:
metadata.labels,metadata.annotations. - Обновляйте списки синхронизируемых меток и аннотаций в controller при добавлении новых ключей в Machines.
- После внесения изменений дождитесь завершения процесса согласования; обновления Node могут появляться с небольшой задержкой.