kubectl label
添加、修改或删除资源的标签
语法
kubectl label <resource> <name> <key>=<value> [flags]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
--overwrite |
覆盖已存在的标签值 | kubectl label pod web env=staging --overwrite |
常用 |
-l --selector |
按标签选择目标资源 | kubectl label pods -l app=web tier=frontend |
常用 |
--all |
对该类型所有资源操作 | kubectl label pods --all env=dev |
进阶 |
<key>- |
删除标签(key 后加减号) | kubectl label pod web env- |
常用 |
示例
添加标签
kubectl label pod web-app-6f7b8c9d-k2m4n env=production
为 Pod 添加环境标签
修改标签
kubectl label pod web-app env=staging --overwrite
修改已有标签需要 --overwrite
删除标签
kubectl label pod web-app env-
key 后面加 - 表示删除
批量添加标签
kubectl label nodes worker-1 worker-2 disk=ssd
给多个节点打标签用于调度
给节点打标签
kubectl label node worker-1 node-role.kubernetes.io/gpu=true
配合 nodeSelector 实现定向调度
常见错误
already has a value, and --overwrite is false
标签已存在,加 --overwrite 参数覆盖
invalid label value
标签值只能包含字母数字、-、_、.,最长 63 字符
技巧
- 标签是 K8s 资源组织的核心机制,合理规划标签体系很重要
- 常用标签:app、env、tier、version、team
- 标签配合 Service selector 实现服务发现