十分钟搞懂K8S的亲和与反亲和调度( 三 )


5.Pod反亲和调度(1) 反亲和的硬亲和
接着上面的例子,继续准备Pod3的yaml编排文件,如下:
apiVersion: v1kind: Podmetadata:name: webapp-2namespace: demolabels:app: webapp-2spec:containers:- name: webappimage: nginxports:- containerPort: 80affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- topologyKey: kubernetes.io/hostnamelabelSelector:matchExpressions:- key: appoperator: Invalues:- webapp使用Pod反亲和的方式,让Pod3和Pod1不会部署在一起 。部署完毕后 , 查看结果,Pod3因为反亲和被调度到了k8s-worker-2节点 。

十分钟搞懂K8S的亲和与反亲和调度

文章插图
(2) 反亲和的软亲和
反亲和的软亲和 和 硬亲和类似,只是多了权重 , 你可以自行尝试 。
六、总结本文主要快速讲解Kubernetes的亲和性和反亲和性调度 。读完本文你需要记住以下3点:
  • 亲和性 和 反亲和性的调度,筛选的条件使用的是Node(Pod)的label字段 。
  • 亲和性调度:就好像Node(Pod)和Pod是关系很好的闺蜜,Pod说,“只要符合这种label的Node(Pod)都是我的好闺蜜,闺蜜在哪儿我就去哪儿” 。
  • 反亲和性调度:就好像2个Pod是赌气的2个孩子,互相对着干 , 一个往东,另一随便去哪个方向就是不往东,他们不会去到同一个地方 。

【十分钟搞懂K8S的亲和与反亲和调度】


推荐阅读