k8s通过设置亲和度让多副本pod自动落在不同的机器上

目前我们部署应用是已deployment对象为单位,亲和度也是针对每个deployment来设置。先说明一下条件。
设置亲和度的条件:
设置亲和度首先机器数量有要求否则会反而引起副本集中在一台机器上,举个例子,比如mservice这个pod如果我们要起两个副本,如果要通过亲和度使得他自动的落在不同的机器节点上,这时就需要有3个机器节点才能够完成。就是机器节点数要比需求副本数多一个。(下面会解释原因)
先讲设置方法:
通过kubectl -n 命名空间 edit deployment deployment名字 添加如下配置两个井号之间的内容就是亲和度的配置,这里以mc为例子
template: metadata: annotations: com.kingdee.kcs.zid: "5" creationTimestamp: null labels: app: mc cluster: test sname: mc spec: ##亲和性配置 affinity: podAntiAffinity: # requiredDuringSchedulingIgnoredDuringExecution: (强制调度策略,没有足够机器时会导致多余的副本起不来) preferredDuringSchedulingIgnoredDuringExecution: #软调度策略,会尽量满足需求但是会以启动为优先 - podAffinityTerm: labelSelector: matchExpressions: - key: |
k8s通过设置亲和度让多副本pod自动落在不同的机器上
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



