Curve Testing Camp Time - 部署和使用curvebs-csi插件

部署和使用curvebs-csi插件

0. 前置环境

需要的环境及已验证的版本如下:

  • 一个k8s集群,版本为v1.19.16
  • 一台宿主机,操作系统为debian10
  • curve客户端软件包:
    • k8s-nebd_1.2.5+2c4861ca_amd64.deb
    • k8s-curve-nbd_1.2.5+2c4861ca_amd64.deb
    • curve-sdk_1.2.5+2c4861ca_amd64.deb
  • 一个curvebs集群,版本为v1.2.5

1. 宿主机安装curve客户端软件包

软件包下载链接为:

# nebd运行依赖daemon
apt install daemon
dpkg -i ./k8s-nebd_1.2.5+2c4861ca_amd64.deb
apt install -f
dpkg -i ./k8s-curve-nbd_1.2.5+2c4861ca_amd64.deb
apt install -f
dpkg -i ./curve-sdk_1.2.5+2c4861ca_amd64.deb

2. 修改curve客户端配置连接后端集群

# 样例conf
mkdir /etc/curve
wget https://raw.githubusercontent.com/opencurve/curve/v1.2.5/conf/client.conf -O /etc/curve/client.conf
# 修改其中的mds.listen.addr为实际的后端curvebs mds信息
# 重启nebd-daeomn并确认running
systemctl restart nebd-daemon
systemctl status nebd-daemon

3. 部署curvebs-csi

仓库地址:GitHub - opencurve/curve-csi: Curve Container Storage Interface(CSI) driver

安装只需要使用kubectl apply一下deploy/manifests里的yaml即可,yaml可能需要修改,请注意如下情况

  1. 如果单节点k8s,修改deploy/manifests/provisioner-deploy.yaml中replicas数量为1
  2. 按照实际情况修改 curve-csi/provisioner-deploy.yaml at 1fd7e98cf4fc7be6f6a9fb3043a4c3f3236bd96d · opencurve/curve-csi · GitHub
    1. 如果不需要snapshot功能,删除这一行
    2. 如果需要snapshot功能,修改为正确的后端curvebs snapshotcloneserver地址

如果需要使用快照功能,需要额外部署其余组件

参考文档:curve-csi/snapshot.md at master · opencurve/curve-csi · GitHub

4. curvebs-csi的使用

仓库examples下为样例yaml
example使用参考:curve-csi/docs at master · opencurve/curve-csi · GitHub

examples/
|-- pod-block.yaml      # 创建一个pod,并bind一个block pvc
|-- pod.yaml            # 创建一个pod,并bind一个普通pvc
|-- pvc-block.yaml      # 创建一个volume mode为block的pvc
|-- pvc-clone.yaml      # 从一个pvc拷贝创建一个新的pvc
|-- pvc-restore.yaml    # 从一个snapshot创建一个新的pvc(需要开启快照功能)
|-- pvc.yaml            # 创建一个普通pvc
|-- snapshot.yaml       # 创建一个snapshot(需要开启快照功能)
|-- snapshotclass.yaml  # 创建一个snapshot class(需要开启快照功能)
`-- storageclass.yaml   # 创建一个storage class