An NAS CSI plugin is available to help simplify storage management. You can create a pv with csi configuration, and the pvc, pod defines as usual.
- Service Accounts with required RBAC permissions
Beta
nasplugin.csi.alibabacloud.com can be compiled in a form of a container.
To build a container:
$ cd build && sh build-nas.sh
Same as diskplugin.csi.alibabacloud.com;
# kubectl create -f ./deploy/rbac.yaml
# kubectl create -f ./deploy/nas/nas-plugin.yaml
Note: The plugin log style can be configured by environment variable: LOG_TYPE.
"host": logs will be printed into files which save to host(/var/log/alicloud/nasplugin.csi.alibabacloud.com.log);
"stdout": logs will be printed to stdout, can be printed by docker logs or kubectl logs.
"both": default option, log will be printed both to stdout and host file.
If your kubelet RootDir is not /var/lib/kubelet, the deploy template(nas-plugin.yaml) should be changed:
Replace all /var/lib/kubelet into /rootdir/kubelet for the nas-plugin.yaml file.
# kubectl create -f ./deploy/nas/nas-provisioner.yaml
# kubectl create -f ./examples/nas/deploy.yaml
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
nas-pvc Bound nas-csi-pv 5Gi RWO 3m
# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
nas-csi-pv 5Gi RWO Retain Bound default/nas-pvc 3m
# kubectl describe pv nas-csi-pv
Name: nas-csi-pv
Labels: <none>
Annotations: pv.kubernetes.io/bound-by-controller=yes
Finalizers: [kubernetes.io/pv-protection]
StorageClass:
Status: Bound
Claim: default/nas-pvc
Reclaim Policy: Retain
Access Modes: RWO
Capacity: 5Gi
Node Affinity: <none>
Message:
Source:
Type: CSI (a Container Storage Interface (CSI) volume source)
Driver: nasplugin.csi.alibabacloud.com
VolumeHandle: data-id
ReadOnly: false
Events: <none>
Nas Dynamic: dynamic volume