Kubernetes (k8s) 亲和性 operator 可以根据不同的需求进行配置,以下是一些可选配置:
nodeAffinity:将 Pod 调度到指定的节点上,例如使用 labelSelector 指定节点上的标签。
podAffinity:将 Pod 调度到同一个节点或相邻节点上,可以使用 topologyKey 参数指定需要匹配的拓扑域。
podAntiAffinity:避免将多个 Pod 调度到同一个节点或相邻节点上,也可以使用 topologyKey 参数指定需要匹配的拓扑域。
requiredDuringSchedulingIgnoredDuringExecution:在调度时必须满足条件,但是运行过程中如果条件不再满足,则仍然允许 Pod 运行。
preferredDuringSchedulingIgnoredDuringExecution:优选条件,在满足条件的情况下尽量将 Pod 调度到匹配的节点上,但是如果条件不再满足,则仍然允许 Pod 运行。
weight:为 affinity 和 anti-affinity 规则设置权重,用于调整优先级。
namespacesSelector:限制哪些命名空间的 Pod 能够受到该规则的影响。
matchExpressions:使用表达式匹配节点和 Pod 的标签。
topologySpreadConstraints: 针对同一拓扑域内的部分节点进行pod的布置策略,可以控制同一拓扑域内不同节点上Pod的分布情况。
podTopologySpreadConstraints: 针对同一拓扑域内的部分 Pod 进行布置策略,可以控制同一拓扑域内不同 Pod 在节点上的分布情况。