Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
As you manage and maintain your AKS clusters, certain configuration changes require nodes to be reimaged. This reimage operation triggers a rolling update that recreates nodes. During a reimage operation, AKS cordons the node (prevents new pod scheduling), drains existing pods (evicting and rescheduling them on other available nodes while respecting Pod Disruption Budgets), and then reimages the node with the updated configuration. This process is a full node recreation, not a reboot - the underlying VM is reimaged with a new OS image. While properly configured persistent volumes (using Azure Disks, Azure Files, or other external storage) aren't affected, any data stored in the node's local ephemeral storage (such as EmptyDir volumes or local paths) is permanently lost. These operations are necessary to apply important updates, but they can disrupt running workloads and impact application availability. Node Disruption Policy gives you fine-grained control over when these disruptive operations are allowed to proceed, helping you balance the need for updates with operational stability.
Important
AKS preview features are available on a self-service, opt-in basis. Previews are provided "as is" and "as available," and they're excluded from the service-level agreements and limited warranty. AKS previews are partially covered by customer support on a best-effort basis. As such, these features aren't meant for production use. For more information, see the following support articles:
What is Node Disruption Policy?
Node Disruption Policy is a cluster-level configuration that governs when operations requiring node reimage and redeployment can be executed. It acts as a control gate, allowing you to:
- Align disruptive operations with your maintenance windows.
- Block configuration changes during critical business periods while still allowing node image upgrades and security patches to proceed.
- Maintain predictable cluster behavior during high-traffic events.
The policy applies to user-initiated configuration changes that require node recreation, such as updating custom certificate authority (CA) trust certificates, modifying security profile settings, or changing node OS configuration.
Note
Importantly, the policy doesn't block node image version updates (including SecurityPatch and NodeImage upgrade channels) or Kubernetes version upgrades. These operations continue to proceed according to their configured schedules even when the policy is set to Block. For details, see Upgrade operations not controlled by Node Disruption Policy. Additionally, certain recovery operations aren't controlled by this policy to ensure cluster health and availability. For details, see Recovery operations not controlled by Node Disruption Policy.
How Node Disruption Policy works
You configure Node Disruption Policy at the cluster level through the nodeDisruptionProfile property. When you attempt an operation that requires node reimage, AKS checks the current policy setting:
- Policy evaluation: AKS evaluates whether the operation is allowed based on the current policy.
- Maintenance window check (if applicable): If using
AllowDuringMaintenanceWindow, AKS verifies whether the current time falls within the configured maintenance window. - Operation execution or blocking: The node-disruptive operation proceeds if allowed or is rejected with an error message if blocked.
Policy options
Node Disruption Policy supports three policy configurations:
| Policy | Description | Use case |
|---|---|---|
Allow |
Allows operations that require node reimage to proceed at any time. This is the default behavior. | Use when you want to prioritize applying updates quickly and can tolerate workload disruption. |
AllowDuringMaintenanceWindow |
Blocks operations that require node reimage unless they occur within the aksManagedNodeOSUpgradeSchedule maintenance window. |
Use when you want to limit disruptions to specific maintenance windows that align with your operational schedule. |
Block |
Blocks all operations that require node reimage. | Use when you need to prevent any node disruptions, such as during critical business periods or high-traffic events. |
Note
When you use AllowDuringMaintenanceWindow, you must configure an aksManagedNodeOSUpgradeSchedule maintenance window. For more information on setting up maintenance windows, see Use planned maintenance to schedule and control upgrades for your Azure Kubernetes Service cluster. If you don't configure the maintenance window, the node-disruptive operations are allowed.
Considerations
Keep the following considerations in mind when using Node Disruption Policy:
- Scope: The policy applies to user-initiated operations that require node reimage, not to AKS-initiated system maintenance. For details, see Recovery operations not controlled by Node Disruption Policy.
- Blocked operations: When a disruptive operation is blocked, the API call fails with an error message. You need to either change the policy or wait for the maintenance window.
- Emergency maintenance: Azure reserves the right to perform urgent or critical maintenance operations regardless of the policy setting.
- Update planning: Setting the policy to
Blockprevents certain cluster updates. For details, see Operations covered by node disruption policy. Plan accordingly to ensure you can apply necessary updates when needed. - Maintenance window dependency: The
AllowDuringMaintenanceWindowpolicy requires anaksManagedNodeOSUpgradeSchedulemaintenance window to be configured. For details, see Use planned maintenance to schedule and control upgrades for your Azure Kubernetes Service cluster.
Operations covered by Node Disruption Policy
Cluster-level operations
Network policy enablement and Azure CNI Overlay upgrade
To install the required networking components and configure network rules that secure and manage pod-to-pod communication, you need to reimage the nodes.
The following table outlines network policy upgrades that trigger reimage:
| From | To |
|---|---|
| None (no network policy) | Azure Network Policy |
| None (no network policy) | Calico |
| Azure CNI | Azure CNI Overlay |
| Azure Network Policy | None (no network policy) |
| Calico | None (no network policy) |
Note
Changing between Azure and Calico network policies after one is already enabled doesn't require a reimage.
Node OS upgrade channel changes
Each channel uses a different OS patching infrastructure and configuration that you can't modify on running nodes.
The following table outlines node OS upgrade channel changes that trigger reimage:
| From | To |
|---|---|
| Unmanaged | None |
| Unspecified | Unmanaged |
| SecurityPatch | Unmanaged |
| NodeImage | Unmanaged |
| None | Unmanaged |
| Unspecified | Unmanaged |
| Unmanaged | SecurityPatch |
| Unmanaged | NodeImage |
IPv6 dual-stack enablement
To support dual-stack communication, nodes need both IPv4 and IPv6 IP configurations and networking stack updates (such as nftables rules).
The following table outlines IP configuration and networking stack updates that trigger reimage:
| From | To |
|---|---|
| IPv4 only | IPv4 + IPv6 (dual-stack) |
Cilium data plane changes
You need to install or remove eBPF programs that handle packet processing at the kernel level.
The following table outlines Cilium data plane changes that trigger reimage:
| From | To |
|---|---|
| None | Cilium |
| Cilium | None |
HTTP proxy configuration updates
All node components (containerd, kubelet, system services) need the updated proxy configuration applied system-wide. When you update HTTP proxy configuration, AKS automatically reimages all node pools in the cluster.
Node Disruption Policy triggers reimage when you modify any of the following HTTP proxy configuration properties or perform any of the following operations:
httpProxy: Proxy URL for HTTP connectionshttpsProxy: Proxy URL for HTTPS connectionsnoProxy: List of destinations to exclude from proxyingtrustedCa: Base64 encoded alternative CA certificate- Enable HTTP proxy on a cluster (with
--enable-http-proxy) - Disable HTTP proxy on a cluster (with
--disable-http-proxy) - Reenable HTTP proxy on a cluster that previously had it disabled
Custom CA certificates updates
You must install new CA certificates in the OS trust store to affect TLS validation for internal services and private registries.
Node Disruption Policy triggers reimage when you add, remove, or update custom CA certificates.
Kubelet identity changes
You must apply new identity credentials to the node configuration. This includes initial identity assignment, identity updates, and service principal profile resets.
Node Disruption Policy triggers reimage when you update a managed identity or user-assigned managed identity for the kubelet.
Private DNS zone changes
You must update DNS resolver settings to resolve the private API server endpoint using the new DNS zone.
Node Disruption Policy triggers reimage when you modify a private DNS zone configuration in a private cluster.
API Server VNet Integration enablement
You must reconfigure the nodes to communicate with the API server through the internal load balancer IP that's projected into the delegated subnet.
Node Disruption Policy triggers reimage when you enable API Server VNet Integration on an existing cluster that didn't previously use it. This change corresponds to changing the apiServerAccessProfile.enableVnetIntegration property (internally the privateConnectProfile.enabled field) from false (or unset) to true:
| From | To |
|---|---|
apiServerAccessProfile.enableVnetIntegration: false or unset |
apiServerAccessProfile.enableVnetIntegration: true |
eBPF host routing changes
You need to install or remove eBPF programs that provide high-performance packet forwarding (BpfVeth acceleration mode).
The following table outlines eBPF host routing changes that trigger reimage:
| From | To |
|---|---|
| Standard routing | eBPF host routing enabled |
| eBPF host routing enabled | Standard routing |
Node pool-level operations
These operations affect only the specific node pools where you make changes. They trigger a rolling reimage within those node pools:
Local DNS profile updates
You need to apply changes to the DNS caching daemon and DNS forwarding rules at the node level.
Node Disruption Policy triggers reimage when you modify a LocalDNS profile configuration.
Trusted Launch security changes
You can't change VM firmware configuration and boot process settings on running VMs. These changes require you to recreate the VMs.
The following table outlines Trusted Launch security changes that trigger reimage:
| Configuration | From | To |
|---|---|---|
| vTPM (virtual Trusted Platform Module) | Disabled | Enabled |
| vTPM (virtual Trusted Platform Module) | Enabled | Disabled |
| Secure Boot | Disabled | Enabled |
| Secure Boot | Enabled | Disabled |
Artifact streaming changes
You need to install or remove artifact streaming components to enable faster container image pulling by streaming image layers on-demand.
The following table outlines artifact streaming changes that trigger reimage:
| From | To |
|---|---|
| Disabled | Enabled |
| Enabled | Disabled |
Windows GMSA profile updates (Windows node pools only)
You need to apply new GMSA settings, DNS server configuration, and domain join credentials for Active Directory integration on the Windows nodes.
Node Disruption Policy triggers reimage of the Windows node pools when a GMSA change requires applying new node configuration:
| From | To | Triggers reimage |
|---|---|---|
| GMSA disabled | GMSA enabled | Yes |
| GMSA enabled (DNS server / root domain set or changed) | GMSA enabled with updated DNS server or root domain | Yes |
| GMSA enabled (DNS server set) | GMSA disabled | Yes |
| GMSA enabled (no DNS server set) | GMSA disabled | No (no node configuration to apply) |
Capacity Reservation Group attachment
You need to recreate the underlying VMs so they're allocated from the reserved capacity in the Capacity Reservation Group (CRG). Existing nodes weren't provisioned against the CRG, so AKS must reimage the node pool to associate them with the reservation.
Node Disruption Policy triggers reimage when you attach a Capacity Reservation Group to an existing node pool that doesn't already have one.
| From | To | Triggers reimage |
|---|---|---|
| No Capacity Reservation Group attached | Capacity Reservation Group attached | Yes |
Operations not yet covered by Node Disruption Policy
The following configuration changes require node reimage but aren't yet covered by Node Disruption Policy. A future Kubernetes minor version update will cover these changes as this change introduces new behavior.
After making these configuration changes, you must manually run az aks nodepool upgrade with --node-image-only to apply the changes to your nodes.
- SSH configuration changes: Changing SSH access methods (Disabled SSH, Entra ID based SSH, or Local User SSH) or updating SSH public keys on node pools.
- IMDS restriction changes: Enabling or disabling Instance Metadata Service (IMDS) restriction to block pod access to the IMDS endpoint.
- Bootstrap profile changes: Changing the bootstrap profile, such as switching the
artifactSourcebetweenDirectandCache, or changing thecontainerRegistryId(the Azure Container Registry used for network isolated clusters). - Outbound type changes: Modifying the cluster's outbound connectivity type (loadBalancer, userDefinedRouting, managedNATGateway, or userAssignedNATGateway).
Upgrade operations not controlled by Node Disruption Policy
Node Disruption Policy doesn't control the following upgrade operations. These upgrade operations proceed regardless of your policy setting. Upgrades are either customer-initiated or initiated by AKS within planned maintenance windows. To allow these operations to proceed as scheduled, keep them intentionally out of Node Disruption Policy scope. Addtionally, if operations covered by Node Disruption Policy are included in the same configuration changes with upgrades, they will not be controlled by Node Disruption Policy.
- Node image version updates: Upgrading to a new node OS image version (manually or through automatic upgrade channels). This operation is the most common reimage operation and includes security patches, OS updates, and AKS node image releases.
- Kubernetes version upgrades: Upgrading the Kubernetes version on a node pool, which applies new Kubernetes binaries, updated kubelet configuration, and OS-level changes.
Recovery operations not controlled by Node Disruption Policy
Node Disruption Policy doesn't control the following automated recovery operations. These operations can occur regardless of your policy setting to ensure cluster health and recovery.
- Node pool configuration rollback: When a node pool update operation fails due to invalid configuration or infrastructure issues, AKS automatically rolls back to the last known good state and reimages nodes to revert configuration.
- Admin cluster restore operations: When Azure support engineers perform administrative cluster restoration during incident resolution, nodes are reimaged to ensure consistency between control plane state and node configuration.
- Node identity credential updates: AKS periodically updates node identity credentials for security and compliance. These system-initiated updates trigger node reimages to apply the new credentials across all node pools.
Integration with planned maintenance
Node Disruption Policy works seamlessly with AKS planned maintenance windows. When you set the policy to AllowDuringMaintenanceWindow, disruptive operations align with your aksManagedNodeOSUpgradeSchedule maintenance window, ensuring that:
- Changes occur only during approved time windows.
- Operations coordinate with other scheduled maintenance.
- Teams are aware of when disruptions might occur.
This integration provides a comprehensive approach to managing cluster changes and minimizing impact on running workloads.
Note
When you use AllowDuringMaintenanceWindow, you must configure an aksManagedNodeOSUpgradeSchedule maintenance window. Using the default maintenance window or aksManagedAutoUpgradeSchedule (cluster auto-upgrade) doesn't satisfy this requirement. If you set AllowDuringMaintenanceWindow without an aksManagedNodeOSUpgradeSchedule window configured, all disruptive operations are allowed (the policy has no window to gate against). For more information on setting up maintenance windows, see Use planned maintenance to schedule and control upgrades for your Azure Kubernetes Service cluster.
Best practices
Consider these recommendations when implementing Node Disruption Policy:
- Use
AllowDuringMaintenanceWindowfor production: Combine with planned maintenance windows to control when disruptions occur in production environments. - Set
Blockduring critical periods: Temporarily block disruptive operations during high-traffic events, product launches, or incident response. Don't useBlockindefinitely. WhileBlockis appropriate for short-term freezes (planned events, incident response). - Allow flexibility in non-production: Use
Allowin development and testing environments where rapid iteration is more important than stability. - Communicate policy changes: Ensure your team understands the current policy and knows when operations might be blocked.
- Plan maintenance windows appropriately: Size your maintenance windows to accommodate the operations you need to perform.
- Test policy behavior: Validate policy settings in non-production environments before applying them to production clusters.
- Monitor blocked operations: Track when operations are blocked to optimize your maintenance schedule.
Related content
- Learn how to configure Node Disruption Policy.
- Understand planned maintenance in AKS.