Skip to content

kubernetes-sigs/blob-csi-driver

Azure Blob Storage CSI driver for Kubernetes

linux build status Coverage Status FOSSA Status Artifact Hub

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.

csi plugin name: blob.csi.azure.com

Project status: GA

Container Images & Kubernetes Compatibility:

driver version Image supported k8s version
master branch mcr.microsoft.com/k8s/csi/blob-csi:latest 1.21+
v1.24.0 mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.24.0 1.21+
v1.23.3 mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.23.3 1.21+
v1.22.5 mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.5 1.21+

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
  • specify a different config file path via configmap
    create configmap "azure-cred-file" before 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 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.

Execute following command to install a specific version of blobfuse v2 once 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.2.1"}],"name":"install-blobfuse-proxy"}]}}}}'

Execute following command to install a specific version of blobfuse v1 once 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"}]}}}}'

Examples

Usage

Troubleshooting

Support

Limitations

Kubernetes Development

View CI Results

Links