在节点上配置注解、标签和污点
目录
概述前提条件1) 将 Machine 中的标签同步到 Node步骤 1:在 controller manager 上启用标签同步步骤 2:在 Machine 模板上添加标签验证2) 将 Machine 中的注解同步到 Node步骤 1:在 controller manager 上启用注解同步步骤 2:在 Machine 模板上添加注解验证3) 将 Machine 中的污点应用到 Node验证注意事项概述
Cluster API (CAPI) 可以将选定的 Machine 元数据传播到对应的 Node:
- 标签:通过 controller manager 同步
- 注解:通过 controller manager 同步
- 污点:通过 Machine 模板(在节点注册期间应用)
本指南介绍如何分别进行配置,以及如何验证它们是否已同时应用于 Machine 和 Node 资源。
注意:示例假定你的 Cluster API controller manager 为
capi-controller-manager,并且你分别使用MachineDeployment和KubeadmControlPlane对象来管理工作负载节点和控制平面节点。
前提条件
- 具备编辑
capi-controller-managerdeployment 和 cluster API 资源的权限 - 4.2.0 或更高版本
1) 将 Machine 中的标签同步到 Node
步骤 1:在 controller manager 上启用标签同步
将以下参数添加到 capi-controller-manager 容器中,以指定要同步到 Node 的 Machine 标签:
将逗号分隔的列表替换为你想同步的标签。
additional-sync-machine-labels 支持正则表达式匹配。
步骤 2:在 Machine 模板上添加标签
-
对于工作负载节点(
MachineDeployment):在.spec.template.metadata.labels上设置标签。 -
对于控制平面节点(
KubeadmControlPlane):在.spec.machineTemplate.metadata.labels上设置标签。
验证
2) 将 Machine 中的注解同步到 Node
步骤 1:在 controller manager 上启用注解同步
将以下参数添加到 capi-controller-manager 容器中,以指定要同步到 Node 的 Machine 注解:
additional-sync-machine-annotations 支持正则表达式匹配。
将逗号分隔的列表替换为你想同步的注解。
步骤 2:在 Machine 模板上添加注解
-
对于工作负载节点(
MachineDeployment):在.spec.template.metadata.annotations上设置注解。 -
对于控制平面节点(
KubeadmControlPlane):在.spec.machineTemplate.metadata.annotations上设置注解。
验证
3) 将 Machine 中的污点应用到 Node
污点直接在 Machine 模板上配置,因此会在节点注册期间应用到 Node。
-
对于工作负载节点(
MachineDeployment):在.spec.template.spec.taints上设置污点。 -
对于控制平面节点(
KubeadmControlPlane):在.spec.machineTemplate.taints上设置污点。
验证
注意事项
- 确保字段名称拼写正确:
metadata.labels、metadata.annotations。 - 当你在 Machine 上添加新键时,请同时更新 controller 中已同步的标签/注解列表。
- 修改完成后,请等待 reconciliation 完成;Node 更新可能需要一点时间才会显示。