Configure Annotations, Labels, and Taints on Nodes
目录
Overview
Cluster API (CAPI) 可以将选定的 Machine 元数据传播到对应的 Node:
- 标签(Labels):通过 controller manager 同步
- 注解(Annotations):通过 controller manager 同步
- 污点(Taints):通过 Machine 模板配置(在节点注册时应用)
本指南展示如何配置上述内容,以及如何验证它们是否已应用于 Machine 和 Node 资源。
注意:示例假设您的 Cluster API controller manager 名称为
capi-controller-manager,并且您分别管理用于工作负载节点和控制平面节点的MachineDeployment和KubeadmControlPlane对象。
Prerequisites
- 具有编辑
capi-controller-manager部署和 Cluster API 资源的权限 - 版本 4.2.0 或更高版本
1) 从 Machines 同步标签到 Nodes
第一步:在 controller manager 上启用标签同步
向 capi-controller-manager 容器添加以下参数,指定要同步到 Nodes 的 Machine 标签:
将逗号分隔的列表替换为您想要同步的标签。
additional-sync-machine-labels 支持正则表达式匹配。
第二步:在 Machine 模板上添加标签
-
对于工作负载节点(
MachineDeployment):在.spec.template.metadata.labels上设置标签。 -
对于控制平面节点(
KubeadmControlPlane):在.spec.machineTemplate.metadata.labels上设置标签。
验证
2) 从 Machines 同步注解到 Nodes
第一步:在 controller manager 上启用注解同步
向 capi-controller-manager 容器添加以下参数,指定要同步到 Nodes 的 Machine 注解:
additional-sync-machine-annotations 支持正则表达式匹配。
将逗号分隔的列表替换为您想要同步的注解。
第二步:在 Machine 模板上添加注解
-
对于工作负载节点(
MachineDeployment):在.spec.template.metadata.annotations上设置注解。 -
对于控制平面节点(
KubeadmControlPlane):在.spec.machineTemplate.metadata.annotations上设置注解。
验证
3) 将污点从 Machines 应用到 Nodes
污点直接在 Machine 模板上配置,因此会在节点注册时应用到 Node。
-
对于工作负载节点(
MachineDeployment):在.spec.template.spec.taints上设置污点。 -
对于控制平面节点(
KubeadmControlPlane):在.spec.machineTemplate.taints上设置污点。
验证
注意事项
- 确保字段名称拼写正确:
metadata.labels、metadata.annotations。 - 每当在 Machines 上添加新的标签或注解键时,记得更新 controller 上同步的标签/注解列表。
- 变更后,请等待协调完成;Node 的更新可能需要短时间才能生效。