Skip to content

Create blog post on AKS NAP disruption management - #5685

Open
wdarko1 wants to merge 22 commits into
Azure:masterfrom
wdarko1:nap-disruption-blog
Open

Create blog post on AKS NAP disruption management#5685
wdarko1 wants to merge 22 commits into
Azure:masterfrom
wdarko1:nap-disruption-blog

Conversation

@wdarko1

@wdarko1 wdarko1 commented Mar 27, 2026

Copy link
Copy Markdown
Contributor

Added a blog post on managing disruption with AKS Node Auto-Provisioning, covering best practices for Pod Disruption Budgets and consolidation.

Added a blog post on managing disruption with AKS Node Auto-Provisioning, covering best practices for Pod Disruption Budgets and consolidation.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new AKS blog post focused on managing voluntary disruption when using Node Auto-Provisioning (NAP), with guidance on Pod Disruption Budgets (PDBs), consolidation controls, disruption budgets, and maintenance windows.

Changes:

  • Added a new blog post covering NAP disruption concepts and common pitfalls.
  • Included YAML examples for PDBs and NodePool disruption settings (consolidation policy, budgets, schedules).
  • Added operational guidance on observability and drift/image update considerations.
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-07-28-nap-disruption/index.md
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 28, 2026 04:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Clarified descriptions of Pod Disruption Budgets and their impact on voluntary evictions. Improved wording for clarity and corrected minor typos.
sabbour

This comment was marked as outdated.

sabbour

This comment was marked as outdated.

Copilot AI review requested due to automatic review settings March 31, 2026 08:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated 6 comments.

Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ahmed Sabbour <103856+sabbour@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 2, 2026 19:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

wdarko1 added 2 commits April 2, 2026 12:42
Updated formatting and clarified sections on NAP disruption best practices, including node disruption budgets and observability.
Updated guidance on managing NAP node disruptions, including operational takeaways and common pitfalls with suggested fixes.
Copilot AI review requested due to automatic review settings April 2, 2026 19:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated 3 comments.

Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-07-28-nap-disruption/index.md
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
wdarko1 added 2 commits May 9, 2026 02:59
Updated questions and best practices regarding NAP disruption, including links and clarifications.
Copilot AI review requested due to automatic review settings May 9, 2026 10:20
wdarko1 added 2 commits June 26, 2026 22:05
Updated the description and corrected a typo in the blog post about AKS Node Auto-Provisioning. Adjusted the link to the NAP scheduling fundamentals blog post for accuracy.
Copilot AI review requested due to automatic review settings July 22, 2026 19:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

website/blog/2026-04-12-nap-disruption/index.md:3

  • The front-matter description is much longer than the 150–160 character guideline for blog SEO metadata. Shorten it so it fits within that range.
description: "Learn AKS best practices for managing node disruption when using node auto provisioning (NAP) with pod disruption budgets, node disruption budgets, consolidation policies, and maintenance windows in production."
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Comment thread website/blog/2026-04-12-nap-disruption/index.md Outdated
Copilot AI review requested due to automatic review settings July 22, 2026 20:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

website/blog/2026-04-12-nap-disruption/index.md:3

  • The front-matter description is ~210 characters, which exceeds the 150–160 character SEO guideline for blog posts and may be truncated in listings/search results. Shorten it to ~150–160 characters while keeping the key terms (AKS, NAP, PDBs, consolidation, maintenance windows).
description: "Learn AKS best practices for managing node disruption when using node auto provisioning (NAP) with pod disruption budgets, node disruption budgets, consolidation policies, and maintenance windows in production."

website/blog/2026-04-12-nap-disruption/index.md:19

  • This link targets https://blog.aks.azure.com/2025/12/06/node-provisioning-best-practice, but there’s no post/slug in the repo that matches it. This will publish as a broken link. Update it to point to an existing post (for example, the 2025-12-06 NAP post).
This post focuses on **NAP disruption best practices**, not workload scheduling tools such as topology spread constraints, node affinity, and taints. For scheduling best practices, see the [NAP scheduling fundamentals blog post](https://blog.aks.azure.com/2025/12/06/node-provisioning-best-practice).
**Practical guidance:**

- For critical workloads that you do not want to disrupt, zero eviction may be intentional. Be deliberate. When you're ready to allow disruption to these workloads, you may need to change the PDBs in the workload deployment file.
- For general workloads that can tolerate minor disruption, prefer a small `maxUnavailable` value, such as `1`, instead of zero evictions.

@sabbour sabbour Jul 27, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would avoid stating this as a universal best practice default. For a single-replica workload, that permits the only replica to be evicted. Frame it as an example for a replicated workload and tell readers to choose a PDB from their replica count and availability objective. Maybe something like: The following example allows one replica to be unavailable during voluntary disruption. It is appropriate only when the workload has enough replicas to preserve its availability target. Choose maxUnavailable or minAvailable based on your replica count and required service capacity.


## Keep node images current

NAP nodes are regularly updated as images change. The node image updates documentation calls out a key behavior: **if a node image version is older than 90 days, NAP forces pickup of the latest image version and bypasses any existing maintenance window**.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see 90-days mentioned here https://learn.microsoft.com/en-us/azure/aks/node-auto-provisioning-upgrade-image. Is this an actual behavior? If so, this sounds troublesome and we should also document it.

- Why won’t NAP scale down my nodes, even with lots of underused capacity?
- Why do upgrades get stuck on certain nodes?

This post focuses on **NAP disruption best practices**, not workload scheduling tools such as topology spread constraints, node affinity, and taints. For scheduling best practices, see the [NAP scheduling fundamentals blog post](https://blog.aks.azure.com/2025/12/06/node-provisioning-best-practice).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broken link. Is that post published?

@sabbour sabbour left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving with some minor changes requested.

Updated the blog post to reflect changes in scheduling best practices and clarified guidance on disruption settings. Removed outdated information regarding node image updates and added practical advice for managing workloads.
Copilot AI review requested due to automatic review settings July 28, 2026 16:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (4)

website/blog/2026-04-12-nap-disruption/index.md:3

  • Front matter description is much longer than the 150–160 character limit required for blog posts, which can break SEO conventions and CI checks if enforced.
description: "Learn AKS best practices for managing node disruption when using node auto provisioning (NAP) with pod disruption budgets, node disruption budgets, consolidation policies, and maintenance windows in production."

website/blog/2026-04-12-nap-disruption/index.md:4

  • The front matter date (2026-07-12) doesn’t match the folder date in the post path (2026-04-12-...). Because front matter overrides the folder-derived date, this mismatch can create confusing URLs vs. publish dates; align the folder name and date (or remove the override).
date: 2026-07-12

website/blog/2026-04-12-nap-disruption/index.md:152

  • This sentence says “The following example…”, but the next content is a new section header and there isn’t an example immediately following. Reword to reference the earlier PDB example to avoid confusing readers.
The following example allows one replica to be unavailable during voluntary disruption. It is appropriate only when the workload has enough replicas to preserve its availability target. Choose `maxUnavailable` or `minAvailable` based on your replica count and required service capacity.

website/blog/2026-04-12-nap-disruption/index.md:147

  • This guidance bullet repeats maxUnavailable twice; it should contrast maxUnavailable with minAvailable (the two mutually exclusive PDB fields).

This issue also appears on line 152 of the same file.

- Choose `maxUnavailable` or `maxUnavailable` based on your replica count and required service capacity. 
Copilot AI review requested due to automatic review settings July 28, 2026 16:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (5)

website/blog/2026-07-28-nap-disruption/index.md:27

  • The post references ./hero-image.png, but that file isn’t present in this new post directory. This will render a broken image (and may fail build/link checks depending on configuration). Add the image file or update the path to an existing asset.
![Diagram showing two concentric defensive layers protecting workloads during NAP node consolidation](./hero-image.png)

website/blog/2026-07-28-nap-disruption/index.md:3

  • The front matter description is much longer than the blog guideline target (150–160 chars) and also uses inconsistent casing/hyphenation for Node Auto-Provisioning. Shorten it to stay within the recommended SEO length and keep the feature name consistent.
description: "Learn AKS best practices for managing node disruption when using node auto provisioning (NAP) with pod disruption budgets, node disruption budgets, consolidation policies, and maintenance windows in production."

website/blog/2026-07-28-nap-disruption/index.md:4

  • The front matter date (2026-07-12) doesn’t match the folder date (2026-07-28-...). In Docusaurus, a front matter date overrides the folder-derived date, which can lead to an unexpected publish date/permalink. Align the front matter date with the folder date (or remove it).
date: 2026-07-12

website/blog/2026-07-28-nap-disruption/index.md:19

  • This link appears to point to a non-existent AKS blog URL path (/2026/03/20/node-provisioning-best-practice). Update it to a valid canonical URL so readers don’t hit a 404.
This post focuses on **NAP disruption best practices**, not workload scheduling tools such as topology spread constraints, node affinity, and taints. For scheduling best practices, see the [NAP scheduling fundamentals blog post](https://blog.aks.azure.com/2026/03/20/node-provisioning-best-practice).

website/blog/2026-07-28-nap-disruption/index.md:147

  • This bullet references maxUnavailable twice; the second option should be minAvailable (the two mutually exclusive PDB knobs).
- Choose `maxUnavailable` or `maxUnavailable` based on your replica count and required service capacity. 
Copilot AI review requested due to automatic review settings July 28, 2026 16:45
Corrected a duplicate phrase in practical guidance section.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (4)

website/blog/2026-07-28-nap-disruption/index.md:3

  • The front matter description is 210 characters, which exceeds the blog guideline target of 150–160 characters. Shortening it helps SEO previews and keeps metadata consistent across posts.
description: "Learn AKS best practices for managing node disruption when using node auto provisioning (NAP) with pod disruption budgets, node disruption budgets, consolidation policies, and maintenance windows in production."

website/blog/2026-07-28-nap-disruption/index.md:4

  • The folder date is 2026-07-28 but the front matter date is 2026-07-12. In this repo, the front matter date overrides the folder-derived date, so this mismatch will publish the post with an unexpected date (and potentially a different permalink). Align the front matter date with the folder date (or remove the front matter date).
date: 2026-07-12

website/blog/2026-07-28-nap-disruption/index.md:19

  • The post links to https://blog.aks.azure.com/2026/03/20/node-provisioning-best-practice, but there isn’t a corresponding blog post dated 2026-03-20 in website/blog/ (and no post with date: 2026-03-20). This link will likely 404 after publish.
This post focuses on **NAP disruption best practices**, not workload scheduling tools such as topology spread constraints, node affinity, and taints. For scheduling best practices, see the [NAP scheduling fundamentals blog post](https://blog.aks.azure.com/2026/03/20/node-provisioning-best-practice).

website/blog/2026-07-28-nap-disruption/index.md:147

  • This bullet appears to have a copy/paste typo: it says "Choose maxUnavailable or maxUnavailable" but the two PDB knobs are maxUnavailable and minAvailable.
- Choose `maxUnavailable` or `maxUnavailable` based on your replica count and required service capacity.
Updated the publication date and modified the next steps section to include a troubleshooting guide for NAP.
Copilot AI review requested due to automatic review settings July 28, 2026 16:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

website/blog/2026-07-28-nap-disruption/index.md:147

  • This bullet lists maxUnavailable twice; the two mutually exclusive PDB options are maxUnavailable and minAvailable.
- Choose `maxUnavailable` or `maxUnavailable` based on your replica count and required service capacity.

website/blog/2026-07-28-nap-disruption/index.md:3

  • The front-matter description is substantially longer than the 150–160 character SEO guideline for blog posts, which can cause truncation in listings/search previews. Consider shortening it to fit within the target range while keeping the key terms.
description: "Learn AKS best practices for managing node disruption when using node auto provisioning (NAP) with pod disruption budgets, node disruption budgets, consolidation policies, and maintenance windows in production."

website/blog/2026-07-28-nap-disruption/index.md:19

  • This post links to a "NAP scheduling fundamentals" blog URL that doesn’t correspond to any blog post in this repo, so it’s likely to 404 when published. Consider linking to an existing resource (for example, the AKS advanced scheduler best-practices doc) or updating to the correct blog permalink.

This issue also appears on line 147 of the same file.

This post focuses on **NAP disruption best practices**, not workload scheduling tools such as topology spread constraints, node affinity, and taints. For scheduling best practices, see the [NAP scheduling fundamentals blog post](https://blog.aks.azure.com/2026/03/20/node-provisioning-best-practice).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants