我是 Kubernetes 新手,所以这可能是显而易见的,但在部署 yaml 中,为什么我们必须在部署元数据中定义标签,然后在模板元数据中定义相同的标签,但在选择器中单独匹配这些标签?
模板属于它所在的部署不是很明显吗?部署是否存在具有不匹配模板的用例?
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-backend
spec:
replicas: 2
selector:
matchLabels:
app: api-backend
template:
metadata:
labels:
app: api-backend
spec:
#...etc
Run Code Online (Sandbox Code Playgroud)
我可能缺少对 k8s 或 yaml 的一些关键理解。
拥有没有标签的模板,它似乎可以工作,但我不明白为什么。Kubernetes 可以神奇地自动插入标签。
从技术上讲,该参数matchLabels决定哪些 Pod 属于给定的 Deployment(以及底层的 ReplicaSet)。在实践中,我从未见过与 不同的labelsDeployment matchLabels。因此,原因可能是其他 Kubernetes 资源之间的一致性(例如更有matchLabels意义的服务)。
我建议您阅读博文,为初学者详细解释了 matchLabels、标签和选择器。
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |