
在 Kubernetes 中,我们可以通过 kubectl label 命令为节点(Node)或其他资源添加或删除标签。

1. 添加标签
要为节点添加标签(如 node-role.kubernetes.io/service: ""),使用以下命令:
kubectl label nodes <node-name> node-role.kubernetes.io/service=""
假设节点名称为 node-01:
kubectl label nodes node-01 node-role.kubernetes.io/service=""
node-role.kubernetes.io/service 是标签的键(Key),"" 是标签的值(Value)。此处值为空字符串,表示仅标识标签存在,无需具体值。
标签的键通常遵循 <domain>/<key-name> 格式(如 kubernetes.io/role),也可自定义。
2. 删除标签
要删除节点的标签,在标签键后添加 - 符号:
kubectl label nodes <node-name> node-role.kubernetes.io/service-
删除 node-01 的 node-role.kubernetes.io/service 标签:
kubectl label nodes node-01 node-role.kubernetes.io/service-
3. 验证标签
查看节点标签:
kubectl get nodes --show-labels | grep <node-name>
查看特定节点的详细信息:
kubectl describe node <node-name>
如输出:
#yamlLabels:node-role.kubernetes.io/service=""kubernetes.io/os=linux...
4. 标签的常见用途
节点角色标识:如 node-role.kubernetes.io/worker、node-role.kubernetes.io/master。
调度策略:结合 nodeSelector 或 affinity,将 Pod 调度到特定标签的节点。
资源分组:按环境(env=prod)、硬件类型(disk=ssd)等分类节点。
5. 完整示例
添加标签并验证:
# 添加标签kubectl label nodes node-01 node-role.kubernetes.io/service=""# 查看标签kubectl describe node node-01 | grep "Labels:" -A 5#删除标签:kubectl label nodes node-01 node-role.kubernetes.io/service-
运维笔谈已经开通AI智能对话功能,解答有关运维日常工作中遇到的问题以及经验分享,感兴趣的大佬来和我聊聊吧!对话 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》pdf。
文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




