• Kubernetes: How to configure Deployment to evenly spread Pods across availability zones

    5 min read

    If you run Kubernetes workloads on AWS you want to make sure Pods are spread across all the available availability zones. To do so we can use podAntiAffinity to tell Kubernetes to avoid deploying all the Pods of the same deployment on the same AZ


  • How to avoid pods of the same Deployment to be scheduled on the same node

    2 min read

    kubernetes pod affinity node podAntiAffinity

    For some applications we might want to avoid having two or more Pods belonging to the same Deployment to be scheduled on different nodes, yet we don't need them to be a DaemonSet. Let's use as an example the cluster autoscaler: We would like to have two replicas but not on the same node, since if we are draining the node an there's not enough capacity on the other nodes with both Pods offline a manual intervention would be required to spawn a new node

    $ kubectl get pods -n autoscaler -o wide
    NAME                                                 READY   STATUS    RESTARTS   AGE     IP              NODE                                           NOMINATED NODE   READINESS GATES
    autoscaler-aws-cluster-autoscaler-585cc546dd-jc46d   1/1     Running   0          16h   ip-10-12-16-10.eu-west-1.compute.internal    <none>           <none>
    autoscaler-aws-cluster-autoscaler-585cc546dd-s4j2r   1/1     Running   0          16h  ip-10-12-16-10.eu-west-1.compute.internal    <none>           <none>

    To do so we will have to configure affinity



From pet to cattle
Treat your kubernetes clusters like cattle, not pets