From 5b36f19e53d379087ebce05769b7152e91f9053a Mon Sep 17 00:00:00 2001 From: marcel-dempers Date: Sat, 14 Oct 2023 18:45:10 +1100 Subject: [PATCH] affinity updates --- kubernetes/affinity/README.md | 29 +++++++++++++++++++++++--- kubernetes/affinity/node-affinity.yaml | 9 -------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/kubernetes/affinity/README.md b/kubernetes/affinity/README.md index 5a2b08e..aa9de87 100644 --- a/kubernetes/affinity/README.md +++ b/kubernetes/affinity/README.md @@ -58,13 +58,27 @@ Fix our nodes. kubectl taint nodes demo-worker type=ssd:NoSchedule- kubectl taint nodes demo-worker3 type=ssd:NoSchedule- ``` +Scale back down to 0 +``` +kubectl scale deploy app-disk --replicas 0 +kubectl scale deploy app-disk --replicas 1 + +# pod should go back to demo-worker , node 1 +kubectl get pods -owide +``` ## Pod Affinity +Now [Pod Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity) is an expression to allow us to state that pods should gravitate towards other pods ``` -kubectl apply -f app-disk --replicas 3 -kubectl apply -f web-disk --replicas 3 +kubectl apply -f pod-affinity.yaml + +# observe where pods get deployed +kubectl get pods -owide + +kubectl scale deploy app-disk --replicas 3 +kubectl scale deploy web-disk --replicas 3 ``` ## Pod Anti-Affinity @@ -84,9 +98,18 @@ podAntiAffinity: topologyKey: "kubernetes.io/hostname" ``` -After applying the above, we can roll it out: +After applying the above, we can roll it out and observe scheduling: ``` +kubectl scale deploy app-disk --replicas 0 +kubectl scale deploy web-disk --replicas 0 kubectl apply -f node-affinity.yaml +kubectl get pods -owide + +kubectl scale deploy app-disk --replicas 2 #notice pending pods when scaling to 3 +kubectl get pods -owide +kubectl scale deploy web-disk --replicas 2 +kubectl get pods -owide + ``` diff --git a/kubernetes/affinity/node-affinity.yaml b/kubernetes/affinity/node-affinity.yaml index 037ce9d..6870f6a 100644 --- a/kubernetes/affinity/node-affinity.yaml +++ b/kubernetes/affinity/node-affinity.yaml @@ -19,15 +19,6 @@ spec: - name: app-disk image: nginx:latest affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: app - operator: In - values: - - app-disk - topologyKey: "kubernetes.io/hostname" nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: