Skip to content

andyzhangx/azuredisk-csi-driver

 
 

Repository files navigation

azuredisk CSI driver for Kubernetes

TravisCI Coverage Status FOSSA Status

WARNING: This driver is in ALPHA currently. Do NOT use this driver in a production environment in its current state.

About

This driver allows Kubernetes to use azure disk volume, csi plugin name: disk.csi.azure.com

Project Status

Status: Alpha

Container Images & CSI Compatibility:

Azure Disk CSI Driver Version Image v0.3.0 v1.0.0
v0.1.0-alpha mcr.microsoft.com/k8s/csi/azuredisk-csi:v0.1.0-alpha yes no
v0.2.0-alpha mcr.microsoft.com/k8s/csi/azuredisk-csi:v0.2.0-alpha no yes
master branch mcr.microsoft.com/k8s/csi/azuredisk-csi:latest no yes

Kubernetes Compatibility

Azure Disk CSI Driver\Kubernetes Version 1.12 1.13+
v0.1.0-alpha yes yes
v0.2.0-alpha no yes
master branch no yes

Driver parameters

Please refer to disk.csi.azure.com driver parameters

storage class disk.csi.azure.com parameters are compatible with built-in azuredisk plugin

Prerequisite

Install azuredisk CSI driver on a Kubernetes cluster

Please refer to install azuredisk csi driver

E2E Usage example

1. create a pod with csi azuredisk driver mount on linux

Option#1: Azuredisk Dynamic Provisioning
  • Create an azuredisk CSI storage class
kubectl create -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/storageclass-azuredisk-csi.yaml
  • Create an azuredisk CSI PVC
kubectl create -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/pvc-azuredisk-csi.yaml
Option#2: Azuredisk Static Provisioning(use an existing azure disk)
  • Create an azuredisk CSI PV, download pv-azuredisk-csi.yaml file and edit diskName, diskURI in volumeAttributes
wget https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/pv-azuredisk-csi.yaml
vi pv-azuredisk-csi.yaml
kubectl create -f pv-azuredisk-csi.yaml
  • Create an azuredisk CSI PVC which would be bound to the above PV
kubectl create -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/pvc-azuredisk-csi-static.yaml

2. validate PVC status and create an nginx pod

  • make sure pvc is created and in Bound status finally
watch kubectl describe pvc pvc-azuredisk
  • create a pod with azuredisk CSI PVC
kubectl create -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/nginx-pod-azuredisk.yaml

3. enter the pod container to do validation

  • watch the status of pod until its Status changed from Pending to Running and then enter the pod container
$ watch kubectl describe po nginx-azuredisk
$ kubectl exec -it nginx-azuredisk -- bash
Filesystem      Size  Used Avail Use% Mounted on
overlay          30G   15G   15G  52% /
...
/devhost/sdc        9.8G   37M  9.8G   1% /mnt/azuredisk
...

In the above example, there is a /mnt/azuredisk directory mounted as disk filesystem.

Kubernetes Development

Please refer to development guide

Links

About

Azure Disk Container Storage Interface (CSI) Driver

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 88.6%
  • Shell 8.7%
  • Makefile 2.1%
  • Other 0.6%