Huawei Container Storage Interface (CSI) Driver is used to provision LUN, recycle LUN, and provide a series of disaster recovery functions of storages for Kubernetes Containers.
Features | 1.13 | 1.14 | 1.15 | 1.16 | 1.17 |
---|---|---|---|---|---|
Create PVC | √ | √ | √ | √ | √ |
Delete PVC | √ | √ | √ | √ | √ |
Create POD | √ | √ | √ | √ | √ |
Delete POD | √ | √ | √ | √ | √ |
Offline Resize | x | x | x | √ | √ |
Online Resize | x | x | x | √ | √ |
Create Snapshot | x | x | x | x | √ |
Delete Snapshot | x | x | x | x | √ |
Restore | x | x | x | x | √ |
Clone | x | x | x | x | √ |
This section describes the environmental requirements and steps of compiling Huawei CSI Driver
System | Go Version |
---|---|
Linux | >=1.10 |
Step 1. Download the package and cd into the package, the structure is as follows:
- docs
- en
- zh
- src
- csi
- dev
- proto
- storage
- tools
- utils
- vendor
- yamls
- deploy
- example
step 2. Change the keyText to a private value to prevent hacking. The length of the keyText is 32 characters. Such as:
keyText = []byte("astaxie1279dkjajzmknm.ahkjkljl;k")
Step 3. Run following command to compile the Huawei CSI Driver
make -f Makefile-CSI PLATFORM=[X86|ARM]
Step 4. After the compilation is finished, a bin directory will be created in the current directory, the structure is as follows:
- bin
- huawei-csi
- passwdEncrypt
In addition, we also provide a way to directly download the installation package, click Release to obtain the corresponding version of the plug-in package
Ensure the docker has been installed on the host and host can access the networks in order to obtain some dependent software, then you can refer to the documentation and create your own Dockerfile.
docker build -f Dockerfile -t huawei-csi:*.*.*
Export and import the image
docker save huawei-csi:*.*.* -o huawei-csi.tar
docker load -i huawei-csi.tar
Fill in the appropriate mirror version in huawei-csi-rbac.yaml, and then create the Huawei CSI Rbac.
kubectl create -f huawei-csi-rbac.yaml
Fill in the appropriate mirror version in huawei-csi-configmap.yaml, and then create the Huawei CSI Configmap
kubectl create -f huawei-csi-configmap.yaml
Fill in the appropriate mirror version in huawei-csi-controller.yaml, and then create the Huawei CSI Controller service
kubectl create -f huawei-csi-controller.yaml
Fill in the appropriate mirror version in huawei-csi-node.yaml, and then create the Huawei CSI Node service
kubectl create -f huawei-csi-node.yaml
kubectl get pods -n kube-system
Also, we support our own logging service for the Huawei CSI Driver, the default directory is /var/log/huawei. When you encounter some driver issues, you can get some help from these logs.