Skip to content

sjep/blob-csi-driver

 
 

Repository files navigation

Azure Blob Storage CSI driver for Kubernetes

linux build status Coverage Status FOSSA Status

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 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.3 mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.21.3 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
  • 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.

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"}]}}}}'

Usage

Troubleshooting

Support

Limitations

Kubernetes Development

View CI Results

Links

About

Azure Blob Storage CSI driver

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 83.7%
  • Shell 8.1%
  • Mustache 5.7%
  • Python 1.1%
  • Makefile 1.1%
  • Dockerfile 0.3%