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