pod 调度亲和性

2018-05-16  本文已影响0人  白敏鸢

关于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/

上一篇下一篇

猜你喜欢

热点阅读