k8s-Pod调度策略
做一个寡言清淡的男孩子,目有所望,心有所想,以诚挚之心,领岁月之教诲。Pod调度自动调度通过schedular经过一系列运算得出定向调度NodeName NodeSeletor通过标签选择进行调度#通过nodeName 调度至指定节点node1...spec:containers:-name: wangziimage: nginx:latestnodeName: node1...#通过NodeSe
·
做一个寡言清淡的男孩子,目有所望,心有所想,以诚挚之心,领岁月之教诲。
Pod调度
-
自动调度
- 通过schedular经过一系列运算得出
-
定向调度
- NodeName NodeSeletor通过标签选择进行调度
#通过nodeName 调度至指定节点node1 ... spec: containers: -name: wangzi image: nginx:latest nodeName: node1 ...
#通过NodeSeletor 调度至指定 具有 shuai=wangzi 标签的节点 ... spec: containers: -name: wangzi image: nginx:latest nodeSeletor: shuai: wangzi ...
-
亲和性调度
- NodeAffinity PodAffinity PodAntiAffinity
亲和性: 如果两个应用频繁交互,可以利用亲和性将两个应用接近,减少网络通信带来的性能损耗 反亲和性: 当一个应用采用多副本部署时,采用反亲和性将应用分布在不同的node上,提高服务的高可用性
kubectl explain pod.spec.affinity.nodeAffinity #如果没找到符合要求的节点,会选择一个别的节点调度上去 preferredDuringSchedulingIgnoredDuringExecution preference 节点选择器项,与相应的权重关联 weight 权重 Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. #必须符合要求的节点才能调度上去 requiredDuringSchedulingIgnoredDuringExecution nodeSelectorTerms matchExpressions key: wangzi value: zuishuai operator: Exists In Gt Lt等 例子: matchExpressions: -key: dev operator: Exists #匹配存在标签的key为 dev的节点 matchExpressions: -key: dev operator: In values: ['wz', 'zs'] #匹配标签的key为dev,且value是‘wz’ ‘zs’的节点
kubectl explain pod.spec.affinity.podAffinity #如果没找到符合要求的pod,会选择一个别的pod调度上去 preferredDuringSchedulingIgnoredDuringExecution podAffinityTerm weight #必须符合要求的pod才能调度上去 requiredDuringSchedulingIgnoredDuringExecution namespaces 指定参照pod的命名空间 topologyKey 调度的作用域 kubernetes.io/hostname 以node节点为区分范围 kubernetes.io/os 以node节点的操作系统类型来区分 labelSelector 例子 ... spec: containers: -name: wangzi image: nginx:latest affinity: podAffinity: #pod亲和性 requiredDuringSchedulingIgnoredDuringExecution: -labelSelector: matchExpressions: -key: dev operator: In values: ['wz', 'zs'] topologyKey: kubernetes.io/hostname #必须 调度到符合 标签key为dev value为wz zs的pod 所在的节点上去 ...
-
污点调度
-
Taints Toleration
-
通过为node设置污点,来决定是否允许将pod调度过来
-
effect
- PerferNoSchedule: 尽量不要来我这,除非没办法
- NoSchedule: 新的不要来,已经在这的就好好呆着
- NoExcute: 新的不要来,旧的赶紧走
-
命令
#设置污点 kubectl taint nodes wangzi key=zuishuai:effect #去除污点 kubectl taint nodes wangzi key:effect- #去除所有污点 kubectl taint nodes wangzi key-
-
默认情况下不会调度到master节点,因为master配置了污点NoSchedule标记
-
-
容忍
-
如果说污点是拒绝,容忍就是忽略
... spec: containers: -name: wangzi image: nginx:latest tolerations: #添加容忍 -key: 'dev' #添加容忍的key operator: 'euqal' #操作符 value: 'k8s-test' #添加容忍的value effect: 'NoExcute' #添加容忍规则,必须和标记的节点污点规则一直 tolerationSeconds:10s #当effect为NoExcute时生效,pod在node上停留时间。 ...
-
更多推荐
已为社区贡献5条内容
所有评论(0)