On this page · 12 sections
- The three upstream end-of-life dates in 2027
- What makes 2027 different: providers stop waiting
- EKS, AKS and GKE dates side by side
- What extended support costs on each platform
- The 2027 upgrade calendar, month by month
- What breaks between 1.34 and 1.37 (and what doesn't)
- Finding deprecated APIs: Pluto, kubectl convert and the API server
- Worked example: what missing the spring window costs
- Notes for teams in India and the EU
- The 2027 Kubernetes upgrade checklist
- How eCorpIT can help
- References
Summary. Upstream Kubernetes 1.35 reaches end of life on 28 February 2027, after entering maintenance mode on 28 December 2026. The project lists 1.36 ending on 28 June 2027 and 1.37 on 28 October 2027, so every supported minor version leaves upstream support within 12 months. Amazon EKS ends standard support for 1.35 on 27 March 2027, then bills $0.60 per cluster-hour instead of $0.10, with extended support on by default. AKS ends community support on 31 March 2027, and its long-term support needs the $0.60 Premium tier. GKE ends standard support on 11 April 2027, and its Extended channel adds $0.50 to the $0.10 base fee. From 1 June 2027, AKS upgrades clusters left on unsupported versions, ignoring maintenance windows and deprecated-API checks. No built-in API has been removed since 1.32, so the 2027 risk sits mostly in nodes and defaults: cgroup v1, containerd 1.x, the gitRepo volume and SELinux mount labelling. A cluster on 1.35 in January needs three minor upgrades to stay on standard support through 2027.
About this article. For platform teams planning 2027 change windows. We checked dates and prices on 1 November 2026 against kubernetes.io, Kubernetes release records on GitHub, and AWS, Microsoft and Google documentation and price lists. Providers revise calendars often, so re-check before you commit a change window. No vendor paid for inclusion. Researched with AI assistance and reviewed by our editorial team.
The three upstream end-of-life dates in 2027
The Kubernetes project maintains release branches for the three most recent minor versions, currently 1.37, 1.36 and 1.35. Each gets about 14 months: a 12-month standard period, then two months of maintenance mode, when patches are limited to assigned CVEs, dependency issues and critical core component problems. The 28th is used because every month has one.
| Minor version | Upstream release | Latest patch | Maintenance mode from | Upstream end of life |
|---|---|---|---|---|
| 1.34 | 27 Aug 2025 | 1.34.13 | 27 Aug 2026 | 27 Oct 2026 (ended) |
| 1.35 | 17 Dec 2025 | 1.35.10 | 28 Dec 2026 | 28 Feb 2027 |
| 1.36 | 22 Apr 2026 | 1.36.6 | 28 Apr 2027 | 28 Jun 2027 |
| 1.37 | 26 Aug 2026 | 1.37.2 | 28 Aug 2027 | 28 Oct 2027 |
Dates are from the project's schedule data. The four patches were published on GitHub on 28 October 2026. On 1 November, kubernetes.io still showed September's.
The next patch targets are 10 November 2026, 15 December 2026 and 12 January 2027; the last two rounds shipped 8 and 15 days late. No 1.35 patches are planned after 28 February 2027. Version 1.38 is next: SIG Release targets 16 December 2026, and Microsoft's AKS calendar lists a 1.38 preview in November 2026 and general availability in February 2027.
What makes 2027 different: providers stop waiting
AKS will upgrade unsupported clusters itself. Microsoft's 25 October 2026 release notes list this as an upcoming change. From 1 June 2027, AKS upgrades any cluster still on an unsupported version once its 60-day grace period has ended. For that first rollout, it expects community-support clusters on 1.36 or later and LTS clusters on 1.33 LTS or later. The upgrade ignores your maintenance window and the deprecated-API check, honours Pod Disruption Budgets only on a best-effort basis, and cannot be cancelled once running or rolled back. There is no opt-out.
GKE retires No channel. Google deprecated the setting on 10 June 2026. It will be removed on 14 June 2027, and remaining clusters will be enrolled in the Stable channel.
EKS bills you for staying, by default. This one is older: the $0.60 rate dates from April 2024. Set the upgrade policy to STANDARD and the cluster is auto-upgraded at the end of standard support instead. When extended support ends, EKS upgrades the control plane with no further notice and leaves managed node groups and self-managed nodes where they were.
Upstream, Ingress NGINX was retired in March 2026 with no further releases or security fixes, though existing deployments keep working. Our Ingress-NGINX to Gateway API migration plan covers the move.
EKS, AKS and GKE dates side by side
EKS and GKE end dates trail upstream by about one to three months. AKS is about a month behind for 1.34 and 1.35 but only days behind for 1.36 and 1.37. AKS publishes months that mean the month's last day, shown below as days. EKS dates are from AWS's calendar; Google calls its schedule a best-effort prediction.
| Version | Upstream EOL | EKS standard ends | EKS extended ends | AKS end of life | AKS LTS ends | GKE standard ends | GKE extended ends |
|---|---|---|---|---|---|---|---|
| 1.34 | 27 Oct 2026 | 2 Dec 2026 | 2 Dec 2027 | 30 Nov 2026 | 30 Nov 2027 | 25 Jan 2027 | 25 Nov 2027 |
| 1.35 | 28 Feb 2027 | 27 Mar 2027 | 27 Mar 2028 | 31 Mar 2027 | 31 Mar 2028 | 11 Apr 2027 | 11 Feb 2028 |
| 1.36 | 28 Jun 2027 | 2 Aug 2027 | 2 Aug 2028 | 30 Jun 2027 | 30 Jun 2028 | 9 Aug 2027 | 9 Jun 2028 |
| 1.37 | 28 Oct 2027 | 1 Dec 2027 | 1 Dec 2028 | 31 Oct 2027 | 31 Oct 2028 | 22 Dec 2027 | 22 Oct 2028 |
Amazon EKS: 14 months standard, then 12 months extended
Versions 1.34 to 1.37 are in standard support today, and 1.31 to 1.33 in extended support. Extended billing starts at the beginning of the day a version leaves standard support, in UTC. EKS gives at least 60 days' notice and lets you roll an in-place upgrade back within seven days. Extended support covers control-plane patches, the VPC CNI, kube-proxy and CoreDNS add-ons, and AWS-published AMIs. AWS names 1.32 as the last version with Amazon Linux 2 AMIs.
Azure AKS: 12 months of community support, LTS on the Premium tier
AKS gives each GA minor version 12 months of community support, then a platform support window that covers only Azure platform issues and blocks new clusters on that version. Long-term support adds a second year of backported security fixes. Enrolment is never automatic: it needs the Premium tier and --k8s-support-plan AKSLongTermSupport, and covers only the two most recent patches of each minor.
Non-LTS clusters upgrade one minor version at a time; LTS clusters can skip to a higher LTS version if skew and validation checks pass. Nodes jump too: 1.35 images list Ubuntu 22.04 with containerd 1.7.29, while 1.36 lists Ubuntu 24.04 with containerd 2.3.1. Platform-initiated upgrade months for community-support clusters are June 2027 for 1.32 to 1.35, September 2027 for 1.36 and January 2028 for 1.37. From 1.38, Ubuntu node pools default to Ubuntu 26.04.
Google GKE: release channels and the Extended channel
GKE moves clusters through Rapid, Regular and Stable channels and auto-upgrades them on or after published dates. For 1.36, it shows a Regular target around 11 November 2026 and a Stable one estimated for January 2027. Maintenance exclusions can hold a cluster back until its end of support, not beyond. The Extended channel keeps a minor version supported for up to 24 months, free during the standard period and $0.50 per cluster-hour extra after it.
What extended support costs on each platform
All three providers list the same price for keeping an old version alive: $0.60 per cluster-hour, six times the $0.10 standard control-plane fee.
| Provider | Standard control-plane fee | Extended or LTS fee | How you get it | What happens at the end |
|---|---|---|---|---|
| Amazon EKS | $0.10 per cluster-hour | $0.60 per cluster-hour | On by default (upgrade policy EXTENDED) | Control plane auto-upgraded; node groups stay put |
| Azure AKS | Free tier: listed as free, no SLA; Standard tier: $0.10 per cluster-hour | Premium tier: $0.60 per cluster-hour | Opt in to Premium and the LTS plan | Platform-initiated upgrade to the next LTS after a 60-day grace period |
| Google GKE | $0.10 per cluster-hour; $74.40 monthly free-tier credit for zonal and Autopilot clusters | $0.10 + $0.50 = $0.60 per cluster-hour | Enrol in the Extended channel | Upgraded to the next minor version near the end |
Microsoft's retail price list shows the Standard Long Term Support meter at $0.60 per hour in every listed region, against $0.10 for Standard Uptime SLA. Azure's calculator data matches, and the pricing page limits LTS to Standard SKU clusters, not AKS Automatic.
One oddity: the list also carries a FreeTierInfrastructureCost meter at $0.05 per hour, effective 1 October 2026, while Microsoft's documentation still calls the Free tier free. We found no explanation, so check your invoice if you run Free tier clusters.
The 2027 upgrade calendar, month by month
Before 2027, EKS extended support for 1.31 ends on 26 November 2026. AKS community support for 1.34 and LTS for 1.31 end on 30 November. EKS standard support for 1.34 ends on 2 December, when clusters on the default policy move to $0.60 per hour. Version 1.38 is targeted for 16 December, and 1.35 enters maintenance mode on 28 December.
| Date (2027) | Event | Have done by then |
|---|---|---|
| January (est.) | GKE Stable auto-upgrades to 1.36, Regular to 1.37 | 1.36 and 1.37 tested in staging |
| 25 Jan | GKE 1.34 end of standard support | GKE 1.34 clusters upgraded |
| 28 Feb | Upstream 1.35 end of life | 1.36 production plan signed off |
| 27 Mar | EKS 1.35 end of standard support | On 1.36, or $0.60 per hour accepted |
| 31 Mar | AKS 1.35 end of life | On 1.36; grace period runs 1 Apr to 30 May |
| 11 Apr | GKE 1.35 end of standard support | On 1.36, or on the Extended channel |
| 1 Jun | AKS platform-initiated upgrades begin | Every AKS cluster supported |
| 14 Jun | GKE removes No channel | Every GKE cluster in a chosen channel |
| 28 and 30 Jun | Upstream, then AKS, 1.36 end of life | AKS clusters on 1.37 |
| 2 Aug | EKS 1.36 end of standard support | EKS clusters on 1.37 |
| 9 Aug | GKE 1.36 end of standard support | GKE clusters on 1.37 |
| 28 and 31 Oct | Upstream, then AKS, 1.37 end of life | AKS clusters on 1.38 |
| 1 Dec | EKS 1.37 end of standard support | EKS clusters on 1.38 |
| 22 Dec | GKE 1.37 end of standard support | GKE clusters on 1.38 |
Older versions also hit hard stops: EKS auto-upgrades remaining 1.32 control planes after 23 March and 1.33 after 29 July, and GKE's extended support for 1.33 ends on 12 June. AKS runs ahead of the others. A cluster on 1.35 in January 2027 needs 1.36 by late March (11 April on GKE), then 1.37 by 30 June on AKS or early August on EKS and GKE, then 1.38 by 31 October on AKS or December on EKS and GKE.
What breaks between 1.34 and 1.37 (and what doesn't)
The Kubernetes Deprecated API Migration Guide lists v1.32 as the most recent release that stopped serving a deprecated API version (flowcontrol.apiserver.k8s.io/v1beta3). Nothing from 1.33 to 1.37 is on that list. That shifts most of the risk to nodes, runtimes and behaviour defaults. Our guides to the containerd 2.0 move and the 1.36 breaking changes go deeper on two of these hops.
| Arrived in | Change | Who it hits | Action |
|---|---|---|---|
| 1.35 | kubelet refuses to start on cgroup v1 nodes by default | Old node OS images, custom AMIs; Fargate still uses cgroup v1, says AWS | Move nodes to cgroup v2; setting failCgroupV1 to false is a stopgap only |
| 1.35 | Last release supporting containerd 1.x | Nodes on containerd 1.7 | Move to containerd 2.0 or later before 1.36 |
| 1.35 | kubelet pod-infra-container-image flag removed | Custom AMIs and bootstrap scripts | Delete the flag before upgrading |
| 1.35 | kube-proxy IPVS mode deprecated | Clusters running IPVS | Plan a move to nftables mode |
| 1.36 | gitRepo volume permanently disabled | Pods that mount gitRepo volumes | Init containers or git-sync sidecars |
| 1.36 | Strict IP and CIDR validation on by default | New or updated objects with leading zeros or non-canonical CIDRs | Fix values in charts and automation |
| 1.36 | Service externalIPs deprecated, removal planned for 1.43 | Services that set externalIPs | LoadBalancer, NodePort or Gateway API |
| 1.37 | SELinuxMount enabled by default | SELinux nodes where pods share a volume with different labels, on CSI drivers that opt in | Align seLinuxOptions, or set seLinuxChangePolicy to Recursive |
| 1.37 | kubelet stops on deprecated cAdvisor flags; three container metrics dropped; eventRecordQPS of 0 now means no limit | Custom kubelet arguments, Grafana dashboards, alerts | Remove flags, set QPS to 5 to keep old behaviour, fix dashboards |
Sources are AWS's EKS release notes and Kubernetes project posts and documentation. AWS notes that Bottlerocket 1.35 sets failCgroupV1: false for backward compatibility while AL2023 follows upstream behaviour.
Finding deprecated APIs: Pluto, kubectl convert and the API server
Third-party CRDs and Helm charts carry their own deprecations, so check every hop. The trap is the API server: as the Pluto README explains, it converts a resource to whichever apiVersion you request, so kubectl get -o yaml says little about your Git repositories or Helm history.
Pluto, Fairwinds' open-source CLI, scans manifests, Helm charts, live Helm releases and in-cluster resources, and flags each hit as DEPRECATED or REMOVED with a replacement. The latest release is v5.24.4 (15 September 2026). kubectl convert rewrites a manifest to a newer apiVersion but is now a separate plugin, and the Kubernetes guide warns that its defaults may not be the ones you want.
# Nodes
kubectl get nodes -o wide
stat -fc %T /sys/fs/cgroup/ # "cgroup2fs" means cgroup v2
# Manifests, rendered charts and the live cluster
pluto detect-files -d ./manifests
helm template ./charts/my-app | pluto detect -
pluto detect-all-in-cluster -o wide
# Rewrite an old manifest
kubectl convert -f ./my-deployment.yaml --output-version apps/v1
# Deprecated APIs still called, and gitRepo volumes
kubectl get --raw /metrics | grep apiserver_requested_deprecated_apis
kubectl get pods -A -o yaml | grep -n "gitRepo:"
# CSI drivers using SELinux mounts
kubectl get csidriver -o custom-columns=NAME:.metadata.name,SELINUXMOUNT:.spec.seLinuxMount
# Provider views
aws eks describe-cluster-versions
az aks get-upgrades --resource-group my-rg --name my-cluster --output table
Kubernetes documents the cgroup check and the metric. AKS shows usage under Diagnose and solve problems > Kubernetes API deprecations and runs the check on upgrades you start, but platform-initiated upgrades proceed anyway. GKE says deprecated API use can affect auto-upgrade timing.
Worked example: what missing the spring window costs
Take 12 production clusters on 1.35 in January 2027: six on EKS, three on AKS (Standard tier) and three on GKE. Assume the 1.36 upgrade slips six months past each provider's end of standard support, at 730 hours a month, the figure in AWS's pricing examples. The extra cost is $0.50 per cluster-hour on each platform ($0.60 less $0.10).
- EKS: 6 clusters × $0.50 × 730 hours × 6 months = $13,140
- AKS, moved to Premium for LTS: 3 × $0.50 × 730 × 6 = $6,570
- GKE Extended channel: 3 × $0.50 × 730 × 6 = $6,570
- Total extra control-plane spend: $26,280, or $4,380 a month, against a normal control-plane bill of 12 × $0.10 × 730 = $876 a month
The larger costs are elsewhere. By the end of the slip, 1.36 has itself left standard support on all three platforms (30 June on AKS, 2 August on EKS, 9 August on GKE), so the premium keeps running until each cluster reaches 1.37, and two minor upgrades land close together. Without LTS, the AKS clusters would also have entered the platform-initiated upgrade path in June.
Notes for teams in India and the EU
For Indian organisations whose financial year ends on 31 March, the 1.35 deadlines land four days apart: EKS on 27 March, AKS on 31 March. If you freeze changes around year-end close, move production to 1.36 in January or February. Fees are in US dollars. Azure lists the same $0.60 LTS meter in Jio India Central as elsewhere, and EKS and GKE quote one flat rate. EU teams weighing a provider move can read our EU Data Act cloud switching explainer.
Java teams have a separate licence question, covered in our Oracle JDK 21 licence guide.
The 2027 Kubernetes upgrade checklist
- Inventory every cluster: provider, version, channel or policy, tier and node OS. Microsoft publishes an Azure Resource Graph query for AKS.
- Write each cluster's three 2027 deadlines into the change calendar.
- Decide per cluster: upgrade, or pay. If you pay, get the $0.60 per hour and an exit date signed off.
- On AKS, set an auto-upgrade channel and a maintenance window of at least four hours, and subscribe to AKS Communication Manager.
- On GKE, enrol every no-channel cluster in a channel before 14 June 2027.
- Fix the nodes first: cgroup v2, containerd 2.0 or later before 1.36, no
--pod-infra-container-imageflag, no deprecated cAdvisor flags before 1.37.
- Run Pluto and watch the deprecated-API metric for clients you do not own.
- Clear add-ons before each hop: confirm that CNI, CSI drivers, ingress controllers, cert-manager and service mesh support the target version. AWS's sequence updates its managed add-ons after the control plane and nodes.
- Test Pod Disruption Budgets by draining a node in staging.
- Upgrade the control plane one minor at a time, then node groups. EKS tolerates nodes three minors behind but recommends matching versions. GKE's limit is two minors.
How eCorpIT can help
eCorpIT is a Gurugram-based technology organisation, founded in 2021, assessed at CMMI Level 5 and MSME certified, with senior-led engineering teams working across AWS, Microsoft and Google platforms. Our cloud computing services team plans and runs Kubernetes upgrade programmes on EKS, AKS and GKE. Talk to us at /contact-us/.
Last updated: 1 November 2026.