Skip to content

Commit 0bdd5e8

Browse files
Merge pull request #2689 from MicrosoftDocs/main
Auto Publish – main to live - 2026-02-13 23:04 UTC
2 parents 8873dcc + 9d5b22b commit 0bdd5e8

7 files changed

+262
-266
lines changed

articles/aks/azure-csi-driver-volume-provisioning.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2970,6 +2970,7 @@ The Azure Files CSI driver also supports Windows nodes and containers. To use Wi
29702970
[az-storage-account-create]: /cli/azure/storage/account#az-storage-account-create
29712971
[az-storage-share-create]: /cli/azure/storage/share#az-storage-share-create
29722972
[azure-container-storage]: /azure/storage/container-storage/container-storage-introduction
2973+
[azure-datalake-storage-account]: /azure/storage/blobs/data-lake-storage-introduction
29732974
[azure-disk-volume]: azure-disk-volume.md
29742975
[azure-files-pvc]: azure-files-dynamic-pv.md
29752976
[azure-files-usage]: /azure/storage/files/understand-performance#choosing-a-performance-tier-based-on-usage-patterns

articles/aks/best-practices-storage-nvme.md

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,8 @@ There are several ways to use ephemeral NVMe data disks in your AKS workloads. T
165165

166166
### Azure Container Storage (recommended)
167167

168-
169168
[Azure Container Storage](/azure/storage/container-storage/container-storage-introduction) is a Kubernetes-native storage solution that abstracts and manages local NVMe disks as persistent volumes, with advanced orchestration and data services.
170169

171-
172170
You can deploy Azure Container Storage in your AKS cluster and provision volumes using standard Kubernetes PVCs.
173171

174172
Azure Container Storage offers the following advantages:
@@ -178,37 +176,31 @@ Azure Container Storage offers the following advantages:
178176
- Improved reliability and operational simplicity.
179177
- Enables high-performance workloads with default volume striping cross all available disks.
180178

181-
182-
183179
Azure Container Storage is the best option for Kubernetes workloads to orchestrate ephemeral NVMe data disks. It combines the raw performance of NVMe disks with Kubernetes-native management, security, and built-in integration with Azure’s monitoring features and Prometheus. This approach reduces operational complexity, improves reliability, and enables advanced scenarios (such as scaling and failover) that are difficult to achieve with `emptyDir` or `hostPath`.
184180

185181
For more information, see [Azure Container Storage documentation](/azure/storage/container-storage/container-storage-introduction).
186182

187183
### `emptyDir` Volumes
188184

185+
`[emptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir)` is a Kubernetes volume type that uses the node's local storage. By default, it uses the kubelet storage path on the OS disk, but you can configure it to use local NVMe disks for higher throughput and lower latency with temporary data.
189186

190-
`emptyDir` is a Kubernetes volume type that uses the node's local storage. When backed by NVMe disks, `emptyDir` provides high throughput and low latency for temporary data.
191-
192-
193-
To use this method, define an `emptyDir` volume in your Pod spec. By default, it uses the fastest available storage (NVMe if present).
187+
To back `emptyDir` volumes with local NVMe disks, you must configure the kubelet storage path to point to an NVMe mount point during node initialization. This requires custom node bootstrap scripting and careful planning, as the configuration is immutable after node provisioning.
194188

195189
#### Advantages
196190
- Simple to use and configure.
197191
- No external dependencies.
198192
- High performance when backed by NVMe.
199193

200194
#### Disadvantages
201-
- Data is lost if the Pod is rescheduled to another node.
195+
- Data is deleted if the Pod is removed from the node.
202196
- No data persistence or replication.
203197
- Limited to single NVMe disk.
204198

205199
### `hostPath` Volumes
206200

207-
208201
`hostPath` mounts a specific directory or disk from the node’s filesystem into the Pod. You can target NVMe mount points directly.
209202

210-
211-
To use this method, specify the NVMe disk path (for example, `/mnt` or `/mnt/nvme0n1`) in the Pod spec.
203+
To use this method, specify the NVMe disk path (for example, `/mnt/nvme0n1`) in the Pod spec.
212204

213205
#### Advantages
214206

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
ms.service: azure-kubernetes-service
3+
ms.topic: include
4+
ms.date: 02/05/2026
5+
author: schaffererin
6+
ms.author: schaffererin
7+
---
8+
9+
> [!IMPORTANT]
10+
> Starting on **May 15, 2026**, AKS no longer supports Windows Server Annual Channel (Preview). AKS will no longer produce new Windows Server Annual Channel node images or provide security patches. You won't be able to create new node pools with Windows Server Annual Channel. On **May 15, 2027**, AKS will remove all existing Windows Server Annual Channel node images, which will cause scaling and remediation (reimage and redeploy) operations to fail. To avoid disruption, we recommend migrating to the [Long Term Servicing Channel (LTSC)](/azure/aks/upgrade-windows-os).
11+
>
12+
> - Windows Server Annual Channel uses Windows Server 2022 base images, which will run on Windows Server 2022 and Windows Server 2025.
13+
> - If you're using [Host Process Containers (HPC)](../use-windows-hpc.md) or running other privileged containers for administration purposes, you need to do extra testing.
14+
>
15+
> For more information on this retirement, see the [Retirement GitHub issue](https://aka.ms/aks/windows-annual-channel-retirement). To stay informed on announcements and updates, follow the [AKS release notes](https://github.com/Azure/AKS/releases).

articles/aks/managed-gateway-api.md

Lines changed: 80 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,124 +1,132 @@
11
---
2-
title: Azure Kubernetes Service (AKS) Managed Gateway API Installation
3-
description: Install Managed Kubernetes Gateway API on Azure Kubernetes Service
2+
title: Azure Kubernetes Service (AKS) Managed Gateway API Installation (preview)
3+
description: Learn how to install the Kubernetes Gateway API Custom Resource Definitions (CRDs) on your Azure Kubernetes Service (AKS) cluster using the Managed Gateway API installation.
44
ms.topic: how-to
55
ms.service: azure-kubernetes-service
66
author: nshankar
77
ms.author: nshankar
8+
ms.reviewer: schaffererin
89
ms.date: 01/26/2026
910
# Customer intent: "As a Kubernetes administrator, I want to install the Kubernetes Gateway API Custom Resource Definitions (CRDs) to create Kubernetes Gateway API resources on my cluster."
1011
---
1112

12-
# Install Managed Gateway API CRDs (Preview)
13+
# Install Managed Gateway API CRDs on Azure Kubernetes Service (AKS) (preview)
1314

14-
[!INCLUDE [preview features callout](~/reusable-content/ce-skilling/azure/includes/aks/includes/preview/preview-callout.md)]
15+
The [Kubernetes Gateway API][kubernetes-gateway-api] is a specification for traffic management on Kubernetes clusters. The specification enhances [Ingress API][kubernetes-ingress-api], which lacks a unified and provider-agnostic approach for advanced traffic routing.
1516

16-
The [Kubernetes Gateway API][kubernetes-gateway-api] is a specification for traffic management on Kubernetes clusters. It was designed as a successor and enhancement of the [Ingress API][kubernetes-ingress-api], which lacked a unified and provider-agnostic approach for advanced traffic routing.
17+
The Managed Gateway API Installation for Azure Kubernetes Service (AKS) installs the Custom Resource Definitions (CRDs) for the Kubernetes Gateway API. With the Managed Gateway API installation, you can use Gateway API functionality in a fully supported mode on AKS.
1718

18-
The Managed Gateway API Installation for Azure Kubernetes Service (AKS) installs the Custom Resource Definitions (CRDs) for the Kubernetes Gateway API. With the Managed Gateway API installation, you can use Gateway API functionality in a fully supported mode on AKS. However, you must also use an AKS add-on or extension that implements the Gateway API, such as the [Istio add-on][istio-gateway-api].
19+
## Prerequisites
1920

20-
## Gateway API bundle version and AKS Kubernetes version mapping
21+
- You must use an AKS add-on or extension that implements the Gateway API, such as the [Istio add-on][istio-gateway-api]. If using the Istio add-on, you must be on minor revision `asm-1-26` or later to ensure compatibility with the Managed Gateway API installation. To deploy this add-on, see [Deploy Istio-based service mesh add-on for Azure Kubernetes Service (AKS)][istio-deploy].
2122

22-
The following table outlines the supported Kubernetes versions for your AKS cluster for each Gateway API bundle version for the `standard` channel. `Experimental` channel CRDs are disallowed and must be uninstalled before enabling the Managed Gateway API installation.
23+
- If you already have an existing installation of the Gateway API CRDs on your cluster, you must meet the following requirements:
2324

24-
| Gateway API Bundle Version | Supported Kubernetes Versions |
25-
|----------------------------|-------------------------------|
26-
| v1.2.1 | v1.26.0 - v1.33.x |
27-
| v1.3.0 | v1.34.0+ |
25+
- Only `standard` channel CRDs can be installed on your cluster. `Experimental` channel CRDs are disallowed, and you must uninstall them before enabling the Managed Gateway API.
26+
- The Gateway API bundle version must be compatible with your cluster's Kubernetes version. For more information, see the [Supported Kubernetes versions for Gateway API bundle versions](#supported-kubernetes-versions-for-gateway-api-bundle-versions) section.
2827

29-
> [!NOTE]
30-
> If you upgrade your AKS cluster to a new minor version after installing the Managed Gateway API CRDs, the CRDs will automatically be upgraded to the new supported Gateway API bundle version for that Kubernetes version. For instance, if you upgrade from AKS `v1.33.0` to `v1.34.0` and previously had the Managed Gateway API installed for bundle version `v1.2.1`, the CRDs are automatically upgraded to bundle version `v1.3.0`.
28+
- The [`aks-preview` extension installed and updated to version `19.0.0b4` or later](#install-or-update-the-aks-preview-extension).
29+
- The [`ManagedGatewayAPIPreview` feature flag registered to your subscription](#register-the-managed-gateway-api-preview-feature-flag).
3130

32-
## Prerequisites
31+
### Install or update the `aks-preview` extension
3332

34-
Ensure that you have at least one of the following implementations of the Gateway API installed and enabled on your cluster:
33+
[!INCLUDE [preview features callout](~/reusable-content/ce-skilling/azure/includes/aks/includes/preview/preview-callout.md)]
3534

36-
* [Istio add-on][istio-deploy] minor revision `asm-1-26` and later.
35+
- Install the `aks-preview` extension or update to the latest version of the extension using the [`az extension add`][az-extension-add] and [`az extension update`][az-extension-update] commands. if you're using Azure CLI. You must use `aks-preview` version `19.0.0b4` and later.
3736

38-
* If you already have an existing installation of the Gateway API CRDs on your cluster, then you must only have `standard` channel CRDs installed, and the Gateway API bundle version must be compatible with your cluster's Kubernetes version. See the table for the [bundle version associated with each Kubernetes version](#gateway-api-bundle-version-and-aks-kubernetes-version-mapping).
37+
```azurecli-interactive
38+
# Install the aks-preview extension
39+
az extension add --name aks-preview
40+
41+
# Update the aks-preview extension to the latest version
42+
az extension update --name aks-preview
43+
```
3944
40-
* Install the `aks-preview` extension using the [`az extension add`][az-extension-add] command if you're using Azure CLI. You must use `aks-preview` version `19.0.0b4` and later.
45+
### Register the Managed Gateway API preview feature flag
4146
42-
```azurecli-interactive
43-
az extension add --name aks-preview
44-
```
47+
- Register the `ManagedGatewayAPIPreview` feature flag using the [`az feature register`](/cli/azure/feature#az-feature-register) command.
4548
46-
Update to the latest version of the extension using the [`az extension update`][az-extension-update] command:
49+
```azurecli-interactive
50+
az feature register --namespace "Microsoft.ContainerService" --name "ManagedGatewayAPIPreview"
51+
```
4752
48-
```azurecli-interactive
49-
az extension update --name aks-preview
50-
```
53+
## Supported Kubernetes versions for Gateway API bundle versions
5154
52-
## Manage the Managed Gateway API preview feature
55+
The following table outlines the supported Kubernetes versions for your AKS cluster for each Gateway API bundle version for the `standard` channel:
5356
54-
You can register the `ManagedGatewayAPIPreview` feature flag by using the [`az feature register`](/cli/azure/feature#az-feature-register) command:
57+
| Gateway API bundle version | Supported Kubernetes versions |
58+
|----------------------------|-------------------------------|
59+
| v1.2.1 | v1.26.0 - v1.33.x |
60+
| v1.3.0 | v1.34.0+ |
5561
56-
```azurecli-interactive
57-
az feature register --namespace "Microsoft.ContainerService" --name "ManagedGatewayAPIPreview"
58-
```
62+
> [!NOTE]
63+
> If you upgrade your AKS cluster to a new minor version after installing the Managed Gateway API CRDs, the CRDs automatically upgrade to the new supported Gateway API bundle version for that Kubernetes version. For instance, if you upgrade from AKS `v1.33.0` to `v1.34.0` and previously had the Managed Gateway API installed for bundle version `v1.2.1`, the CRDs automatically upgrade to bundle version `v1.3.0`.
5964
60-
Then you can install or uninstall the Managed Gateway API CRDs.
65+
## Create a new AKS cluster with Managed Gateway API CRDs installed
6166
62-
# [Install CRDs](#tab/install)
67+
- Create a new AKS cluster with Managed Gateway API CRDs installed using the [`az aks create`][az-aks-create] command with the `--enable-gateway-api` flag. You can also enable a supported add-on, such as the Istio service mesh add-on, in the same command. The following example command creates a new AKS cluster with the Managed Gateway API installation and the Istio service mesh add-on enabled:
6368
64-
1. You can run the [`az aks create`][az-aks-create] command to install the Managed Gateway API CRDs on a newly created cluster. You must also enable an implementation of the Gateway API to enable the managed CRD installation.
69+
```azurecli-interactive
70+
az aks create --resource-group myResourceGroup --name myAKSCluster --enable-gateway-api --enable-azure-service-mesh
71+
```
6572
66-
```azurecli-interactive
67-
# Example: enable the managed Gateway API installation with the Istio service mesh add-on
68-
az aks create -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-gateway-api --enable-azure-service-mesh
69-
```
73+
## Install Managed Gateway API CRDs on an existing AKS cluster
7074
71-
1. To install the Managed Gateway API CRDs on an existing cluster with a supported implementation enabled, run the following command:
75+
- Install Managed Gateway API CRDs on an existing cluster with a supported implementation enabled using the [`az aks update`][az-aks-update] command with the `--enable-gateway-api` flag.
7276
73-
```azurecli-interactive
74-
az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-gateway-api
75-
```
77+
```azurecli-interactive
78+
az aks update --resource-group myResourceGroup --name myAKSCluster --enable-gateway-api
79+
```
7680
77-
1. To view the CRDs installed on your cluster, run the following command:
81+
## Verify Managed Gateway API CRD installation
82+
83+
1. View the CRDs installed on your cluster using the following `kubectl get crds` command:
7884
7985
```bash
8086
kubectl get crds | grep "gateway.networking.k8s.io"
8187
```
8288

83-
```output
84-
gatewayclasses.gateway.networking.k8s.io 2025-08-29T17:52:36Z
85-
gateways.gateway.networking.k8s.io 2025-08-29T17:52:36Z
86-
grpcroutes.gateway.networking.k8s.io 2025-08-29T17:52:36Z
87-
httproutes.gateway.networking.k8s.io 2025-08-29T17:52:37Z
88-
referencegrants.gateway.networking.k8s.io 2025-08-29T17:52:37Z
89-
```
89+
The output should show the installed CRDs, which are part of the Kubernetes Gateway API specification. For example:
9090

91-
1. Verify that the CRDs have the expected annotations and that the bundle version matches the [expected Kubernetes version](#gateway-api-bundle-version-and-aks-kubernetes-version-mapping) for your cluster.
91+
```output
92+
gatewayclasses.gateway.networking.k8s.io 2025-08-29T17:52:36Z
93+
gateways.gateway.networking.k8s.io 2025-08-29T17:52:36Z
94+
grpcroutes.gateway.networking.k8s.io 2025-08-29T17:52:36Z
95+
httproutes.gateway.networking.k8s.io 2025-08-29T17:52:37Z
96+
referencegrants.gateway.networking.k8s.io 2025-08-29T17:52:37Z
97+
```
9298
93-
```bash
94-
kubectl get crd gateways.gateway.networking.k8s.io -ojsonpath={.metadata.annotations} | jq
95-
```
99+
1. Verify the CRDs have the expected annotations and the bundle version matches the [expected Kubernetes version](#supported-kubernetes-versions-for-gateway-api-bundle-versions) for your cluster using the following `kubectl get crds` command:
96100
97-
```output
98-
{
99-
"api-approved.kubernetes.io": "https://github.com/kubernetes-sigs/gateway-api/pull/3328",
100-
"app.kubernetes.io/managed-by": "aks",
101-
"app.kubernetes.io/part-of": <hash>,
102-
"gateway.networking.k8s.io/bundle-version": "v1.2.1",
103-
"gateway.networking.k8s.io/channel": "standard"
104-
}
105-
```
101+
```bash
102+
kubectl get crd gateways.gateway.networking.k8s.io -ojsonpath={.metadata.annotations} | jq
103+
```
106104
107-
# [Uninstall CRDs](#tab/uninstall)
105+
The output should show the expected annotations, including the `gateway.networking.k8s.io/bundle-version` annotation with the expected bundle version for your cluster's Kubernetes version. For example, if your cluster is running Kubernetes `v1.33.0`, the expected bundle version is `v1.2.1`, and the output should be similar to the following:
108106
109-
To uninstall the Managed Gateway API CRDs, run the [`az aks update`][az-aks-update] command:
107+
```output
108+
{
109+
"api-approved.kubernetes.io": "https://github.com/kubernetes-sigs/gateway-api/pull/3328",
110+
"app.kubernetes.io/managed-by": "aks",
111+
"app.kubernetes.io/part-of": <hash>,
112+
"gateway.networking.k8s.io/bundle-version": "v1.2.1",
113+
"gateway.networking.k8s.io/channel": "standard"
114+
}
115+
```
110116
111-
```azurecli-interactive
112-
az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --disable-gateway-api
113-
```
117+
## Uninstall Managed Gateway API CRDs on an AKS cluster
114118
115-
---
119+
- Uninstall Managed Gateway API CRDs on an existing cluster using the [`az aks update`][az-aks-update] command with the `--disable-gateway-api` flag.
120+
121+
```azurecli-interactive
122+
az aks update --resource-group myResourceGroup --name myAKSCluster --disable-gateway-api
123+
```
116124
117-
## Next Steps
125+
## Related content
118126
119-
* [Configure ingress for Istio service mesh add-on with the Kubernetes Gateway API][istio-gateway-api]
127+
- [Configure ingress for Istio service mesh add-on with the Kubernetes Gateway API][istio-gateway-api]
120128
121-
[istio-about]: ./istio-about.md
129+
<!-- LINKS -->
122130
[istio-deploy]: ./istio-deploy-addon.md
123131
[istio-gateway-api]: ./istio-gateway-api.md
124132
[az-aks-create]: /cli/azure/aks#az-aks-create

0 commit comments

Comments
 (0)