You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/aks/stop-cluster-upgrade-api-breaking-changes.md
+16-18Lines changed: 16 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,17 +4,20 @@ description: Learn how to stop Azure Kubernetes Service (AKS) cluster upgrades a
4
4
ms.topic: article
5
5
ms.custom: azure-kubernetes-service
6
6
ms.subservice: aks-upgrade
7
-
ms.date: 10/19/2023
7
+
ms.date: 07/05/2024
8
8
author: schaffererin
9
9
ms.author: schaffererin
10
-
11
10
---
12
11
13
12
# Stop Azure Kubernetes Service (AKS) cluster upgrades automatically on API breaking changes
14
13
14
+
This article shows you how to stop Azure Kubernetes Service (AKS) cluster upgrades automatically on API breaking changes.
15
+
16
+
## Overview
17
+
15
18
To stay within a supported Kubernetes version, you have to upgrade your cluster at least once per year and prepare for all possible disruptions. These disruptions include ones caused by API breaking changes, deprecations, and dependencies such as Helm and Container Storage Interface (CSI). It can be difficult to anticipate these disruptions and migrate critical workloads without experiencing any downtime.
16
19
17
-
AKS now automatically stops upgrade operations consisting of a minor version change with deprecated APIs and sends you an error message to alert you about the issue.
20
+
You can configure your AKS cluster to automatically stop upgrade operations consisting of a minor version change with deprecated APIs and alert you to the issue. This feature helps you avoid unexpected disruptions and gives you time to address the deprecated APIs before proceeding with the upgrade.
18
21
19
22
## Before you begin
20
23
@@ -36,43 +39,38 @@ Bad Request({
36
39
})
37
40
```
38
41
39
-
You have two options to mitigate the issue. You can either[remove usage of deprecated APIs (recommended)](#remove-usage-of-deprecated-apis-recommended) or [bypass validation to ignore API changes](#bypass-validation-to-ignore-api-changes).
42
+
You have two options to mitigate the issue: you can [remove usage of deprecated APIs (recommended)](#remove-usage-of-deprecated-apis-recommended) or [bypass validation to ignore API changes](#bypass-validation-to-ignore-api-changes).
40
43
41
44
### Remove usage of deprecated APIs (recommended)
42
45
43
-
1. In the Azure portal, navigate to your cluster's overview page, and select **Diagnose and solve problems**.
44
-
45
-
2. Navigate to the **Create, Upgrade, Delete, and Scale** category, and select **Kubernetes API deprecations**.
46
+
1. In the Azure portal, navigate to your cluster resource and select **Diagnose and solve problems**
47
+
2. Select **Create, Upgrade, Delete, and Scale** > **Kubernetes API deprecations**.
46
48
47
49
:::image type="content" source="./media/upgrade-cluster/applens-api-detection-full-v2.png" alt-text="A screenshot of the Azure portal showing the 'Selected Kubernetes API deprecations' section.":::
48
50
49
-
3. Wait 12 hours from the time the last deprecated API usage was seen. Check the verb in the deprecated API usage to know if it's a [watch][k8s-api].
50
-
51
+
3. Wait 12 hours from the time the last deprecated API usage was seen. Check the verb in the deprecated API usage to know if it's a [watch][k8s-api]. If it's a watch, you can wait for the usage to drop to zero. (You can also check past API usage by enabling [Container insights][container-insights] and exploring kube audit logs.)
51
52
4. Retry your cluster upgrade.
52
53
53
-
You can also check past API usage by enabling [Container Insights][container-insights] and exploring kube audit logs. Check the verb in the deprecated API usage to understand if it's a [watch][k8s-api] use case.
54
-
55
54
### Bypass validation to ignore API changes
56
55
57
56
> [!NOTE]
58
-
> This method requires you to use the Azure CLI version 2.53 or later. If you have the `aks-preview` CLI extension installed, you'll need to update to version `0.5.154` or later. This method isn't recommended, as deprecated APIs in the targeted Kubernetes version may not work long term. We recommend removing them as soon as possible after the upgrade completes.
57
+
> This method requires you to use the Azure CLI version 2.53 or later. If you have the `aks-preview` CLI extension installed, you need to update to version `0.5.154` or later. This method isn't recommended, as deprecated APIs in the targeted Kubernetes version might6 not work long term. We recommend removing them as soon as possible after the upgrade completes.
59
58
60
-
* Bypass validation to ignore API breaking changes using the [`az aks update`][az-aks-update] command. Specify the `enable-force-upgrade` flag and set the `upgrade-override-until` property to define the end of the window during which validation is bypassed. If no value is set, it defaults the window to three days from the current time. The date and time you specify must be in the future.
59
+
1. Bypass validation to ignore API breaking changes using the [`az aks update`][az-aks-update] command. Specify the `enable-force-upgrade` flag and set the `upgrade-override-until` property to define the end of the window during which validation is bypassed. If no value is set, it defaults the window to three days from the current time. The date and time you specify must be in the future.
61
60
62
61
```azurecli-interactive
63
-
az aks update --name myAKSCluster --resource-group myResourceGroup --enable-force-upgrade --upgrade-override-until 2023-10-01T13:00:00Z
62
+
az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --enable-force-upgrade --upgrade-override-until 2023-10-01T13:00:00Z
64
63
```
65
64
66
65
> [!NOTE]
67
66
> `Z` is the zone designator for the zero UTC/GMT offset, also known as 'Zulu' time. This example sets the end of the window to `13:00:00` GMT. For more information, see [Combined date and time representations](https://wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations).
68
67
69
-
* Once the previous command has succeeded, you can retry the upgrade operation.
68
+
2. Retry your cluster upgrade using the [`az aks upgrade`][az-aks-upgrade] command.
70
69
71
70
```azurecli-interactive
72
-
az aks upgrade --name myAKSCluster --resource-group myResourceGroup --kubernetes-version <KUBERNETES_VERSION>
71
+
az aks upgrade --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --kubernetes-version $KUBERNETES_VERSION
73
72
```
74
73
75
-
76
74
## Next steps
77
75
78
76
This article showed you how to stop AKS cluster upgrades automatically on API breaking changes. To learn more about more upgrade options for AKS clusters, see [Upgrade options for Azure Kubernetes Service (AKS) clusters](./upgrade-cluster.md).
@@ -82,5 +80,5 @@ This article showed you how to stop AKS cluster upgrades automatically on API br
0 commit comments