k8s-node添加Taint

1. 语法

kubectl taint node [node] key=value[effect]

说明:
其中[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]

  • NoSchedule: 一定不能被调度
  • PreferNoSchedule: 尽量不要调度
  • NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod

2. 添加污点

2.1 添加NoSchedule 污点

  • 语法
kubectl taint node node_name key1=value1:NoSchedule
  • 示例
kubectl taint nodes master1 node-role.kubernetes.io/master=:NoSchedule

说明:
key 为 node-role.kubernetes.io/master,这个key可以自定义。
value为空。
effect为NoSchedule。

  • 查看结果如下

用describe即可看到污点

kubectl describe node aik8sm2 |grep Taint
Taints:             node-role.kubernetes.io/master:NoSchedule

2.2 添加 NoExecute污点

  • 语法
kubectl taint node node_name key1=value1:NoExecute

3. 删除污点

3.1 删除 NoSchedule 污点

  • 语法
kubectl taint node node1 key1:NoSchedule- 

这里的key可以不用指定value

  • 示例

查看

[root@AiK8sM1 ~]# kubectl describe node aik8sm2 |grep Taint
Taints:             node-role.kubernetes.io/master:NoSchedule

删除

[root@AiK8sM1 ~]# kubectl taint node aik8sm2  node-role.kubernetes.io/master:NoSchedule-
kubectl taint node  :NoSchedule-

再次查看,污点没有了

[root@AiK8sM1 ~]# kubectl describe node aik8sm2 |grep Taint
Taints:             <none>

3.2 删除 NoExecute 污点

kubectl taint node node1 key1:NoExecute-

3.3 删除指定key所有的effect

kubectl taint node node1 key1-  

4. 其他操作

4.1 not-ready时的taint

  • 描述
    node是 node ready 状态时,节点是NoSchedule

  • 查看如下

kubectl describe node aik8sm2 |grep Taint
Taints:            node.kubernetes.io/not-ready:NoSchedule-

说明:

  • key指明了是not-ready 。
  • 这个污点是删除不掉的,除非node变成ready

4.2 污点处启动pod

增加 tolerations部分,实例如下

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: node-exporter
  namespace: monitoring
  labels:
    k8s-app: node-exporter
spec:
  template:
    metadata:
      labels:
        k8s-app: node-exporter
    spec:
      containers:
      - image: harbor.xxx.com/kubernetes/node-exporter
        name: node-exporter
        ports:
        - containerPort: 9100
          protocol: TCP
          name: http
      tolerations:
      - key: "node-role.kubernetes.io/master"
        operator: "Exists"
        effect: "NoSchedule"

在这里插入图片描述

posted on 2021-08-15 21:41  运维开发玄德公  阅读(66)  评论(0编辑  收藏  举报  来源

导航