k8s部署-38-带你了解并自定义pod调度策略(下)

网友投稿 236 2022-09-11

k8s部署-38-带你了解并自定义pod调度策略(下)

pod调度的理论我们经过上一篇文章的介绍,都了解的差不多了哈,那么我们接下来就该具体来实操了。

前言

上一篇是理论,本篇是实操。

节点亲和性

[root@node1 ~]# cd namespace/[root@node1 namespace]# mkdir pod-scheduler[root@node1 namespace]# cd pod-scheduler/[root@node1 pod-scheduler]# apiVersion: apps/v1kind: Deploymentmetadata: name: web-demo-node namespace: devspec: selector: matchLabels: app: web-demo-node replicas: 1 template: metadata: labels: app: web-demo-node spec: containers: - name: web-demo-node image: registry.cn-beijing.aliyuncs.com/yunweijia0909/springboot-web:v1 ports: - containerPort: 8080 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: disktype operator: NotIn values: - ssd[root@node1 pod-scheduler]#

解释:就是说我这个pod,想要运行在哪个节点上;主要是affinity那块的东西

affinity: nodeAffinity: # 表示是node亲和性 requiredDuringSchedulingIgnoredDuringExecution: # 是必要条件 nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 # 必须运行在label是:beta.kubernetes.io/arch=amd64上 preferredDuringSchedulingIgnoredDuringExecution: # 表示最好在这里 - weight: 1 preference: matchExpressions: - key: disktype operator: NotIn values: - ssd # 最好运行在label是:disktype 不等于 ssd上

如果有两个必要条件,比如同时满足,需要配置和matchExpressions同级。如下:

- matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - key: type operatos: In values: - blue

如果说是两个必要条件,满足其一即可的话,需要配置和nodeSelectorTerms同级。如:

nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 nodeSelectorTerms: - matchExpressions: - key: type operator: In values: - blue

POD亲和性

[root@node1 pod-scheduler]# vim wed-pod.yaml apiVersion: apps/v1kind: Deploymentmetadata: name: web-demo-pod namespace: devspec: selector: matchLabels: app: web-demo-pod replicas: 1 template: metadata: labels: app: web-demo-pod spec: containers: - name: web-demo-pod image: registry.cn-beijing.aliyuncs.com/yunweijia0909/springboot-web:v1 ports: - containerPort: 8080 affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - web-demo topologyKey: kubernetes.io/hostname preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - web-demo-node topologyKey: kubernetes.io/hostname[root@node1 pod-scheduler]#

解释:表示在一定的范围内,想和某个pod调度在一起,或者说不想和某个pod调度在一起。看下配置:

affinity: podAffinity: # POD亲和性 requiredDuringSchedulingIgnoredDuringExecution: # 必要条件 - labelSelector: matchExpressions: - key: app operator: In values: - web-demo topologyKey: kubernetes.io/hostname # 必须和app=web-demo的pod运行在同一个节点上 preferredDuringSchedulingIgnoredDuringExecution: # 最好条件 - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - web-demo-node topologyKey: kubernetes.io/hostname # 最好和app=web-demo-node的app运行在同一节点

那万一我们有一个不想和某个pod运行在一起的诉求的时候我们怎么做呢?配置成下面就好了:

affinity: podAntiAffinity: # 这里这里,改的是这里,表示不想,不愿意 requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - web-demo topologyKey: kubernetes.io/hostname preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - web-demo-node topologyKey: kubernetes.io/hostname

污点

是不是还有一种可能性,就是说我这个node就不想给他们使用,或者说我这个node有点儿特殊,比如说我的gpu资源,或者说别的什么,总之就是不想让别人用,这个时候怎么处理呢,那你不能让每一个pod都配置亲和性呀,这个时候我们就引入了“污点”这个概念,当你node打了个污点之后,正常的pod是不会调度到你这个node节点上的。

------ 以下内容为防伪内容,忽略即可 ------

------ 以下内容为防伪内容,忽略即可 ------

------ 以下内容为防伪内容,忽略即可 ------

电视盒linux怎么查看linux内存linux仿maclinux键盘上怎么打linuxusb复合设备linux文件备份的方法linux添加网关不生效电脑以linux系统启动linux上运行msilinux移动文件怎么操作linux系统检查ntplinux复制代码命令行linux如何下载c语言linux授权sodolinux中lcd显示时间虚拟机linux命令怎么设置linux下存储怎么知道linux连上网了linux怎么删除指定字符串csdn中linux教程

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:k8s部署-39-pod有哪几种部署方式呢?能不能回滚版本呢?带你了解。
下一篇:文案君:字节跳动招聘,激情文案阐述职业长跑!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~