Kubernetes 理解内置标签

Kubernetes 理解内置标签,kubernetes,Kubernetes,我是kubernetes的新手,我试图了解标签在节点上的工作方式。我们的组织中正在运行eks服务器1.14版。我正在尝试更改内置的不推荐标签 在aws节点守护程序集中,我想将beta.kubernetes.io/os替换为kubernetes.io/os,将beta.kubernetes.io/arch替换为kubernetes.io/arch 因为当我描述一个节点时,它会同时标记beta.kubernetes.io/arch和kubernetes.io/arch 移除beta.kuberne

我是kubernetes的新手,我试图了解标签在节点上的工作方式。我们的组织中正在运行eks服务器1.14版。我正在尝试更改内置的不推荐标签

在aws节点守护程序集中,我想将beta.kubernetes.io/os替换为kubernetes.io/os,将beta.kubernetes.io/arch替换为kubernetes.io/arch

因为当我描述一个节点时,它会同时标记beta.kubernetes.io/arch和kubernetes.io/arch

  • 移除beta.kubernetes.io/arch和 beta.kubernetes.io/os标签
  • 我想知道,如果我改变标签,会有什么影响
  • 在该节点上运行的吊舱是否受到影响
  • apiVersion:apps/v1能否更改内置标签
  • 我可以运行
    kubectl标签节点“node name”beta.kubernetes.io/arch=amd64-
    删除标签吗
  • 是否需要应用守护程序

    kind: DaemonSet
    apiVersion: apps/v1
    metadata:
      name: aws-node
      namespace: kube-system
      labels:
        k8s-app: aws-node
    spec:
      updateStrategy:
        type: RollingUpdate
      selector:
        matchLabels:
          k8s-app: aws-node
      template:
        metadata:
          labels:
            k8s-app: aws-node
        spec:
          priorityClassName: system-node-critical
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                  - matchExpressions:
                      - key: "beta.kubernetes.io/os"
                        operator: In
                        values:
                          - linux
                      - key: "beta.kubernetes.io/arch"
                        operator: In
                        values:
                          - amd64
    
    kubectl描述节点/ip-10-xx-xx-xx.ec2.internal-n kube系统

从中我们可以看出,
beta.kubernetes.io/arch
beta.kubernetes.io/os
是不推荐的,因为应该使用版本1.14()和
kubernetes.io

您使用的是1.14版,没有理由更改/删除这些标签。例如,当您想要添加节点时,更改它们会给集群增加一层复杂性(您必须始终记住,节点中有非库存标签)

  • 删除beta.kubernetes.io/arch和beta.kubernetes.io/os标签是否安全
它是安全的,但没有必要,除非您的应用程序运行在混合集群上,并且您正在使用这些标签

  • 我想知道,如果我改变标签,会有什么影响
从中我们可以看到:

kubernetes.io/arch:如果您混合使用arm和x86节点,这将非常方便

kubernetes.io/os:如果您在集群中混合使用操作系统(例如:混合Linux和Windows节点),这将非常方便

因此,这些标签是为了方便您,您可以使用它们来跟踪事物

  • 在该节点上运行的吊舱是否受到影响
不,吊舱仍然是正常安排的

  • 我可以运行
    kubectl标签节点“node name”beta.kubernetes.io/arch=amd64-
    删除标签吗
要删除标签,可以运行以下操作:

kubectl label node "node-name" beta.kubernetes.io/arch-
要从所有节点中删除,请执行以下操作:

kubectl label nodes --all beta.kubernetes.io/arch-
  • 是否需要应用守护程序
我特别不认为有必要这样做

kubectl label nodes --all beta.kubernetes.io/arch-