Skip to content

Affinity💣

Pod constraints for Istio are implemented following the kubernetes affinity documentation. Istio can constraint a pod using nodeSelector, nodeAffinity, or the pod Affinity/Anti-affinity feature.

nodeSelector💣

in the values.yaml add nodeSelector like:

nodeSelector:
  <key>: <values>

nodeAffinity💣

in the values.yaml, add nodeAffinity like:

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/e2e-az-name
              operator: In
              values:
                - e2e-az1
                - e2e-az2
    preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
            - key: another-node-label-key
              operator: In
              values:
                - another-node-label-value

podAffinity💣

In values.yaml add pod affinity/anti-affinity like:

affinity:
  podAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
            - key: security
              operator: In
              values:
                - S1
        topologyKey: topology.kubernetes.io/zone
  podAntiAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
              - key: security
                operator: In
                values:
                  - S2
          topologyKey: topology.kubernetes.io/zone

Last update: 2021-06-18 by Michael McLeroy