Настройка аннотаций, меток и taints на узлах
Содержание
ОбзорПредварительные требования1) Синхронизация меток с Machines на NodesШаг 1: включите синхронизацию меток в controller managerШаг 2: добавьте метки в шаблоны MachineПроверка2) Синхронизация аннотаций с Machines на NodesШаг 1: включите синхронизацию аннотаций в controller managerШаг 2: добавьте аннотации в шаблоны MachineПроверка3) Применение taints из Machines на NodesПроверкаПримечанияОбзор
Cluster API (CAPI) может распространять выбранные метаданные Machine на соответствующий Node:
- Labels: через синхронизацию controller manager
- Annotations: через синхронизацию controller manager
- Taints: через шаблоны Machine (применяются во время регистрации узла)
В этом руководстве показано, как настроить каждый из этих параметров и как проверить, что они применены как к ресурсам Machine, так и к ресурсам Node.
Примечание: в примерах предполагается, что ваш controller manager Cluster API называется
capi-controller-manager, а для узлов рабочей нагрузки и control plane вы управляете объектамиMachineDeploymentиKubeadmControlPlaneсоответственно.
Предварительные требования
- Права на редактирование deployment
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. -
Для узлов control plane (
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. -
Для узлов control plane (
KubeadmControlPlane): задайте аннотации в.spec.machineTemplate.metadata.annotations.
Проверка
3) Применение taints из Machines на Nodes
Taints настраиваются непосредственно в шаблонах Machine, поэтому они применяются к Node во время регистрации.
-
Для узлов рабочей нагрузки (
MachineDeployment): задайте taints в.spec.template.spec.taints. -
Для узлов control plane (
KubeadmControlPlane): задайте taints в.spec.machineTemplate.taints.
Проверка
Примечания
- Убедитесь, что имена полей указаны правильно:
metadata.labels,metadata.annotations. - Обновляйте списки синхронизируемых меток/аннотаций в controller, когда добавляете новые ключи в Machines.
- После внесения изменений дождитесь завершения reconciliation; обновления Node могут появиться через некоторое время.