Azure File CSI Driver for Kubernetes
!linux build status
!windows build status
About
This driver allows Kubernetes to access Azure File volumes using SMB and NFS protocols.
- CSI plugin name:
file.csi.azure.com - Project status: GA
[!NOTE]
Deploying this driver manually is not an officially supported Microsoft product. For a fully managed and supported experience on Kubernetes, use AKS with the managed Azure File CSI driver.
Container Images & Kubernetes Compatibility
| Driver Version | Image | Supported K8s Version |
|----------------|------------------------------------------------------------------|-----------------------|
| master branch | mcr.microsoft.com/k8s/csi/azurefile-csi:latest | 1.21+ |
| v1.35.7 | mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.35.7 | 1.21+ |
| v1.34.8 | mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.34.8 | 1.21+ |
| v1.33.10 | mcr.microsoft.com/oss/v2/kubernetes-csi/azurefile-csi:v1.33.10 | 1.21+ |
Driver Parameters
Please refer to driver parameters.
Prerequisites
Option 1: Provide cloud provider config with Azure credentials
This option depends on a cloud provider config file (config example). Config file paths on different clusters:
| Platform | Config Path |
|----------|-------------|
| AKS, CAPZ, aks-engine | /etc/kubernetes/azure.json |
| Azure Red Hat OpenShift | /etc/kubernetes/cloud.conf |
Specify a different config file path via ConfigMap
Create the ConfigMap azure-cred-file before the driver starts up:
kubectl create configmap azure-cred-file \
--from-literal=path="/etc/kubernetes/cloud.conf" \
--from-literal=path-windows="C:\\k\\cloud.conf" \
-n kube-system
- Cloud provider config can also be specified via a Kubernetes Secret — see details.
- Ensure the identity used by the driver has the
Contributorrole on the node resource group and virtual network resource group.
Option 2: Bring your own storage account (SMB only)
This option does not depend on the cloud provider config file and supports cross-subscription and on-premise cluster scenarios. Refer to detailed steps.
Installation
Install the driver on a Kubernetes cluster:
- Install by Helm charts
- Install by kubectl
| Platform | Guide | |----------|-------| | AKS | Install on AKS | | Azure Red Hat OpenShift | Install on ARO |
Install Managed CSI driver:
| Platform | Guide | |----------|-------| | AKS | AKS CSI storage drivers | | Azure Red Hat OpenShift | ARO CSI Azure File |
Examples
Features
- Windows
- NFS
- Volume Snapshot and Restore
- Volume Expansion
- Volume Cloning
- Mount with workload identity
- Mount with managed identity
Troubleshooting
Support
Please see our support policy.
Development
Please refer to the development guide.
CI Results
Check the TestGrid provider-azure-azurefile-csi-driver dashboard.