node打标签、污点
阅读原文时间:2023年07月08日阅读:2

标签

1、查看当前节点的标签

kubectl get node --show-labels

2、给节点打标签

kubectl label node nodename key=value、

3、删除标签

kubectl label nodes nodename <key>-

4、修改deployment.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dev-nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: dev-nginx-deployment
  template:
    metadata:
      labels:
        app: dev-nginx-deployment
    spec:
      containers:
      - name: nginx
        image: nginx:1.19.5
      nodeSelector:     #节点标签
        key: value        #设置标签

污点

1、查看污点

kubectl describe nodes nodename |grep Taints

2、设置污点

kubectl taint node node名 key=value:污点三个可选值
NoSchedule : 一定不被调度
PreferNoSchedule : 尽量不被调度
NoExecute : 不会调度,并且还会驱逐Node已有Pod
例如:kubectl taint node nodename key=value:NoSchedule

3、删除污点

kubectl taint nodes nodename key:NoSchedule-

4、添加配置文件yaml

spec:
    spec:
      tolerations:                         #容忍
        - key: key                        #这个是设置污点的key
          value: value                    #这个是设置污点的values
          effect: NoSchedule          #这个是污点类型

对于tolerations属性的写法:

其中的key、value、effect 与Node的Taint设置需保持一致, 还有以下几点说明:

1、如果operator的值是Exists,则value属性可省略。

2、如果operator的值是Equal,则表示其key与value之间的关系是equal(等于)。

3、如果不指定operator属性,则默认值为Equal。

另外,还有两个特殊值:

1、空的key 如果再配合Exists 就能匹配所有的key与value ,也是是能容忍所有node的所有Taints。

2、空的effect 匹配所有的effect。