k8s 中的污染

Nik*_*Nik 4 kubernetes

因此,试图弄清楚 k8s 中的 tainting 将如何工作,我在 kubelet yaml 规范中有以下设置,我有点困惑 register-with-taints 的值是什么,因为我只想允许某些 pod 被放置在这个节点上。 ...其余的所有 POD 都应该删除,或者对于任何其他 Pod,然后特定的 Pod 节点应该表现得不可调度。

        --container-runtime=docker \
        --register-node=true \
        --allow-privileged=true \
        --register-schedulable=false \
        --register-with-taints=
        --pod-manifest-path=/etc/kubernetes/manifests \
Run Code Online (Sandbox Code Playgroud)

Vik*_*ote 6

--register-with-taintsto的参数kubelet是节点级别的参数,并使用给定的污点列表注册节点。

是有关的文档--register-with-taints

--register-with-taints []api.Taint
    Register the node with the given list of taints (comma separated "=:").
    No-op if register-node is false.
Run Code Online (Sandbox Code Playgroud)

如果--register-with-taints设置,它应该是形式<key>=<value>:<effect>(或逗号分隔,如<key1>=<value1>:<effect1>,<key2>=<value2>:<effect2>)。

我只想允许在这个节点上放置某些豆荚

去做这个:

  1. 传递类似--register-with-taints=key=value:NoScheduleto 的东西kubelet。这意味着任何 pod 都不能调度到这个节点上,除非它有一个匹配的容忍度。
  2. 现在,要允许将某个 pod 放置在此节点上,请在 PodSpec yaml 中为该 pod 指定与上述污点匹配的容忍度。以下两种容忍度“匹配”上述污点,因此具有以下任一容忍度的 pod 将能够调度到节点上:

    tolerations:
    - key: "key"
      operator: "Equal"
      value: "value"
      effect: "NoSchedule"
    
    ---- OR ----
    
    tolerations:
    - key: "key"
      operator: "Exists"
      effect: "NoSchedule"
    
    Run Code Online (Sandbox Code Playgroud)

有关 Kubernetes 中的污点和容忍度的更多信息,请点击此处