Difference between revisions of "Kubernetes pod affinity and anti affinity"

From wikieduonline
Jump to navigation Jump to search
Line 62: Line 62:
  
  
<pre>
 
apiVersion: v1
 
 
kind: Pod
 
 
metadata:
 
 
  name: with-pod-affinity
 
 
spec:
 
 
  affinity:
 
 
    podAffinity:
 
 
      requiredDuringSchedulingIgnoredDuringExecution:
 
 
      - labelSelector:
 
 
          matchExpressions:
 
 
          - key: security
 
 
            operator: In
 
 
            values:
 
  
 +
apiVersion: v1
 +
 +
kind: Pod
 +
 +
metadata:
 +
 +
  name: with-pod-affinity
 +
 +
spec:
 +
 +
  affinity:
 +
 +
    podAffinity:
 +
 +
      requiredDuringSchedulingIgnoredDuringExecution:
 +
 +
      - labelSelector:
 +
 +
          matchExpressions:
 +
 +
          - key: security
 +
 +
            operator: In
 +
 +
            values:
 +
 
             - S1
 
             - S1
 
+
        topologyKey: topology.kubernetes.io/zone
+
        topologyKey: topology.kubernetes.io/zone
 
+
    podAntiAffinity:
+
    podAntiAffinity:
 
+
      preferredDuringSchedulingIgnoredDuringExecution:
+
      preferredDuringSchedulingIgnoredDuringExecution:
 
+
      - weight: 100
+
      - weight: 100
 
+
 
         podAffinityTerm:
 
         podAffinityTerm:
 
+
          labelSelector:
+
          labelSelector:
 
+
            matchExpressions:
+
            matchExpressions:
 
+
            - key: security
+
            - key: security
 
+
              operator: In
+
              operator: In
 
+
              values:
+
              values:
 
+
              - S2
+
              - S2
 
+
          topologyKey: topology.kubernetes.io/zone
+
          topologyKey: topology.kubernetes.io/zone
 
+
  containers:
+
  containers:
 
+
  - name: with-pod-affinity
+
  - name: with-pod-affinity
 
+
    image: registry.k8s.io/pause:2.0
+
    image: registry.k8s.io/pause:2.0
</pre>
 
  
 
== Related ==
 
== Related ==

Revision as of 15:19, 2 January 2023

https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity


0/11 nodes are available: 1 Insufficient cpu, 1 Too many pods, 10 nodes(s) didn't match Pod's node affinity/selector
0/2 nodes are available: 1 Too many pods, 1 nodes(s) didn't match Pod's node affinity/selector

Official examples

apiVersion: v1

kind: Pod

metadata:

  name: with-node-affinity

spec:

  affinity:

    nodeAffinity:

      requiredDuringSchedulingIgnoredDuringExecution:

        nodeSelectorTerms:

        - matchExpressions:

          - key: topology.kubernetes.io/zone

            operator: In

            values:

            - antarctica-east1

            - antarctica-west1

      preferredDuringSchedulingIgnoredDuringExecution:

      - weight: 1

        preference:

          matchExpressions:

          - key: another-node-label-key

            operator: In

            values:

            - another-node-label-value

  containers:

  - name: with-node-affinity

    image: registry.k8s.io/pause:2.0


apiVersion: v1

kind: Pod

metadata:

  name: with-pod-affinity

spec:

  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

  containers:

  - name: with-pod-affinity

    image: registry.k8s.io/pause:2.0

Related

default-scheduler

See also

Advertising: