Skip to content

Kubernetes v1.36 Announcement Blog Post#55151

Open
chadmcrowell wants to merge 41 commits intokubernetes:mainfrom
chadmcrowell:add-release-annoucement-blog
Open

Kubernetes v1.36 Announcement Blog Post#55151
chadmcrowell wants to merge 41 commits intokubernetes:mainfrom
chadmcrowell:add-release-annoucement-blog

Conversation

@chadmcrowell
Copy link
Copy Markdown
Contributor

@chadmcrowell chadmcrowell commented Mar 29, 2026

add release annoucement blog for 1.36 release

Preview this release annoucement post:
https://deploy-preview-55151--kubernetes-io-main-staging.netlify.app/blog/2026/04/22/kubernetes-v1-36-release/

Disclosure: Partially written by AI

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign nate-double-u for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot requested a review from lmktfy March 29, 2026 12:47
@k8s-ci-robot k8s-ci-robot added the area/blog Issues or PRs related to the Kubernetes Blog subproject label Mar 29, 2026
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. language/en Issues or PRs related to English language size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Mar 29, 2026
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 29, 2026

Pull request preview available for checking

Built without sensitive environment variables

Name Link
🔨 Latest commit 6dc6d28
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-io-main-staging/deploys/69e1e43964685e0008a93772
😎 Deploy Preview https://deploy-preview-55151--kubernetes-io-main-staging.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dipesh-rawat
Copy link
Copy Markdown
Member

/retitle [WIP] Kubernetes v1.36 Announcement Blog Post

Updating the title for clarity, since the draft is currently being developed in a separate Google Doc.

@k8s-ci-robot k8s-ci-robot changed the title Add release annoucement blog [WIP] Kubernetes v1.36 Announcement Blog Post Mar 29, 2026
@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 29, 2026
@lmktfy
Copy link
Copy Markdown
Member

lmktfy commented Mar 30, 2026

Thanks for working on this.

I think you've accidentally included a commit for a different blog article. Ideally, omit that.

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Apr 10, 2026
Copy link
Copy Markdown
Contributor

@graz-dev graz-dev left a comment

Choose a reason for hiding this comment

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

@chadmcrowell I just had a first brief read and added some suggestion to improve the article under a formal PoV.

Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Copy link
Copy Markdown
Contributor

@graz-dev graz-dev left a comment

Choose a reason for hiding this comment

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

@chadmcrowell I just had a first brief read and added some suggestion to improve the article under a formal PoV.

Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Copy link
Copy Markdown
Member

@aibarbetta aibarbetta left a comment

Choose a reason for hiding this comment

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

Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
chadmcrowell and others added 7 commits April 13, 2026 02:16
Co-authored-by: Graziano Casto <graziano.casto@outlook.com>
Co-authored-by: Graziano Casto <graziano.casto@outlook.com>
Co-authored-by: Graziano Casto <graziano.casto@outlook.com>
Co-authored-by: Graziano Casto <graziano.casto@outlook.com>
Co-authored-by: Graziano Casto <graziano.casto@outlook.com>
Co-authored-by: Graziano Casto <graziano.casto@outlook.com>

The feature relies on peer-aggregated discovery, so apiservers share information about which resources and versions they expose, then use that data to transparently reroute requests when needed. New metrics on rerouted traffic and proxy behavior help operators understand how often requests are forwarded and to which peers. Together, these changes make it easier to run highly available, mixed-version API control planes in production while performing multi-step or partial control-plane upgrades.

This work was done as a part of [KEP #4020](https://github.com/kubernetes/enhancements/issues/4020) led by SIG API-Machinery
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
This work was done as a part of [KEP #4020](https://github.com/kubernetes/enhancements/issues/4020) led by SIG API-Machinery
This work was done as a part of [KEP #4020](https://github.com/kubernetes/enhancements/issues/4020) led by SIG API Machinery

Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
@chadmcrowell chadmcrowell force-pushed the add-release-annoucement-blog branch from 8511d51 to 9336d24 Compare April 15, 2026 12:09

### Separate kubectl user preferences from cluster configs

In Kubernetes v1.36, the `.kuberc` feature for customizing `kubectl` user preferences graduates to beta and is enabled by default. The `~/.kube/kuberc` file allows users to store aliases, default flags, and other personal settings separately from `kubeconfig` files, which hold cluster endpoints and credentials. This separation prevents personal preferences from interfering with CI pipelines or shared `kubeconfig` files, while maintaining a consistent `kubectl` experience across different clusters and contexts.
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.

Suggested change
In Kubernetes v1.36, the `.kuberc` feature for customizing `kubectl` user preferences graduates to beta and is enabled by default. The `~/.kube/kuberc` file allows users to store aliases, default flags, and other personal settings separately from `kubeconfig` files, which hold cluster endpoints and credentials. This separation prevents personal preferences from interfering with CI pipelines or shared `kubeconfig` files, while maintaining a consistent `kubectl` experience across different clusters and contexts.
The `.kuberc` feature for customizing `kubectl` user preferences continues to be beta and enabled by default. The `~/.kube/kuberc` file allows users to store aliases, default flags, and other personal settings separately from `kubeconfig` files, which hold cluster endpoints and credentials. This separation prevents personal preferences from interfering with CI pipelines or shared `kubeconfig` files, while maintaining a consistent `kubectl` experience across different clusters and contexts.


In Kubernetes v1.36, the `.kuberc` feature for customizing `kubectl` user preferences graduates to beta and is enabled by default. The `~/.kube/kuberc` file allows users to store aliases, default flags, and other personal settings separately from `kubeconfig` files, which hold cluster endpoints and credentials. This separation prevents personal preferences from interfering with CI pipelines or shared `kubeconfig` files, while maintaining a consistent `kubectl` experience across different clusters and contexts.

Using the `kubectl.config.k8s.io/v1beta1` schema, teams can define aliases, set default options, and establish policies for credential plugins (including allowlists) to enforce safer authentication practices. Users can disable this functionality if needed by setting the `KUBECTL_KUBERC=false` or `KUBERC=off` environment variables.
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.

Suggested change
Using the `kubectl.config.k8s.io/v1beta1` schema, teams can define aliases, set default options, and establish policies for credential plugins (including allowlists) to enforce safer authentication practices. Users can disable this functionality if needed by setting the `KUBECTL_KUBERC=false` or `KUBERC=off` environment variables.
In Kubernetes v1.36, `.kuberc` was expanded with the ability to define policies for credential plugins (allowlist or denylists) to enforce safer authentication practicies. Users can disable this functionality if needed by setting the `KUBECTL_KUBERC=false` or `KUBERC=off` environment variables.


Using the `kubectl.config.k8s.io/v1beta1` schema, teams can define aliases, set default options, and establish policies for credential plugins (including allowlists) to enforce safer authentication practices. Users can disable this functionality if needed by setting the `KUBECTL_KUBERC=false` or `KUBERC=off` environment variables.

This work was done as a part of [KEP #3104](https://kep.k8s.io/3104) led by SIG Auth
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.

Suggested change
This work was done as a part of [KEP #3104](https://kep.k8s.io/3104) led by SIG Auth
This expansion was done as a part of [KEP #3104](https://kep.k8s.io/3104) led by SIG CLI, with the help from SIG Auth.


### Mutable Container Resources when Job is suspended

In Kubernetes v1.36, the MutablePodResourcesForSuspendedJobs feature for Jobs graduates to beta, relaxing validation so you can update container CPU, memory, GPU, and extended resource requests and limits while a Job is suspended. This gives queue controllers and operators a safe hook to right‑size batch workloads based on real‑time cluster conditions, rather than locking in resource guesses made at submit time. For example, a queueing system can suspend incoming Jobs, adjust their resource requirements to match available capacity or quota, then unsuspend them once the cluster can actually run them.
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'd probably even say that:

This update relaxes Job validation to allow updates to container CPU, memory, 
GPU, and extended resource requests and limits while a Job is suspended.


This work was done as part of [KEP #5793](https://kep.k8s.io/5793) led by SIG API Machinery.

### Stale Controller Mitigation
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.

You have this already covered above in ### Staleness mitigation for controllers section. Squash both together.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

good catch! thank you. I have combined them :)

@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 16, 2026
Copy link
Copy Markdown
Member

@rytswd rytswd left a comment

Choose a reason for hiding this comment

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

Some minor corrections first, I'll review the content more later


Previously, the Kubernetes scheduler and job controllers managed pods as independent units, often leading to fragmented scheduling or resource waste for complex, distributed workloads. Kubernetes v1.36 introduces a comprehensive suite of Workload Aware Scheduling (WAS) features in Alpha, natively integrating the Job controller with a new Workload API and a decoupled PodGroup API to treat related pods as a single logical entity.

As of v1.35, the scheduler could perform Gang Scheduling by ensuring a minimum number of pods are ready before any are bound, while the new work in gang scheduling in v1.36 includes a new PodGroup scheduling cycle, which atomically evaluates the entire pod group.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The term "gang scheduling" appears twice in this paragraph with inconsistent casing. I think this should be simply "gang scheduling" based on the documentation which only uses caps for article title. Since it's a relatively new term in Kubebrnetes, it may be even worth adding a link to the doc.

Suggested change
As of v1.35, the scheduler could perform Gang Scheduling by ensuring a minimum number of pods are ready before any are bound, while the new work in gang scheduling in v1.36 includes a new PodGroup scheduling cycle, which atomically evaluates the entire pod group.
As of v1.35, the scheduler could perform [gang scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/gang-scheduling/) by ensuring a minimum number of pods are ready before any are bound, while the new work in gang scheduling in v1.36 includes a new PodGroup scheduling cycle, which atomically evaluates the entire pod group.

Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
Comment thread content/en/blog/_posts/2026/kubernetes-v1-36-release/index.md Outdated
chadmcrowell and others added 10 commits April 17, 2026 00:33
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Co-authored-by: Ryota <rytswd@gmail.com>
Together, these changes make it easier to run highly available, mixed-version API control planes in production
while performing multi-step or partial control-plane upgrades.

This work was done as a part of [KEP #4020](https://kep.k8s.io/4020) led by SIG API-Machinery
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@chadmcrowell friendly ping.

Suggested change
This work was done as a part of [KEP #4020](https://kep.k8s.io/4020) led by SIG API-Machinery
This work was done as a part of [KEP #4020](https://kep.k8s.io/4020) led by SIG API Machinery


## Upcoming Release Webinar

Join members of the Kubernetes v1.36 Release Team on 20 May 2026 at 9 am PT to learn about the release highlights
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
Join members of the Kubernetes v1.36 Release Team on 20 May 2026 at 9 am PT to learn about the release highlights
Join members of the Kubernetes v1.36 Release Team on **Wednesday, May 20th 2026 at 4:00 PM (UTC)** to learn about the release highlights

## Upcoming Release Webinar

Join members of the Kubernetes v1.36 Release Team on 20 May 2026 at 9 am PT to learn about the release highlights
of this release. For more information and registration, visit the event page on the CNCF Online Programs site.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
of this release. For more information and registration, visit the event page on the CNCF Online Programs site.
of this release. For more information and registration, visit the [event page](https://community.cncf.io/events/details/cncf-cncf-online-programs-presents-cloud-native-live-kubernetes-v136-release/) on the CNCF Online Programs site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/blog Issues or PRs related to the Kubernetes Blog subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. language/en Issues or PRs related to English language size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.