Skip to content

Commit 94332f5

Browse files
Merge pull request #227010 from Nickomang/aks-upgrade
AKS upgrade experience updates
2 parents 1d6aadd + 6f20671 commit 94332f5

File tree

7 files changed

+40
-22
lines changed

7 files changed

+40
-22
lines changed

articles/aks/TOC.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@
200200
href: scale-down-mode.md
201201
- name: Stop an AKS cluster
202202
href: start-stop-cluster.md
203-
- name: Use planned maintenance (preview)
203+
- name: Use planned maintenance to schedule and control upgrades (preview)
204204
href: planned-maintenance.md
205205
- name: Planned Maintenance for AKS weekly releases (preview)
206206
href: aks-planned-maintenance-weekly-releases.md

articles/aks/aks-planned-maintenance-weekly-releases.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ author: kaarthis
1414

1515
Planned Maintenance allows you to schedule weekly maintenance windows that will ensure the weekly releases [releases] are controlled. Maintenance Windows are configured using the Azure CLI, allowing you to select from a set of pre-available configurations.
1616

17+
Weekly releases can also be scheduled with more fine-grained control using Planned Maintenance's `default` configuration type. For more information, see [Planned Maintenance to schedule and control upgrades][planned-maintenance].
18+
1719
## Before you begin
1820

1921
This article assumes that you have an existing AKS cluster. If you need an AKS cluster, see the AKS quickstart [using the Azure CLI][aks-quickstart-cli], [using Azure PowerShell][aks-quickstart-powershell], or [using the Azure portal][aks-quickstart-portal].
@@ -106,4 +108,5 @@ az maintenance assignment delete --name assignmentName --provider-name "Microsof
106108
[az-aks-install-cli]: /cli/azure/aks#az_aks_install_cli
107109
[az-provider-register]: /cli/azure/provider#az_provider_register
108110
[aks-upgrade]: upgrade-cluster.md
109-
[releases]:release-tracker.md
111+
[releases]:release-tracker.md
112+
[planned-maintenance]: ./planned-maintenance.md

articles/aks/auto-upgrade-cluster.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,14 @@ To set the auto-upgrade channel on existing cluster, update the *auto-upgrade-ch
6060
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
6161
```
6262

63+
## Auto-upgrade in the Azure portal
64+
65+
If you're using the Azure portal, you can find auto-upgrade settings under the *Settings* > *Cluster configuration* blade by selecting *Upgrade version*. By default, the `Patch` channel is selected.
66+
67+
:::image type="content" source="./media/auto-upgrade-cluster/portal-upgrade.png" alt-text="The screenshot of the upgrade blade for an AKS cluster in the Azure portal. The automatic upgrade field shows 'patch' selected, and several APIs deprecated between the selected Kubernetes version and the cluster's current version are described.":::
68+
69+
The Azure portal also highlights all the deprecated APIs between your current version and newer, available versions you intend to migrate to. For more information, see [the Kubernetes API Removal and Deprecation process][k8s-deprecation].
70+
6371
## Using auto-upgrade with Planned Maintenance
6472

6573
If you’re using Planned Maintenance and Auto-Upgrade, your upgrade will start during your specified maintenance window.
@@ -92,3 +100,4 @@ The following best practices will help maximize your success when using auto-upg
92100
<!-- EXTERNAL LINKS -->
93101
[pdb-best-practices]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
94102
[release-tracker]: release-tracker.md
103+
[k8s-deprecation]: https://kubernetes.io/blog/2022/11/18/upcoming-changes-in-kubernetes-1-26/#:~:text=A%20deprecated%20API%20is%20one%20that%20has%20been,point%20you%20must%20migrate%20to%20using%20the%20replacement
257 KB
Loading
257 KB
Loading

articles/aks/planned-maintenance.md

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
---
2-
title: Use Planned Maintenance for your Azure Kubernetes Service (AKS) cluster (preview)
2+
title: Use Planned Maintenance to schedule and control upgrades for your Azure Kubernetes Service (AKS) cluster (preview)
33
titleSuffix: Azure Kubernetes Service
4-
description: Learn how to use Planned Maintenance in Azure Kubernetes Service (AKS).
4+
description: Learn how to use Planned Maintenance to schedule and control cluster and node image upgrades in Azure Kubernetes Service (AKS).
55
services: container-service
66
ms.topic: article
77
ms.date: 01/17/2023
88
ms.author: qpetraroia
99
author: qpetraroia
1010
---
1111

12-
# Use Planned Maintenance to schedule maintenance windows for your Azure Kubernetes Service (AKS) cluster (preview)
12+
# Use Planned Maintenance to schedule and control upgrades for your Azure Kubernetes Service (AKS) cluster (preview)
1313

14-
Your AKS cluster has regular maintenance performed on it automatically. By default, this work can happen at any time. Planned Maintenance allows you to schedule weekly maintenance windows to perform updates and minimize workload impact. Once scheduled, maintenance will occur only during the window you selected.
14+
Your AKS cluster has regular maintenance performed on it automatically. By default, this work can happen at any time. Planned Maintenance allows you to schedule weekly maintenance windows to perform updates and minimize workload impact. Once scheduled, upgrades occur only during the window you selected.
15+
16+
There are currently two available configuration types: `default` and `aksManagedAutoUpgradeSchedule`:
17+
18+
- `default` corresponds to a basic configuration that updates your control plane and your kube-system pods on a Virtual Machine Scale Sets instance. It is a legacy configuration that is mostly suitable for basic scheduling of [weekly releases][release-tracker]. Another way of accomplishing this behavior, using pre-configured windows, is detailed at [use Planned Maintenance to schedule weekly releases][pm-weekly]
19+
20+
- `aksManagedAutoUpgradeSchedule` is a more complex configuration that controls when upgrades scheduled by your designated auto-upgrade channel are performed. More finely controlled cadence and recurrence settings are possible. For more information on cluster auto-upgrade, see [Automatically an Azure Kubernetes Service (AKS) cluster][aks-upgrade].
21+
22+
We recommend using `aksManagedAutoUpgradeSchedule` for all maintenance and upgrade scenarios, while `default` is meant exclusively for weekly releases. You can port `default` configurations to `aksManagedAutoUpgradeSchedule` configurations via the `az aks maintenanceconfiguration update` command.
1523

1624
## Before you begin
1725

@@ -39,25 +47,13 @@ az extension add --name aks-preview
3947
az extension update --name aks-preview
4048
```
4149

42-
## Understanding maintenance window configuration types
43-
44-
There are currently two available configuration types: `default` and `aksManagedAutoUpgradeSchedule`:
45-
46-
- `default` corresponds to a basic configuration that will update your control plane and your kube-system pods on a virtual machine scale sets instance. It is a legacy configuration that is mostly suitable for basic scheduling of [weekly releases][release-tracker].
47-
48-
- `aksManagedAutoUpgradeSchedule` is a more complex configuration that controls when upgrades scheduled by your designated auto-upgrade channel are performed. More finely controlled cadence and recurrence settings are possible. For more information on cluster auto-upgrade, see [Automatically an Azure Kubernetes Service (AKS) cluster][aks-upgrade].
49-
50-
### Choosing between configuration types
50+
## Creating a maintenance window
5151

52-
We recommend using `aksManagedAutoUpgradeSchedule` for all maintenance and upgrade scenarios, while `default` is meant exclusively for weekly releases. You can port `default` configurations to `aksManagedAutoUpgradeSchedule` configurations via the `az aks maintenanceconfiguration update` command.
52+
To create a maintenance window, you can use the `az aks maintenanceconfiguration add` command using the `--name` value `default` or `aksManagedAutoUpgradeSchedule`. The name value should reflect the desired configuration type. Using any other name will cause your maintenance window not to run.
5353

5454
> [!NOTE]
5555
> When using auto-upgrade, to ensure proper functionality, use a maintenance window with a duration of four hours or more.
5656
57-
## Creating a maintenance window
58-
59-
To create a maintenance window, you can use the `az aks maintenanceconfiguration add` command using the `--name` value `default` or `aksManagedAutoUpgradeSchedule`. The name value should reflect the desired configuration type. Using any other name will cause your maintenance window not to run.
60-
6157
Planned Maintenance windows are specified in Coordinated Universal Time (UTC).
6258

6359
A `default` maintenance window has the following properties:
@@ -74,7 +70,7 @@ An `aksManagedAutoUpgradeSchedule` has the following properties:
7470
|Name|Description|Default value|
7571
|--|--|--|
7672
|`utcOffset`|Used to determine the timezone for cluster maintenance|`+00:00`|
77-
|`startDate`|The date on which the maintenance window will begin to take effect|The current date at creation time|
73+
|`startDate`|The date on which the maintenance window begins to take effect|The current date at creation time|
7874
|`startTime`|The time for maintenance to begin, based on the timezone determined by `utcOffset`|N/A|
7975
|`schedule`|Used to determine frequency. Three types are available: `Weekly`, `AbsoluteMonthly`, and `RelativeMonthly`|N/A|
8076
|`intervalWeeks`|The interval in weeks for maintenance runs|N/A|
@@ -306,3 +302,4 @@ az aks maintenanceconfiguration delete -g MyResourceGroup --cluster-name myAKSCl
306302
[aks-upgrade]: upgrade-cluster.md
307303
[release-tracker]: release-tracker.md
308304
[auto-upgrade]: auto-upgrade-cluster.md
305+
[pm-weekly]: ./aks-planned-maintenance-weekly-releases.md

articles/aks/upgrade-cluster.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ To check which Kubernetes releases are available for your cluster:
111111

112112
If no upgrades are available, create a new cluster with a supported version of Kubernetes and migrate your workloads from the existing cluster to the new cluster. It's not supported to upgrade a cluster to a newer Kubernetes version when no upgrades are available.
113113

114+
The Azure portal also highlights all the deprecated APIs between your current version and newer, available versions you intend to migrate to. For more information, see [the Kubernetes API Removal and Deprecation process][k8s-deprecation].
115+
116+
:::image type="content" source="./media/upgrade-cluster/portal-upgrade.png" alt-text="The screenshot of the upgrade blade for an AKS cluster in the Azure portal. The automatic upgrade field shows 'patch' selected, and several APIs deprecated between the selected Kubernetes version and the cluster's current version are described.":::
117+
114118
---
115119

116120
## Customize node surge upgrade
@@ -231,6 +235,10 @@ You can also manually upgrade your cluster in the Azure portal.
231235
4. In **Kubernetes version**, select **Upgrade version**. This will redirect you to a new page.
232236
5. In **Kubernetes version**, select your desired version and then select **Save**.
233237

238+
The Azure portal also highlights all the deprecated APIs between your current version and newer, available versions you intend to migrate to. For more information, see [the Kubernetes API Removal and Deprecation process][k8s-deprecation].
239+
240+
:::image type="content" source="./media/upgrade-cluster/portal-upgrade.png" alt-text="The screenshot of the upgrade blade for an AKS cluster in the Azure portal. The automatic upgrade field shows 'patch' selected, and several APIs deprecated between the selected Kubernetes version and the cluster's current version are described.":::
241+
234242
It takes a few minutes to upgrade the cluster, depending on how many nodes you have.
235243

236244
To confirm that the upgrade was successful, navigate to your AKS cluster in the Azure portal. On the **Overview** page, select the **Kubernetes version**.
@@ -268,7 +276,7 @@ In addition to manually upgrading a cluster, you can set an auto-upgrade channel
268276

269277
## Special considerations for node pools that span multiple Availability Zones
270278

271-
AKS uses best-effort zone balancing in node groups. During an Upgrade surge, zone(s) for the surge node(s) in virtual machine scale sets is unknown ahead of time. This can temporarily cause an unbalanced zone configuration during an upgrade. However, AKS deletes the surge node(s) once the upgrade has been completed and preserves the original zone balance. If you desire to keep your zones balanced during upgrade, increase the surge to a multiple of three nodes. Virtual machine scale sets will then balance your nodes across Availability Zones with best-effort zone balancing.
279+
AKS uses best-effort zone balancing in node groups. During an Upgrade surge, zone(s) for the surge node(s) in Virtual Machine Scale Sets is unknown ahead of time. This can temporarily cause an unbalanced zone configuration during an upgrade. However, AKS deletes the surge node(s) once the upgrade has been completed and preserves the original zone balance. If you desire to keep your zones balanced during upgrade, increase the surge to a multiple of three nodes. Virtual Machine Scale Sets will then balance your nodes across Availability Zones with best-effort zone balancing.
272280

273281
If you have PVCs backed by Azure LRS Disks, they’ll be bound to a particular zone, and they may fail to recover immediately if the surge node doesn’t match the zone of the PVC. This could cause downtime on your application when the Upgrade operation continues to drain nodes but the PVs are bound to a zone. To handle this case and maintain high availability, configure a [Pod Disruption Budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) on your application. This allows Kubernetes to respect your availability requirements during Upgrade's drain operation.
274282

@@ -303,3 +311,4 @@ This article showed you how to upgrade an existing AKS cluster. To learn more ab
303311
[aks-auto-upgrade]: auto-upgrade-cluster.md
304312
[release-tracker]: release-tracker.md
305313
[specific-nodepool]: node-image-upgrade.md#upgrade-a-specific-node-pool
314+
[k8s-deprecation]: https://kubernetes.io/blog/2022/11/18/upcoming-changes-in-kubernetes-1-26/#:~:text=A%20deprecated%20API%20is%20one%20that%20has%20been,point%20you%20must%20migrate%20to%20using%20the%20replacement

0 commit comments

Comments
 (0)