kubernetes - 为什么 Kubernetes 部署 YAML 文件如此重复?

标签 kubernetes

这个问题在这里已经有了答案:





Why labels are mentioned three times in a single deployment

(4 个回答)


2年前关闭。




第一个也是最小的example of a Deployment in the Kubernetes documentationapp: nginx重复三遍的行。我知道这是一个标签,但我没有找到任何可以解释为什么需要为所有以下内容指定的内容:

  • metadata.labels ,
  • spec.selector.matchLabels , 和
  • spec.template.metadata.labels

  • 示例部署文件:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.7.9
            ports:
            - containerPort: 80
    

    最佳答案

    所以 1 和 3 在技术上是不相关的。 1 是部署对象的标签,仅适用于您自己的组织目的。 3 是将放在生成的 pod 上的标签。至于为什么部署依赖于针对 pod 标签手动指定选择器,是为了确保保持无状态。部署 Controller 可以随时重启,一切都会安全。不过,如果有人有一个可靠的建议来处理所有边缘情况,那么它将来可能会得到改进。

    关于kubernetes - 为什么 Kubernetes 部署 YAML 文件如此重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54954437/

    相关文章:

    kubernetes - 在 GKE 中的现有节点池上添加或编辑标签

    mysql - 如何在 Kubernetes 中使用 PersistentVolume 存储 MySQL 数据

    kubernetes - Google Container Engine 的托管 Kubernetes 环境是否会导致锁定?

    docker - 仅重启 Kubernetes 中的 Sidecar 容器

    java - Kubernetes 上的 Apache Ignite 使用 TcpDiscoverySharedFsIpFinder : the cluster seems to disintegrate

    kubernetes - ComponentStatus 已弃用 - 那么该使用什么

    kubernetes - 与服务背后的所有Kubernetes Pod通信

    kubernetes - oc get pods - 命令只打印 pod 名称

    kubernetes - 如何清除 CrashLoopBackOff

    kubernetes - 更改 configMap 后重启 kubernetes 部署