You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem:
Multiple kube-dns pods may be scheduled on the same node.
This poses a problem from two angles:
Consumes scarce resources
if some of the nodes in a cluster are small, have little memory/cpu and are sized to fit a a certain intended workload, then having several instances of kube-dns on the same machine may steal enough allocatable resources to make fitting the intended workload impossible on the node. Each kube-dns pod requires 260 milli cpu and 110 MiB of RAM. Especially the requested amount of CPU quickly makes an impact when multiple pods get scheduled to the same node.
Decreased availability
Having multiple pods on the same machine negates the purpose of having several instances from an availability perspective
Proposed Solution:
Use pod anti-affinity in the pod-spec for the kube-dns deployment, so that the kube-dns pods are spread out over the cluster and won't stack on top of each other on the same node(s).
Kubernetes Version: 1.8.3
Additional Information:
We faced this very problem in GKE where some pods intended for our small-ish control plane nodes did not fit because there were multiple kube-dns pods scheduled on those nodes. We use Cluster Autoscaler on a cluster with thousands of cores, which means the proportional horizontal pod autoscaler used by the kube-dns-autoscaler will produce a lot of kube-dns pods, and their placement are mildly speaking sub-optimial.
The text was updated successfully, but these errors were encountered:
Problem:
Multiple kube-dns pods may be scheduled on the same node.
This poses a problem from two angles:
if some of the nodes in a cluster are small, have little memory/cpu and are sized to fit a a certain intended workload, then having several instances of kube-dns on the same machine may steal enough allocatable resources to make fitting the intended workload impossible on the node. Each kube-dns pod requires 260 milli cpu and 110 MiB of RAM. Especially the requested amount of CPU quickly makes an impact when multiple pods get scheduled to the same node.
Having multiple pods on the same machine negates the purpose of having several instances from an availability perspective
Proposed Solution:
Use pod anti-affinity in the pod-spec for the kube-dns deployment, so that the kube-dns pods are spread out over the cluster and won't stack on top of each other on the same node(s).
Kubernetes Version: 1.8.3
Additional Information:
We faced this very problem in GKE where some pods intended for our small-ish control plane nodes did not fit because there were multiple kube-dns pods scheduled on those nodes. We use Cluster Autoscaler on a cluster with thousands of cores, which means the proportional horizontal pod autoscaler used by the kube-dns-autoscaler will produce a lot of kube-dns pods, and their placement are mildly speaking sub-optimial.
The text was updated successfully, but these errors were encountered: