在这个示例中,我们创建了一个名为affinity-deployment的Deployment,其中的Pod被标记为app: affinity-app。通过Pod Affinity的设置,我们要求这些Pod在调度时具有亲和性,即它们应该被调度到具有相同kubernetes.io/hostname标签的节点上。 Pod Affinity的使用方法 1. 定义Pod Affinity 要使用Pod Affinity,首先需要在Pod的定义...
master01.k8s.org Ready control-plane,master 29d v1.20.0 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master01.k8s.org,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master= node01.k8s.org R...
nodeAffinity(node亲和性):以node为目标,解决pod可以调度到哪些node的问题。 podAffinity(pod亲和性):以pod为目标,解决pod可以和哪些以存在的pod部署在同一个拓扑域中的问题。 podAntiAffinity(pod反亲和性):以pod为目标,解决pod不能和哪些已存在pod部署在同一个拓扑域中的问题。 关于亲和性(反亲和性)使用场景的...
values:["aa","bb"]topologyKey:kubernetes.io/hostname # 启动pod [root@k8s-master01 ~]# kubectl create -f pod-podaffinity-required.yaml pod/pod-podaffinity-required created # 查看pod状态,发现未运行 [root@k8s-master01 ~]# kubectl get pods pod-podaffinity-required -n dev NAME READY STATUS...
operator:In values:["xxx","yyy"] topologyKey:kubernetes.io/hostname 上面配置表达的意思是:新 Pod 必须要与拥有标签 nodeenv=xxx 或者 nodeenv=yyy 的 pod 在同一 Node 上,显然现在没有这样 pod,接下来,运行测试一下。 #启动pod [root@k8s-master01 ~]# kubectl create -f pod-podaffinity-required....
Pod Affinity Pod亲和性调度 pod互斥性调度 Pod Affinity 通过《K8S调度之节点亲和性》,我们知道怎么在调度的时候让pod灵活的选择node,但有些时候我们希望调度能够考虑pod之间的关系,而不只是pod与node的关系。于是在kubernetes 1.4的时候引入了pod affinity。
在您的用例中,您可以使用Pod affinity或Anti-affinity,如果希望特定的POD与特定类型的POD一起运行。
我们在使用k8s过程中经常有这样的需求:我的k8s集群有多台服务器,配置不尽相同。我想把数据库部署到CPU...
podAntiAffinity:#使用Pod反亲和性调度 requiredDuringSchedulingIgnoredDuringExecution:#硬亲和性 -labelSelector:#使用标签匹配,即某个节点上具有该标签,那么Pod就不会调度到该节点上。 matchExpressions: -key:app operator:In values: -nginx topologyKey:kubernetes.io/hostname#位置拓扑键 ...
service "kubernetes" deleted deployment.apps "taint-demo" deleted 编辑资源清单 ot@master deployment-demo]# cat dm-affinity.yaml apiVersion: apps/v1 kind: Deployment metadata: name: dm-affinity spec: replicas: 20 selector: matchLabels: