Kubernetes v1.36 Announcement Blog Post#55151
Kubernetes v1.36 Announcement Blog Post#55151chadmcrowell wants to merge 41 commits intokubernetes:mainfrom
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
✅ Pull request preview available for checkingBuilt without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
/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. |
|
Thanks for working on this. I think you've accidentally included a commit for a different blog article. Ideally, omit that. |
graz-dev
left a comment
There was a problem hiding this comment.
@chadmcrowell I just had a first brief read and added some suggestion to improve the article under a formal PoV.
graz-dev
left a comment
There was a problem hiding this comment.
@chadmcrowell I just had a first brief read and added some suggestion to improve the article under a formal PoV.
aibarbetta
left a comment
There was a problem hiding this comment.
I believe we are missing a WAS piece, the following are not covered:
kubernetes/enhancements#5547
kubernetes/enhancements#5832
kubernetes/enhancements#5732
kubernetes/enhancements#5710
kubernetes/enhancements#4671
kubernetes/enhancements#5598
Co-authored-by: Ryota <rytswd@gmail.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>
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 |
There was a problem hiding this comment.
| 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 |
8511d51 to
9336d24
Compare
|
|
||
| ### 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. |
There was a problem hiding this comment.
| 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. |
There was a problem hiding this comment.
| 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 |
There was a problem hiding this comment.
| 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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
You have this already covered above in ### Staleness mitigation for controllers section. Squash both together.
There was a problem hiding this comment.
good catch! thank you. I have combined them :)
rytswd
left a comment
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
| 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. |
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 |
There was a problem hiding this comment.
@chadmcrowell friendly ping.
| 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 |
There was a problem hiding this comment.
| 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. |
There was a problem hiding this comment.
| 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. |
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