一.pod污点:污点是让节点与pod产生排斥的一类规则
污点标签的命令
1.查看污点标签
kubectl describe nodes 节点名
2.设置污点标签
kubectl taint node 节点名 key值=value值:污点标签种类
3.删除污点标签
kubectl taint node 节点名 key值=value值:污点标签种类-
4.污点标签种类
驱逐:NoExecute //同时影响新Pod的调度和已存在Pod的运行状态
不调度:NoSchedule //仅影响新Pod的调度,对已存在的Pod无影响。
尽量不调度:PreferNoSchedule //对新Pod的调度有一定影响,但并非强制性的,已存在的Pod不会受到影响。
二.pod容器污点容忍策略(tolerations):无视污点标签的限制
1.容忍污点标签精确匹配键值对
---
kind: Pod
apiVersion: v1
metadata:
name: myphp
spec:
tolerations:
- operator: Equal # 完全匹配键值对(Equal,Exists)
key: k # 键
value: v1 # 值
effect: NoSchedule # 污点标签
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: 1200m
2.容忍污点标签模糊匹配键值对
---
kind: Pod
apiVersion: v1
metadata:
name: myphp
spec:
tolerations:
- operator: Exists # 部分匹配,存在即可
key: k # 键
effect: NoSchedule # 污点标签
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: 1200m
3.容忍所有污点标签
---
kind: Pod
apiVersion: v1
metadata:
name: myphp
spec:
tolerations:
- operator: Exists # 模糊匹配
key: k # 键
effect: "" # 设置空或删除,代表所有污点标签
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: 1200m
三.pod优先级(PriorityClass类):优先保证重要的pod被调度运行
1.优先级策略,value值越大资源分配越优先
抢占优先策略:PreemptLowerPriority(强行抢夺)(高的会马上把低的干掉,自己占用资源)
非抢占优先策略(优先):Never(插队,银行的会员卡非抢占优先)(排队执行,高的等待上一个资源执行完)
2.优先级类资源文件编写
文件生成:kubectl create priorityclass --help
查看优先级:kubectl get pc
---
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
name: high-non
preemptionPolicy: Never
value: 1000
---
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
name: low-non
preemptionPolicy: Never
value: 500
3.pod容器使用优先级类(priorityClassName)
将三个资源运行在一个节点上,模拟资源抢占
# 无优先级的 Pod
[root@master ~]# vim php1.yaml
---
kind: Pod
apiVersion: v1
metadata:
name: php1
spec:
nodeSelector:
kubernetes.io/hostname: node-0003
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: "1200m"
# 低优先级 Pod
[root@master ~]# vim php2.yaml
---
kind: Pod
apiVersion: v1
metadata:
name: php2
spec:
nodeSelector:
kubernetes.io/hostname: node-0003
priorityClassName: low-non # 优先级名称
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: "1200m"
# 高优先级 Pod
[root@master ~]# vim php3.yaml
---
kind: Pod
apiVersion: v1
metadata:
name: php3
spec:
nodeSelector:
kubernetes.io/hostname: node-0003
priorityClassName: high-non # 优先级名称
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: "1200m"
k8s
一.pod污点:污点是让节点与pod产生排斥的一类规则
污点标签的命令
1.查看污点标签
kubectl describe nodes 节点名
2.设置污点标签
kubectl taint node 节点名 key值=value值:污点标签种类
3.删除污点标签
kubectl taint node 节点名 key值=value值:污点标签种类-
4.污点标签种类
驱逐:NoExecute //同时影响新Pod的调度和已存在Pod的运行状态
不调度:NoSchedule //仅影响新Pod的调度,对已存在的Pod无影响。
尽量不调度:PreferNoSchedule //对新Pod的调度有一定影响,但并非强制性的,已存在的Pod不会受到影响。
二.pod容器污点容忍策略(tolerations):无视污点标签的限制
1.容忍污点标签精确匹配键值对
kind: Pod
apiVersion: v1
metadata:
name: myphp
spec:
tolerations:
- operator: Equal # 完全匹配键值对(Equal,Exists)
key: k # 键
value: v1 # 值
effect: NoSchedule # 污点标签
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: 1200m
2.容忍污点标签模糊匹配键值对
kind: Pod
apiVersion: v1
metadata:
name: myphp
spec:
tolerations:
- operator: Exists # 部分匹配,存在即可
key: k # 键
effect: NoSchedule # 污点标签
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: 1200m
3.容忍所有污点标签
kind: Pod
apiVersion: v1
metadata:
name: myphp
spec:
tolerations:
- operator: Exists # 模糊匹配
key: k # 键
effect: "" # 设置空或删除,代表所有污点标签
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: 1200m
三.pod优先级(PriorityClass类):优先保证重要的pod被调度运行
1.优先级策略,value值越大资源分配越优先
抢占优先策略:PreemptLowerPriority(强行抢夺)(高的会马上把低的干掉,自己占用资源)
非抢占优先策略(优先):Never(插队,银行的会员卡非抢占优先)(排队执行,高的等待上一个资源执行完)
2.优先级类资源文件编写
文件生成:kubectl create priorityclass --help
查看优先级:kubectl get pc
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
name: high-non
preemptionPolicy: Never
value: 1000
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
name: low-non
preemptionPolicy: Never
value: 500
3.pod容器使用优先级类(priorityClassName)
将三个资源运行在一个节点上,模拟资源抢占
无优先级的 Pod
[root@master ~]# vim php1.yaml
kind: Pod
apiVersion: v1
metadata:
name: php1
spec:
nodeSelector:
kubernetes.io/hostname: node-0003
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: "1200m"
低优先级 Pod
[root@master ~]# vim php2.yaml
kind: Pod
apiVersion: v1
metadata:
name: php2
spec:
nodeSelector:
kubernetes.io/hostname: node-0003
priorityClassName: low-non # 优先级名称
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: "1200m"
高优先级 Pod
[root@master ~]# vim php3.yaml
kind: Pod
apiVersion: v1
metadata:
name: php3
spec:
nodeSelector:
kubernetes.io/hostname: node-0003
priorityClassName: high-non # 优先级名称
containers:
- name: php
image: myos:php-fpm
resources:
requests:
cpu: "1200m"