An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.
Hi @Ompal Singh
You've read the situation correctly. Per the current AKS docs, node initialization taints (--node-init-taints / nodeInitializationTaints) are still preview, regular nodeTaints are owned by the AKS API and can't be cleared from Kubernetes, and the managed autoscaler doesn't expose --startup-taints. So there isn't a GA AKS setting that does exactly what --register-with-taints does on EKS.
The GA-only pattern I'd look at is doing it in Kubernetes itself, with a mutating admission webhook on Node creation:
- Use a policy engine you're already comfortable with (Kyverno and Gatekeeper mutation can both do this) or a small custom webhook, scoped to
CREATEonnodes. - Have it add
cni.istio.io/not-ready:NoScheduletospec.taintswhen the node object is first created. Because it happens at creation, the node is tainted before the scheduler ever sees it as schedulable, including nodes from autoscaler scale-ups. - Match only on CREATE, not UPDATE. That way, when the Istio CNI agent removes the taint, the webhook doesn't put it back.
- Run the webhook's pods on your system node pool and give them a toleration for that taint, so they never depend on a node that's waiting for them.
- Think about
failurePolicyup front.Failis safer for your security goal but can block node registration if the webhook is down.Ignorewon't block nodes but reopens the gap. Most teams pickFailand run the webhook with at least two replicas.
It's standard Kubernetes rather than an AKS feature, so if you need a formal "supported pattern" statement, it's worth raising a support case to confirm before building. Test it with a scale-up and a node image upgrade, since those are the paths where new Node objects are created.
Are your workload node pools Linux-only, or do you also have Windows pools in the mix?
If this answered your question, please consider accepting it as the answer. If the webhook approach runs into trouble with node registration, let me know and I'll be happy to keep helping.
Reference: