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/storage/files/azure-kubernetes-service-workloads.md
+23-23Lines changed: 23 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,23 +4,23 @@ description: Learn how to use Azure file shares for Azure Kubernetes Service (AK
4
4
author: khdownie
5
5
ms.service: azure-file-storage
6
6
ms.topic: concept-article
7
-
ms.date: 01/20/2026
7
+
ms.date: 03/18/2026
8
8
ms.author: kendownie
9
9
ai-usage: ai-generated
10
10
# Customer intent: "As a Kubernetes administrator, I want to implement Azure Files for my Azure Kubernetes Service (AKS) workloads requiring persistent, shared storage, so that I can better support my organization's containerized applications."
11
11
---
12
12
13
13
# Azure Files guidance for Azure Kubernetes Service (AKS) workloads
14
14
15
-
Azure Files provides file shares (Azure Files SMB/NFS endpoints) accessible via SMB 3.x or NFS 4.1 protocols. When integrated with Azure Kubernetes Service (AKS), Azure Files enables persistent, shared storage for containerized applications with `ReadWriteMany` (RWX) access mode, allowing multiple pods (Kubernetes container groups) to mount the same share concurrently.
15
+
Azure Files provides file shares (Azure Files SMB/NFS endpoints) accessible via SMB 3.x or NFS 4.1 protocols. When you integrate Azure Files with Azure Kubernetes Service (AKS), you can provide persistent, shared storage for containerized applications with the `ReadWriteMany` (RWX) access mode. This setup allows multiple pods (Kubernetes container groups) to mount the same share concurrently.
16
16
17
17
## AKS overview: managed Kubernetes on Azure
18
18
19
-
Azure Kubernetes Service is a managed Kubernetes service for deploying and scaling containerized applications on Azure. AKS manages control plane components (API server, etcd, scheduler); you manage worker node pools. AKS 1.21+ includes the Azure Files CSI driver by default.
19
+
Azure Kubernetes Service is a managed Kubernetes service for deploying and scaling containerized applications on Azure. AKS manages control plane components, such as the API server, etcd, and scheduler. You manage the worker node pools. AKS versions 1.21 and later include the Azure Files CSI driver by default.
20
20
21
21
## Azure Files benefits for AKS storage
22
22
23
-
Azure Files supports `ReadWriteMany` access mode required for multi-pod shared storage. Azure Files has two media tiers: solid state drives (SSD) and hard disk drives (HDD). It also offers three different [billing models](understanding-billing.md): provisioned v2, pay-as-you-go, and the legacy provisioned v1 billing model.
23
+
Azure Files supports the `ReadWriteMany` access mode required for multi-pod shared storage. Azure Files has two media tiers: solid state drives (SSD) and hard disk drives (HDD). Azure Files also offers three different [billing models](understanding-billing.md): [provisioned v2](understanding-billing.md#provisioned-v2-model), [pay-as-you-go](understanding-billing.md#pay-as-you-go-model), and the legacy [provisioned v1](understanding-billing.md#provisioned-v1-model) billing model.
24
24
25
25
> [!IMPORTANT]
26
26
> To use the provisioned v2 billing model for Azure Files, you must use the Azure Files CSI driver [version 1.35.0](https://github.com/kubernetes-sigs/azurefile-csi-driver/releases/tag/v1.35.0) or later.
@@ -43,14 +43,14 @@ Unlike local storage that's tied to individual nodes (Kubernetes worker VMs), Az
43
43
44
44
### Kubernetes native integration
45
45
46
-
Azure Files integrates with Kubernetes through the Azure Files Container Storage Interface (CSI) driver. You provision and manage file shares using persistent volumes (PV) and persistent volume claims (PVC). The CSI driver handles Azure API calls, authentication via managed identity or storage account key, and mount operations.
46
+
Azure Files integrates with Kubernetes through the Azure Files Container Storage Interface (CSI) driver. You provision and manage file shares by using persistent volumes (PV) and persistent volume claims (PVC). The CSI driver handles Azure API calls, authentication through managed identity or storage account key, and mount operations.
47
47
48
48
### SSD file shares for optimal performance
49
49
50
-
For new deployments, we recommend the SSD media tier combined with the provisioned v2 billing model for most workloads:
50
+
For new deployments, use the SSD media tier combined with the provisioned v2 billing model for most workloads:
51
51
52
-
-**SSD** (recommended): Suitable for logging, media serving, databases, and latency-sensitive workloads. Available with the provisioned v2 billing model (recommended, `PremiumV2_LRS` / `PremiumV2_ZRS`) or the legacy provisioned v1 billing model (`Premium_LRS` / `Premium_ZRS`). Up to 102,400 IOPS and 10,340 MiB/sec throughput per share.
53
-
-**HDD**: Suitable for config files and infrequent access. Available with the provisioned v2 billing model (`StandardV2_LRS` / `StandardV2_ZRS`) or the pay-as-you-go billing model (`Standard_LRS` / `Standard_ZRS`). Up to 50,000 IOPS and 5,120 MiB/sec throughput per share with provisioned v2. For very small shares, HDD pay-as-you-go (`Standard_LRS` / `Standard_ZRS`) might be more cost-effective because HDD provisioned v2 requires a minimum amount of provisioned IOPS and throughput with no free baseline. For most other HDD workloads, SSD provisioned v2 is more cost-effective at small share sizes due to its included baseline IOPS and throughput.
52
+
-**SSD** (recommended): Use for logging, media serving, databases, and latency-sensitive workloads. Available with the provisioned v2 billing model (recommended, `PremiumV2_LRS` / `PremiumV2_ZRS`) or the legacy provisioned v1 billing model (`Premium_LRS` / `Premium_ZRS`). Up to 102,400 IOPS and 10,340 MiB/sec throughput per share.
53
+
-**HDD**: Use for config files and infrequent access. Available with the provisioned v2 billing model (`StandardV2_LRS` / `StandardV2_ZRS`) or the pay-as-you-go billing model (`Standard_LRS` / `Standard_ZRS`). Up to 50,000 IOPS and 5,120 MiB/sec throughput per share with provisioned v2. For very small shares, HDD pay-as-you-go (`Standard_LRS` / `Standard_ZRS`) might be more cost-effective because HDD provisioned v2 requires a minimum amount of provisioned IOPS and throughput with no free baseline. For most other HDD workloads, SSD provisioned v2 is more cost-effective at small share sizes due to its included baseline IOPS and throughput.
54
54
55
55
### Protocol support
56
56
@@ -59,7 +59,7 @@ For new deployments, we recommend the SSD media tier combined with the provision
59
59
60
60
### Security and compliance
61
61
62
-
Azure Files security features: AES-256 encryption at rest, TLS 1.2+ encryption in transit, Microsoft Entra ID and RBAC integration for SMB, and private endpoint support to restrict traffic to your virtual network.
62
+
Azure Files security features include AES-256 encryption at rest, TLS 1.2+ encryption in transit, Microsoft Entra ID and RBAC integration for SMB, and private endpoint support to restrict traffic to your virtual network.
63
63
64
64
## Azure Files CSI driver: Kubernetes integration
65
65
@@ -109,11 +109,11 @@ Dynamic provisioning automatically creates Azure file shares when you create a p
|**Region constraints**| NFS protocol requires SSD file shares and a virtual network-enabled storage account; ZRS requires availability zone support |
111
111
112
-
With dynamic provisioning, storage is automatically created when a persistent volume claim is created. The Azure Files CSI driver supports dynamic provisioning through Kubernetes storage classes.
112
+
With dynamic provisioning, the system automatically creates storage when you create a persistent volume claim. The Azure Files CSI driver supports dynamic provisioning through Kubernetes storage classes.
113
113
114
114
### Prerequisites for dynamic provisioning
115
115
116
-
Ensure the following are in place before creating a StorageClass for dynamic provisioning:
116
+
Before creating a StorageClass for dynamic provisioning, ensure you have the following prerequisites:
117
117
118
118
- AKS cluster version 1.21 or later
119
119
- Linux node pool (for NFS) or Linux/Windows node pool (for SMB)
@@ -124,9 +124,9 @@ Ensure the following are in place before creating a StorageClass for dynamic pro
124
124
### Steps to configure dynamic provisioning
125
125
126
126
1.**Create the StorageClass** – Define the provisioning parameters (SKU, protocol, mount options).
127
-
1.**Create a PersistentVolumeClaim (PVC)** – Reference the StorageClass; the CSI driver auto-creates the Azure file share.
128
-
1.**Deploy your workload** – Mount the PVC in your pod spec.
129
-
1.**Verify** – Confirm PVC is `Bound` and the mount path is accessible.
127
+
1.**Create a PersistentVolumeClaim (PVC)** – Reference the StorageClass; the CSI driver automatically creates the Azure file share.
128
+
1.**Deploy your workload** – Mount the PVC in your pod specification.
129
+
1.**Verify** – Confirm the PVC is `Bound` and the mount path is accessible.
130
130
131
131
### StorageClass parameters for dynamic provisioning
132
132
@@ -192,7 +192,7 @@ Before deploying shared configuration storage, verify your environment meets the
192
192
193
193
Azure Files is particularly useful for:
194
194
195
-
-**Configuration management**: Store application configuration files that need to be shared across multiple instances.
195
+
-**Configuration management**: Store application configuration files that you need to share across multiple instances.
196
196
-**Certificate distribution**: Centrally manage and distribute SSL/TLS certificates.
197
197
-**Shared libraries**: Store common libraries or binaries accessed by multiple applications.
198
198
@@ -262,7 +262,7 @@ Before deploying centralized logging storage, verify your environment meets thes
262
262
|**SKU options**|`PremiumV2_LRS` or `PremiumV2_ZRS` recommended for high-throughput logging (SSD provisioned v2); `Premium_LRS` or `Premium_ZRS` also supported (SSD provisioned v1) |
263
263
|**Region constraints**| Deploy storage account in the same region as AKS cluster for optimal latency |
264
264
265
-
Azure Files can serve as a central repository for application logs, enabling log aggregation from multiple pods and providing persistent storage for log analysis tools.
265
+
Azure Files can serve as a central repository for application logs. It enables you to aggregate logs from multiple pods and provides persistent storage for log analysis tools.
266
266
267
267
This YAML example demonstrates a DaemonSet (pod on every node) for log collection with a shared Azure Files storage for centralized log aggregation. This example targets Linux node pools and uses the SMB protocol:
268
268
@@ -343,7 +343,7 @@ For existing Azure file shares, you can create persistent volumes that reference
343
343
344
344
### Prerequisites for static provisioning
345
345
346
-
Ensure the following are in place before creating a PersistentVolume for static provisioning:
346
+
Ensure the following prerequisites are in place before creating a PersistentVolume for static provisioning:
347
347
348
348
- AKS cluster version 1.21 or later
349
349
- Linux node pool (for NFS) or Linux/Windows node pool (for SMB)
@@ -354,8 +354,8 @@ Ensure the following are in place before creating a PersistentVolume for static
354
354
355
355
### Steps to configure static provisioning
356
356
357
-
1.**Create the Azure file share** – Provision the storage account and file share in Azure portal, CLI, or Bicep/Terraform.
358
-
2.**(SMB only) Create a Kubernetes Secret** – Store the storage account name and key:
357
+
1.**Create the Azure file share** – Create the storage account and file share by using the Azure portal, Azure CLI, or Bicep/Terraform.
358
+
2.**(SMB only) Create a Kubernetes Secret** – Store the storage account name and key.
@@ -364,7 +364,7 @@ Ensure the following are in place before creating a PersistentVolume for static
364
364
3.**Create the PersistentVolume (PV)** – Reference the existing share using CSI volume attributes.
365
365
4.**Create a PersistentVolumeClaim (PVC)** – Bind to the PV using matching `storageClassName` and access modes.
366
366
5.**Deploy your workload** – Mount the PVC in your pod spec.
367
-
6.**Verify** – Confirm PV is `Bound` and the existing share contents are visible.
367
+
6.**Verify** – Confirm the PV is `Bound` and the existing share contents are visible.
368
368
369
369
### PersistentVolume parameters for static provisioning
370
370
@@ -455,11 +455,11 @@ mountOptions:
455
455
456
456
## Azure Files private endpoints: secure AKS storage
457
457
458
-
Private endpointsrestrict Azure Files traffic to your virtual network, eliminating exposure to the public internet.
458
+
By using private endpoints, you can restrict Azure Files traffic to your virtual network and eliminate exposure to the public internet.
459
459
460
460
### Prerequisites for private endpoint configuration
461
461
462
-
Ensure the following are in place before configuring private endpoints for Azure Files:
462
+
Ensure the following prerequisites are in place before configuring private endpoints for Azure Files:
463
463
464
464
- AKS cluster version 1.21 or later with virtual network integration
465
465
- Azure storage account in the same region as the AKS cluster
@@ -469,7 +469,7 @@ Ensure the following are in place before configuring private endpoints for Azure
469
469
470
470
### Steps to configure private endpoints with Azure Files
471
471
472
-
1. **Create a private endpoint** – In the Azure portal or via CLI/Bicep, create a private endpoint for the storage account targeting the `file` sub-resource.
472
+
1. **Create a private endpoint** – Using the Azure portal, Azure CLI, or Bicep, create a private endpoint for the storage account targeting the `file` sub-resource.
473
473
2. **Configure private DNS** – Link the `privatelink.file.core.windows.net` private DNS zone to your AKS virtual network.
474
474
3. **Create the StorageClass** – Set `networkEndpointType: privateEndpoint` in the parameters.
475
475
4. **Create a PVC** – Reference the StorageClass; the CSI driver provisions storage via the private endpoint.
0 commit comments