申请创建一个pod,访问apiSever,pod到底会在哪个node上面运行呢?
schduler 组件 负责完成该工作
四类pod调度,去往哪个node
自动调度
定向调度 nodeName nodeSelector
声明去哪个node
标签选择器,
亲和性调度,跟谁关系好 node亲和性 pod 反亲和性
污点容忍性调度
污点 : node1说我有污点,你们别来了
容忍: pods说,没关系,我容忍你的污点,我就来
定向调度
nodeName 和container平级,是pod 的属性'
'
强制调度,指定的node不存在怎么办,pod 运行失败呗
亲和性调度(affinity)
就是一种偏好
强制调度会出现问题,如果指定的节点(node)在集群中不存在,pod将无法运行
亲和性: 优先选择满足条件的 退而求其次,不是那么死板,那么刻板
nodeAffiny node 亲和性
podAffinty pod亲和性
podAntiAffinty pod 反亲和性
偏好谁呢? 想和谁在一起
讨厌和谁在一起,远离谁
依赖较强的应用-尽可能靠近
还有打散分布在各个node上面
存在key为nodeenv的节点,
exists doesnotexists,in ,not in,gt lt
key是nodeenv,value是xxx或者yyy
亲和性设置,硬设置 key必须是nodeenv,value是数组中的一个
有满足条件的节点,才可以成功调度
failedScheduling 调度失败 没有节点满足匹配规则
查看pod 所在的节点,在node1上面
软限制,preferr优先调度满足条件的![](https://img-blog.csdnimg.cn/6acd12729fd14cd190b54c5a86f744d0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY3VpbGxs,size_20,color_FFFFFF,t_70,g_se,x_16)
Pod亲和性
参照当前运行的pod,进行pod的调度
硬host和软限制
hostname 相同节点
os 相同操作系统
参照pod
找不到了,运行失败
hostname如果找到了,放到同一个node节点上
taints 污点
反向亲和性-远离参照pod 所在的node/os
node的角度,是否让pod调度过来
preferNoSchdule
NoSchdule
NoExecute
node1加上污点
describe node 可以查询设置的污点
为什么创建pod 一直被调度到slave node,从来没有被调度到master上面?
master默认有污点的,不允许有pod 调度过去
容忍
就想把pod 调度到一个打了污点的node上,能不能做到?
人家都说了你不要来,pod 说我偏要去,死不要脸 舔狗 笑死 哈哈哈
拒绝我 ,pod没关系 我不在乎