k8s 详解 pod 调度 亲和性 反亲和性 容忍

申请创建一个pod,访问apiSever,pod到底会在哪个node上面运行呢?

schduler 组件 负责完成该工作

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第1张图片

 k8s 详解 pod 调度 亲和性 反亲和性 容忍_第2张图片

四类pod调度,去往哪个node

自动调度

定向调度 nodeName nodeSelector

声明去哪个node

标签选择器,

亲和性调度,跟谁关系好 node亲和性 pod 反亲和性

污点容忍性调度

污点 : node1说我有污点,你们别来了

容忍: pods说,没关系,我容忍你的污点,我就来

定向调度

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第3张图片

 nodeName 和container平级,是pod 的属性'

'

 强制调度,指定的node不存在怎么办,pod 运行失败呗

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第4张图片

亲和性调度(affinity)

就是一种偏好

强制调度会出现问题,如果指定的节点(node)在集群中不存在,pod将无法运行

 亲和性: 优先选择满足条件的 退而求其次,不是那么死板,那么刻板

nodeAffiny node 亲和性

podAffinty pod亲和性

podAntiAffinty pod 反亲和性

偏好谁呢?  想和谁在一起

讨厌和谁在一起,远离谁

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第5张图片

 依赖较强的应用-尽可能靠近

还有打散分布在各个node上面

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第6张图片

存在key为nodeenv的节点,

exists  doesnotexists,in ,not in,gt lt

 key是nodeenv,value是xxx或者yyy

 亲和性设置,硬设置  key必须是nodeenv,value是数组中的一个

有满足条件的节点,才可以成功调度

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第7张图片

 failedScheduling 调度失败  没有节点满足匹配规则

查看pod 所在的节点,在node1上面

软限制,preferr优先调度满足条件的k8s 详解 pod 调度 亲和性 反亲和性 容忍_第8张图片

 k8s 详解 pod 调度 亲和性 反亲和性 容忍_第9张图片

 Pod亲和性

参照当前运行的pod,进行pod的调度

硬host和软限制

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第10张图片

 hostname 相同节点

os 相同操作系统

参照pod 

找不到了,运行失败

hostname如果找到了,放到同一个node节点上

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第11张图片

 

 taints 污点

反向亲和性-远离参照pod 所在的node/os

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第12张图片

 node的角度,是否让pod调度过来

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第13张图片

preferNoSchdule

NoSchdule

NoExecute

node1加上污点

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第14张图片

 k8s 详解 pod 调度 亲和性 反亲和性 容忍_第15张图片

describe node 可以查询设置的污点

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第16张图片

 为什么创建pod 一直被调度到slave node,从来没有被调度到master上面?

master默认有污点的,不允许有pod 调度过去
 

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第17张图片

 容忍

就想把pod 调度到一个打了污点的node上,能不能做到?

人家都说了你不要来,pod 说我偏要去,死不要脸 舔狗 笑死 哈哈哈

拒绝我 ,pod没关系 我不在乎

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第18张图片

        k8s 详解 pod 调度 亲和性 反亲和性 容忍_第19张图片 

k8s 详解 pod 调度 亲和性 反亲和性 容忍_第20张图片

你可能感兴趣的:(k8s,k8s,kubernetes,容器)