An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.
Hello @Jena, Tapas Kumar (893) (EXT),
Thank you for using Q&A forum
Taints: <none>
That single line is the entire reason.
When a pod is created, the scheduler places it on any node that meets the resource requirements (CPU, memory) unless something explicitly blocks it. There are two mechanisms that block scheduling:
- Taints on the node — repel pods that don't tolerate them
- NodeSelector / NodeAffinity on the pod — restrict which nodes the pod can land on
Why the Taint Is Missing
AKS does not automatically taint system node pools. This is a known gap — the CriticalAddonsOnly=true:NoSchedule taint that Microsoft recommends for system pools must be added manually. If the cluster was created without it, or if the taint was removed at some point, application pods will freely schedule on system nodes.
Add the taint that should have been there from the start:
bash
az aks nodepool update \
--resource-group <your-rg> \
--cluster-name <your-cluster> \
--name agentpool \
--node-taints CriticalAddonsOnly=true:NoSchedule
If this answers your query, do click Accept Answer and Up-Vote for the same. And, if you have any further query do let us know.