210 字
1 分钟

Kubernetes Label与分层模型

三个 Labels 相关字段#

分别是 metadata.labelsspec.template.metadata.labelsspec.selector.matchlabels

区别#

位置属于谁作用
metadata.labelsDeployment / Service 本身标识“这个对象是什么”
spec.template.metadata.labelsPod真正打在 Pod 上的标签
spec.selector.matchLabelsDeployment声明具有哪些标签的Pod被此Deployment所管理

也就是说

Terminal window
kubectl get pods --show-labels = spec.template.metadata.labels
kubectl get deployments --show-labels = metadata.labels

另外,在创建Deployment Manifest时,spec.template.metadata.labels与spec.selector.matchLabels必须相等,否则apply会失败,因为Pod与Deployment没有建立起耦合关系。

Service 的 Selector 选择的是哪个 Label?#

kind: Service
spec:
selector:
app: myapp
version: blue

其行为是等价于查找所有 Pod 中, spec.template.metadata.labels存在 app=myapp,version=blue 的 Pod。

标签分层模型#

服务身份 - 稳定#

app: myapp

发布维度 - 会变#

version: v1 / v2 / canary

管理 / 组织维度#

owner: team-a
env: prod

使用#

  • Pod: 1+2
  • Deployment selector: 1+2
  • Deployment metadata: 1+3
  • Service selector: 1 或 1+2,取决于是否要做蓝绿部署

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Kubernetes Label与分层模型
https://white-festa.net/posts/kubernetes-tutorial/kubernetes-labels-model/
作者
常世常暗
发布于
2025-06-09
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-06-09,距今已过 255 天

部分内容可能已过时

评论区

Profile Image of the Author
常世常暗
If you shout loud enough, you'll be the one.
公告 - 2025/12/21
本站框架已由Ghost迁移到Astro!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
60
分类
11
标签
36
总字数
115,331
运行时长
0
最后活动
0 天前

目录