'metadata.labels' 和 'spec.template.metadata.labels' 之间有什么区别

'metadata.labels' 和 'spec.template.metadata.labels' 之间有什么区别

阅读 kubernetes 文档时,我不太清楚在顶级元数据键和规范级别指定标签之间有什么区别。

考虑:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: nginx
  name: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      run: nginx
  strategy: {}
  template:
    metadata:
      labels:
        run: nginxv1
    spec:
      containers:
      - image: nginx
        name: nginx

我从中复制而来https://stackoverflow.com/questions/54837981/k8s-significance-of-spec-template-metadata-section,我通过谷歌搜索找到了这里。

此清单中设置的两个标签有何区别?

答案1

metadata.labels设置适用于的标签部署

spec.template.metadata.labels设置适用于的标签通过 Deployment 管理 Pod

中的值spec.selectors.matchLabels用于选择 pod,因此它们需要与 中的标签匹配spec.template.metadata.labels;它们与 Deployment 的 无关metadata.labels

相关内容