Azure Blob Storage CSI driver for Kubernetes
About
This driver allows Kubernetes to access Azure Storage through one of following methods:
Disclaimer: 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 blob csi driver.
blob.csi.azure.com
csi plugin name: Project status: GA
Container Images & Kubernetes Compatibility:
driver version | Image | supported k8s version | built-in blobfuse v1 version | built-in blobfuse v2 version |
---|---|---|---|---|
master branch | mcr.microsoft.com/k8s/csi/blob-csi:latest | 1.21+ | 1.4.5 | 2.0.3 |
v1.22.0 | mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.0 | 1.21+ | 1.4.5 | 2.0.3 |
v1.21.4 | mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.21.4 | 1.21+ | 1.4.5 | 2.0.3 |
v1.20.2 | mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.2 | 1.21+ | 1.4.5 | 2.0.3 |
Driver parameters
Please refer to blob.csi.azure.com
driver parameters
Prerequisites
Option#1: Provide cloud provider config with Azure credentials
- This option depends on cloud provider config file (here is config example), config file path on different clusters:
- AKS, capz, aks-engine:
/etc/kubernetes/azure.json
- Azure RedHat OpenShift:
/etc/kubernetes/cloud.conf
- AKS, capz, aks-engine:
-
specify a different config file path via configmap
create configmap "azure-cred-file" before driver starts upkubectl 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 kubernetes secret, check details here
- Make sure identity used by driver has
Contributor
role on node resource group and virtual network resource group
Option#2: Bring your own storage account
This option does not depend on cloud provider config file, supports cross subscription and on-premise cluster scenario. Refer to detailed steps.
Install driver on a Kubernetes cluster
Note: this feature is only available in v1.19.5, v1.21.1 and later versions.
To install specific blobfuse v1 version, run following command directly after driver is running on the agent node:
kubectl patch daemonset csi-blob-node -n kube-system -p '{"spec":{"template":{"spec":{"initContainers":[{"env":[{"name":"INSTALL_BLOBFUSE","value":"true"},{"name":"BLOBFUSE_VERSION","value":"1.4.5"}],"name":"install-blobfuse-proxy"}]}}}}'
To install specific blobfuse v2 version, run following command directly after driver is running on the agent node:
kubectl patch daemonset csi-blob-node -n kube-system -p '{"spec":{"template":{"spec":{"initContainers":[{"env":[{"name":"INSTALL_BLOBFUSE2","value":"true"},{"name":"BLOBFUSE2_VERSION","value":"2.0.3"}],"name":"install-blobfuse-proxy"}]}}}}'
- install by helm charts
- install by kubectl
- install open source CSI driver on following platforms:
- install managed CSI driver on following platforms:
Usage
Troubleshooting
Support
- Please see our support policy
Limitations
- Please refer to Azure Blob Storage CSI Driver Limitations
Kubernetes Development
- Please refer to development guide
View CI Results
- Check testgrid provider-azure-blobfuse-csi-driver dashboard.