关于pod调度
https://www.centos.bz/2017/07/kubernetes-pod-schedule-intro/
亲和性
按照官方的说明
The affinity on this pod defines one pod affinity rule and one pod anti-affinity rule.
可以看到affinity 是一个定义匹配策略的pod selector
使用:以k8s官方的例子
apiVersion: v1
kind: Pod
metadata:
name: with-pod-affinity
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S1
topologyKey: failure-domain.beta.kubernetes.io/zone
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S2
topologyKey: kubernetes.io/hostname
containers:
- name: with-pod-affinity
image: k8s.gcr.io/pause:2.0
1,affinity与containers同级关系
2,requiredDuringSchedulingIgnoredDuringExecution,强亲和,它保证所选的Node必须满足Pod对Node的所有要求
3,preferredDuringSchedulingIgnoredDuringExecution,弱亲和,它对kube-scheduler提出需求,kube-scheduler会尽量但不保证满足NodeSelector的要求。
4,有,podAntiAffinity,自然也有nodeAntiAffinity
5,指定资源的namespace topologyKey
参考资料
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
网友评论