Skip to content

cvvz/blob-csi-driver

 
 

Repository files navigation

Azure Blob Storage CSI driver for Kubernetes

Travis 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.2
v1.21.0 mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.21.0 1.21+ 1.4.5 2.0.2
v1.20.2 mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.2 1.21+ 1.4.5 2.0.2
v1.19.3 mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.19.3 1.21+ 1.4.5 2.0.2

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

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.2"}],"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

Packages

No packages published

Languages

  • Go 83.3%
  • Shell 8.7%
  • Mustache 5.3%
  • Python 1.2%
  • Makefile 1.2%
  • Dockerfile 0.3%