Skip to content

Commit 2e3e760

Browse files
Merge pull request #234081 from schaffererin/patch-2-local-links
Platform support policy and automatic upgrades
2 parents cf7b0eb + 79e9c5b commit 2e3e760

File tree

3 files changed

+69
-9
lines changed

3 files changed

+69
-9
lines changed

articles/aks/auto-upgrade-cluster.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,21 @@ Part of the AKS cluster lifecycle involves performing periodic upgrades to the l
2020

2121
Cluster auto-upgrade provides a set once and forget mechanism that yields tangible time and operational cost benefits. By enabling auto-upgrade, you can ensure your clusters are up to date and don't miss the latest AKS features or patches from AKS and upstream Kubernetes.
2222

23-
AKS follows a strict versioning window with regard to supportability. With properly selected auto-upgrade channels, you can avoid clusters falling into an unsupported version. For more on the AKS support window, see [Alias minor versions][supported-kubernetes-versions].
23+
AKS follows a strict supportability versioning window. With properly selected auto-upgrade channels, you can avoid clusters falling into an unsupported version. For more on the AKS support window, see [Alias minor versions][supported-kubernetes-versions].
24+
25+
## Customer versus AKS-initiated auto-upgrades
26+
27+
Customers can specify cluster auto-upgrade specifics in the following guidance. These upgrades occur based on the cadence the customer specifies and are recommended for customers to remain on supported Kubernetes versions.
28+
29+
AKS also initiates auto-upgrades for unsupported clusters. When a cluster in an n-3 version (where n is the latest supported AKS GA minor version) is about to drop to n-4, AKS automatically upgrades the cluster to n-2 to remain in an AKS support [policy][supported-kubernetes-versions]. Automatically upgrading a platform supported cluster to a supported version is enabled by default.
30+
31+
For example, Kubernetes v1.25 will upgrade to v1.26 during the v1.29 GA release. To minimize disruptions, set up [maintenance windows][planned-maintenance].
2432

2533
## Cluster auto-upgrade limitations
2634

27-
If you’re using cluster auto-upgrade, you can no longer upgrade the control plane first and then upgrade the individual node pools. Cluster auto-upgrade will always upgrade the control plane and the node pools together. There is no ability of upgrading the control plane only, and trying to run the command `az aks upgrade --control-plane-only` will raise the error: `NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane.`
35+
If you’re using cluster auto-upgrade, you can no longer upgrade the control plane first, and then upgrade the individual node pools. Cluster auto-upgrade always upgrades the control plane and the node pools together. There's no ability of upgrading the control plane only, and trying to run the command `az aks upgrade --control-plane-only` raises the following error: `NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane.`
2836

29-
If using the `node-image` cluster auto-upgrade channel or the `NodeImage` node image auto-upgrade channel, Linux [unattended upgrades][unattended-upgrades] will be disabled by default.
37+
If using the `node-image` cluster auto-upgrade channel or the `NodeImage` node image auto-upgrade channel, Linux [unattended upgrades][unattended-upgrades] is disabled by default.
3038

3139
## Using cluster auto-upgrade
3240

@@ -40,7 +48,7 @@ The following upgrade channels are available:
4048
| `patch`| automatically upgrade the cluster to the latest supported patch version when it becomes available while keeping the minor version the same.| For example, if a cluster is running version *1.17.7* and versions *1.17.9*, *1.18.4*, *1.18.6*, and *1.19.1* are available, your cluster is upgraded to *1.17.9*|
4149
| `stable`| automatically upgrade the cluster to the latest supported patch release on minor version *N-1*, where *N* is the latest supported minor version.| For example, if a cluster is running version *1.17.7* and versions *1.17.9*, *1.18.4*, *1.18.6*, and *1.19.1* are available, your cluster is upgraded to *1.18.6*.
4250
| `rapid`| automatically upgrade the cluster to the latest supported patch release on the latest supported minor version.| In cases where the cluster is at a version of Kubernetes that is at an *N-2* minor version where *N* is the latest supported minor version, the cluster first upgrades to the latest supported patch version on *N-1* minor version. For example, if a cluster is running version *1.17.7* and versions *1.17.9*, *1.18.4*, *1.18.6*, and *1.19.1* are available, your cluster first is upgraded to *1.18.6*, then is upgraded to *1.19.1*.
43-
| `node-image`| automatically upgrade the node image to the latest version available.| Microsoft provides patches and new images for image nodes frequently (usually weekly), but your running nodes won't get the new images unless you do a node image upgrade. Turning on the node-image channel will automatically update your node images whenever a new version is available. If you use this channel, Linux [unattended upgrades] will be disabled by default.|
51+
| `node-image`| automatically upgrade the node image to the latest version available.| Microsoft provides patches and new images for image nodes frequently (usually weekly), but your running nodes don't get the new images unless you do a node image upgrade. Turning on the node-image channel automatically updates your node images whenever a new version is available. If you use this channel, Linux [unattended upgrades] are disabled by default.|
4452

4553
> [!NOTE]
4654
> Cluster auto-upgrade only updates to GA versions of Kubernetes and will not update to preview versions.
@@ -78,7 +86,7 @@ The Azure portal also highlights all the deprecated APIs between your current ve
7886

7987
## Using auto-upgrade with Planned Maintenance
8088

81-
If you’re using Planned Maintenance and cluster auto-upgrade, your upgrade will start during your specified maintenance window.
89+
If you’re using Planned Maintenance and cluster auto-upgrade, your upgrade starts during your specified maintenance window.
8290

8391
> [!NOTE]
8492
> To ensure proper functionality, use a maintenance window of four hours or more.
@@ -87,7 +95,7 @@ For more information on Planned Maintenance, see [Use Planned Maintenance to sch
8795

8896
## Best practices for cluster auto-upgrade
8997

90-
The following best practices will help maximize your success when using auto-upgrade:
98+
Use the following best practices to help maximize your success when using auto-upgrade:
9199

92100
- In order to keep your cluster always in a supported version (i.e within the N-2 rule), choose either `stable` or `rapid` channels.
93101
- If you're interested in getting the latest patches as soon as possible, use the `patch` channel. The `node-image` channel is a good fit if you want your agent pools to always be running the most recent node images.
@@ -96,9 +104,9 @@ The following best practices will help maximize your success when using auto-upg
96104
- Follow [PDB best practices][pdb-best-practices].
97105

98106
<!-- INTERNAL LINKS -->
99-
[supported-kubernetes-versions]: supported-kubernetes-versions.md
100-
[upgrade-aks-cluster]: upgrade-cluster.md
101-
[planned-maintenance]: planned-maintenance.md
107+
[supported-kubernetes-versions]: ./supported-kubernetes-versions.md
108+
[upgrade-aks-cluster]: ./upgrade-cluster.md
109+
[planned-maintenance]: ./planned-maintenance.md
102110
[operator-best-practices-scheduler]: operator-best-practices-scheduler.md#plan-for-availability-using-pod-disruption-budgets
103111
[node-image-auto-upgrade]: auto-upgrade-node-image.md
104112

articles/aks/faq.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,18 @@ Most clusters are deleted upon user request; in some cases, especially where cus
177177

178178
No, you're unable to restore your cluster after deleting it. When you delete your cluster, the associated resource group and all its resources will also be deleted. If you want to keep any of your resources, move them to another resource group before deleting your cluster. If you have the **Owner** or **User Access Administrator** built-in role, you can lock Azure resources to protect them from accidental deletions and modifications. For more information, see [Lock your resources to protect your infrastructure][lock-azure-resources].
179179

180+
## What is platform support, and what does it include?
181+
182+
Platform support is a reduced support plan for unsupported "N-3" version clusters. Platform support only includes Azure infrastructure support. Platform support does not include anything related to Kubernetes functionality and components, cluster or node pool creation, hotfixes, bug fixes, security patches, retired components, etc. See [platform support policy][supported-kubernetes-versions] for additional restrictions.
183+
184+
AKS relies on the releases and patches from [Kubernetes](https://kubernetes.io/releases/), which is an Open Source project that only supports a sliding window of 3 minor versions. AKS can only guarantee [full support](./supported-kubernetes-versions.md#kubernetes-version-support-policy) while those versions are being serviced upstream. Since there's no more patches being produced upstream, AKS can either leave those versions unpatched or fork. Due to this limitation, platform support will not support anything from relying on kubernetes upstream.
185+
186+
## Will AKS automatically upgrade my unsupported clusters?
187+
188+
AKS will initiate auto-upgrades for unsupported clusters. When a cluster in an n-3 version (where n is the latest supported AKS GA minor version) is about to drop to n-4, AKS will automatically upgrade the cluster to n-2 to remain in an AKS support [policy][supported-kubernetes-versions]. Automatically upgrading a platform supported cluster to a supported version is enabled by default.
189+
190+
For example, kubernetes v1.25 will be upgraded to v1.26 during the v1.29 GA release. To minimize disruptions, set up [maintenance windows][planned-maintenance]. See [auto-upgrade][auto-upgrade-cluster] for details on automatic upgrade channels.
191+
180192
## If I have pod / deployments in state 'NodeLost' or 'Unknown' can I still upgrade my cluster?
181193

182194
You can, but we don't recommend it. Upgrades should be performed when the state of the cluster is known and healthy.
@@ -333,6 +345,8 @@ The extension **does not** require any additional outbound access to any URLs, I
333345
<!-- LINKS - internal -->
334346
335347
[aks-upgrade]: ./upgrade-cluster.md
348+
[auto-upgrade-cluster]: ./auto-upgrade-cluster.md
349+
[planned-maintenance]: ./planned-maintenance.md
336350
[aks-cluster-autoscale]: ./cluster-autoscaler.md
337351
[aks-advanced-networking]: ./configure-azure-cni.md
338352
[aks-rbac-aad]: ./azure-ad-integration-cli.md
@@ -349,6 +363,7 @@ The extension **does not** require any additional outbound access to any URLs, I
349363
[multi-node-pools]: ./use-multiple-node-pools.md
350364
[availability-zones]: ./availability-zones.md
351365
[private-clusters]: ./private-clusters.md
366+
[supported-kubernetes-versions]: ./supported-kubernetes-versions.md
352367
[bcdr-bestpractices]: ./operator-best-practices-multi-region.md#plan-for-multiregion-deployment
353368
[availability-zones]: ./availability-zones.md
354369
[az-regions]: ../availability-zones/az-region.md

articles/aks/supported-kubernetes-versions.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ AKS defines a generally available (GA) version as a version available in all reg
8383

8484
AKS may also support preview versions, which are explicitly labeled and subject to [preview terms and conditions][preview-terms].
8585

86+
AKS provides platform support only for one GA minor version of Kubernetes after the regular supported versions. The platform support window of Kubernetes versions on AKS is known as "N-3". For more information, see [platform support policy](#platform-support-policy).
87+
8688
> [!NOTE]
8789
> AKS uses safe deployment practices which involve gradual region deployment. This means it may take up to 10 business days for a new release or a new version to be available in all regions.
8890
@@ -128,6 +130,41 @@ New Supported Version List
128130
1.17.*9*, 1.17.*8*, 1.16.*11*, 1.16.*10*
129131
```
130132

133+
## Platform support policy
134+
135+
Platform support policy is a reduced support plan for certain unsupported kubernetes versions. During platform support, customers will only receive support from Microsoft for AKS/Azure platform related issues. Any issues related to Kubernetes functionality and components will not be supported.
136+
137+
Platform support policy applies to clusters in an n-3 version (where n is the latest supported AKS GA minor version), before the cluster drops to n-4. For example, kubernetes v1.25 will be considered platform support when v1.28 is the latest GA version. However, during the v1.29 GA release, v1.25 will then be auto-upgraded to v1.26.
138+
139+
AKS relies on the releases and patches from [kubernetes](https://kubernetes.io/releases/), which is an Open Source project that only supports a sliding window of 3 minor versions. AKS can only guarantee [full support](#kubernetes-version-support-policy) while those versions are being serviced upstream. Since there's no more patches being produced upstream, AKS can either leave those versions unpatched or fork. Due to this limitation, platform support will not support anything from relying on kubernetes upstream.
140+
141+
This table outlines support guidelines for Community Support compared to Platform support.
142+
143+
| Support category | Community Support (N-2) | Platform Support (N-3) |
144+
|---|---|---|
145+
| Upgrades from N-3 to a supported version| Supported | Supported|
146+
| Platform (Azure) availability | Supported | Supported|
147+
| Node pool scaling| Supported | Supported|
148+
| VM availability| Supported | Supported|
149+
| Storage, Networking related issues| Supported | Supported with the exception of bug fixes and retired components |
150+
| Start/stop | Supported | Supported|
151+
| Rotate certificates | Supported | Supported|
152+
| Infrastructure SLA| Supported | Supported|
153+
| Control Plane SLA| Supported | Supported|
154+
| Platform (AKS) SLA| Supported | Not supported|
155+
| Kubernetes components (including Add-ons) | Supported | Not supported|
156+
| Component updates | Supported | Not supported|
157+
| Component hotfixes | Supported | Not supported|
158+
| Applying bug fixes | Supported | Not supported|
159+
| Applying security patches | Supported | Not supported|
160+
| Kubernetes API support | Supported | Not supported|
161+
| Cluster or node pool creation| Supported | Not supported|
162+
| Node pool snapshot| Supported | Not supported|
163+
| Node image upgrade| Supported | Not supported|
164+
165+
> [!NOTE]
166+
> The above table is subject to change and outlines common support scenarios. Any scenarios related to Kubernetes functionality and components will not be supported for N-3. For further support, see [Support and troubleshooting for AKS](./aks-support-help.md).
167+
131168
### Supported `kubectl` versions
132169

133170
You can use one minor version older or newer of `kubectl` relative to your *kube-apiserver* version, consistent with the [Kubernetes support policy for kubectl](https://kubernetes.io/docs/setup/release/version-skew-policy/#kubectl).

0 commit comments

Comments
 (0)