Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article describes OS versions available for Azure Kubernetes Service (AKS) nodes, and best practices for testing and upgrading your OS version.
Caution
In this article, there are references to Ubuntu OS versions that are being deprecated for AKS.
- Starting on 17 June 2025, AKS will no longer support Ubuntu 18.04. Existing node images will be deleted and AKS will no longer provide security updates. You'll no longer be able to scale your node pools. Migrate to a supported Ubuntu version by upgrading your node pools to a supported kubernetes version. For more information on this retirement, see AKS GitHub Issues.
- Starting on 17 March 2027, AKS will no longer support Ubuntu 20.04. Existing node images will be deleted and AKS will no longer provide security updates. You'll no longer be able to scale your node pools. Migrate to a supported Ubuntu version by upgrading your node pools to kubernetes version 1.34+. For more information on this retirement, see AKS GitHub Issues.
Supported OS versions
Each node image corresponds to an OS version which you can specify using OS SKU. You can specify the following parameters when creating clusters and node pools:
- --os-type: OS type, including Linux or Windows. Windows OS type can't be specified during cluster creation or update.
- --os-sku: Used to specify OS version or OS variant. Windows OS SKU can't be specified during cluster creation or update.
- --kubernetes-version: Version of Kubernetes to use for creating the node pool or cluster.
Best practice guidance
The default OS version is the most recent validated version.
- For Ubuntu, we recommend creating clusters and node pools while specifying
--os-type Linux
and--os-sku Ubuntu
. This will automatically update you to the latest default Ubuntu version based on your Kubernetes version.- For Azure Linux, we recommend creating clusters and node pools while specifying
--os-type Linux
and--os-sku AzureLinux
. This will automatically update you to the latest default Azure Linux version based on your Kubernetes version.- For Windows, we recommend creating node pools while specifying
--os-type Windows
and--os-sku Windows2022
. You need to manually update node pools to the next OS version when it's released.
OS type | OS SKU | Supported Kubernetes versions | Default versioning |
---|---|---|---|
Linux | Ubuntu | This OS SKU is supported in all kubernetes versions. | OS version for this OS SKU changes based on your Kubernetes version. Ubuntu 22.04 is default for Kubernetes version 1.25 to 1.32. |
Linux | Ubuntu2404 | This OS SKU is supported in kubernetes 1.32 to 1.38. | Ubuntu 24.04 is available in preview with K8s 1.32+ using --os-sku Ubuntu2404 . This OS SKU is recommended if you want to test out the new os version without upgrading your kubernetes version. |
Linux | Ubuntu2204 | This OS SKU is supported in kubernetes version 1.25 to 1.33. | Ubuntu 22.04 is currently default when using --os-sku Ubuntu . This OS SKU is recommended if you need to roll back to Ubuntu 22.04 after testing Ubuntu 24.04. |
Linux | Azure Linux | This OS SKU is supported in all Kubernetes versions. | OS version for this OS SKU changes based on your Kubernetes version. Azure Linux 2.0 is default for Kubernetes version 1.27 to 1.31. Azure Linux 3.0 is default for Kubernetes version 1.32+. |
Windows | Windows2019 | 1.14-1.32 | Default for Windows OS Type in Kubernetes version 1.14 to 1.24. |
Windows | Windows2022 | 1.23 to 1.34 | Default for Windows OS Type in Kubernetes version 1.25 to 1.33. |
When a new OS version releases on AKS, it's supported in preview before it becomes generally available and default. We recommend testing your nonproduction workloads with the new OS version when it becomes available in preview.
Update OS SKU on an existing node pool
You can use the az aks nodepool update
command to update the os-sku
on an existing node pool. In cases where there's a new os version available in preview, this functionality allows you to migrate your node pool to the new os version without needing to upgrade your kubernetes version.
Limitations
--os-sku Windows2019
isn't a validos-sku
for node pool update command.--os-sku Windows2022
isn't a validos-sku
for node pool update command.
Update os-sku
using the az aks nodepool update
command:
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Linux \
--os-sku Ubuntu \
--name npwin \
--node-count 1
The az aks nodepool update
command can be used to migrate between any supported Linux os-sku
. The command may fail if the target OS does not have a supported node image for your kubernetes version, vm size, or FIPS enablement.
In kubernetes versions where multiple OS versions are supported, you can use the az aks nodepool update
command to roll back to a previous OS version.
For example, if you encounter issues while using Ubuntu 24.04, then you can update your node pool os-sku
to specify Ubuntu 22.04 to resolve issues while maintaining workload availability.
Roll back your OS version on an existing node pool
You can use the az aks nodepool update
command to update the os-sku
on an existing node pool. In cases where there's a previous OS version supported in your kubernetes version, this functionality can allow you to roll back you OS version.
Limitations
--os-sku Windows2019
isn't a validos-sku
for node pool update command.--os-sku Windows2022
isn't a validos-sku
for node pool update command.
Update os-sku
using the az aks nodepool update
command:
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--os-type Linux \
--os-sku Ubuntu2204 \
--name npwin \
--node-count 1
The az aks nodepool update
command can be used to migrate between any supported Linux os-sku
. The command may fail if the target OS does not have a supported node image for your kubernetes version, vm size, or FIPS enablement.
Next steps
To learn more about node images, node pool upgrades, and node configurations on AKS, see the following resources:
- To learn about nodes and node configurations, see AKS core concepts.
- Configure automatic node image upgrades and schedule them using planned maintenance.
- Apply custom node configurations to modify OS or kubelet settings.
- For information about the latest node images, see the AKS release notes.
- Automatically apply cluster and node pool upgrades with GitHub Actions.