本文主要是介绍pod反亲和配置【软亲和和硬亲和】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
pod反亲和含义解读:pod反亲和就是根据pod包含的标签来做亲和或者反亲和操作,亲和就是部署在一起,反亲和就是不部署在一起,然后反亲和包括硬反亲和和软反亲和,软反亲就是尽量避免部署在一起如果找不到满足条件也会部署,硬反亲就是绝对避免部署在一起如果找不到满足条件就不会部署
pod举例参考如下配置
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deployment
spec:replicas: 3selector:matchLabels:app: jacktemplate:metadata:labels:app: jackspec:affinity:podAntiAffinity: #pod反亲和标签,配置的规则根据pod的标签进行部署判断requiredDuringSchedulingIgnoredDuringExecution: #硬反亲和,硬性条件,必须满足下面的标签配置- labelSelector:matchExpressions:- key: appoperator: Invalues:- jacktopologyKey: "kubernetes.io/hostname" #域标签,配置反亲和规则生效的node区间preferredDuringSchedulingIgnoredDuringExecution: #软亲和,非必需性满足下面的标签配置- weight: 100 #权重100,表示此条规则优先生效podAffinityTerm:labelSelector:matchExpressions:- key: appoperator: Invalues:- nginxtopologyKey: "kubernetes.io/hostname"containers:- name: nginximage: nginxports:- containerPort: 80
配置解读:上面的配置表示优先执行权重为100的软反亲和操作,尽量避免pod部署在标签包含app:nginx的节点上,如果不满足条件pod也会部署。然后在执行硬反亲和规则,绝对拒绝pod部署在标签包含app:jack的节点上,如果不满足条件pod会拒绝部署提示pending状态
这篇关于pod反亲和配置【软亲和和硬亲和】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!