人为影响k8s调度器的三种方法
- 污点、容忍度
- nodeName:让POD运行在制定的node上
- nodeSelecter:通过标签选择器,让POD运行在制定的一组node上
先创建一个deployment:
[root@hdss7-21 ~]# cat dp.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: nginx_dp
name: nginx_dp
namespace: infra
spec:
replicas: 2
selector:
matchLabels:
app: nginx_dp
template:
metadata:
labels:
app: nginx_dp
spec:
containers:
- image: harbor.local.com/public/nginx:v1.7.9
imagePullPolicy: IfNotPresent
name: nginx
没做污点的时候,现在是两个节点上各运行一组POD:
给运算节点打一个污点,污点的key为role,vlaue为node,对节点的影响为NoSchedule(不调度)
[root@hdss7-21 ~]# kubectl taint node hdss7-22.host.com role=node:NoSchedule
如果给node7-22这个节点加污点,该节点将不会被调度pod,因为NoSchedule的意思是不调度,其他的污点影响请参照官网,如果给pod控制器加上tolerations(容忍),有污点的运算节点将会被调度
那么如果要给有污点的node节点调度POD,可以使用容忍度配置,在template下添加配置:
template:
metadata:
labels:
app: nginx——dp
tolertions:
- key: role
value: node
effect: NoSchedule
版权申明
本文系作者 @Tis-FYM 原创发布在Tis-FYI站点。未经许可,禁止转载。
暂无评论数据