配置 NeonSAN CSI
NeonSAN 是青云的一款企业级分布式块存储系统,NeonSAN CSI 是 NeonSAN 团队面向 Kubernetes 提供的存储插件,具有在 Kubernetes 平台上动态创建持久存储卷的能力。
本节介绍如何在生产环境中为 KubeSphere 企业版集群配置 NeonSAN CSI。
前提条件
-
您已经成功部署 NeonSAN v2.2.0 及以上版本,且容器集群的每个节点都已安装 QBD 与 NeonSAN 连通。具体操作请咨询青云科技官方解决方案专家或交付服务专家。
-
您已经安装 Kubernetes v1.16 及其以上版本。
-
您已经在容器集群的 master 节点安装了 Helm。本节以 Helm 3 为例。
操作步骤
在线安装 NeonSAN CSI
在线安装适用于容器集群能够访问外网的情况。
-
执行以下命令添加 Helm 仓库,如 https://charts.kubesphere.io/test。
$ helm repo add ks-test https://charts.kubesphere.io/test "ks-test" has been added to your repositories
-
执行以下命令查看仓库是否添加成功。
$ helm repo list NAME URL ks-test https://charts.kubesphere.io/test
-
执行以下命令更新仓库的 Chart 列表。
$ helm repo update
-
执行以下命令在仓库中查找 NeonSAN CSI 的安装包。
$ helm search repo neonsan NAME CHART VERSION APP VERSION DESCRIPTION ks-test/csi-neonsan 1.2.2 1.2.0 A Helm chart for NeonSAN CSI Driver
-
查看 Master 节点上安装的 qbd 版本。
$ qbd -v Package Version: 2.2.0-336092c-202202101432-ubuntu2004 Loaded Module Version: 2.2.0-336092c-202209010306-testlangchaor01n01 NeonSAN Static Library Version: 3.0.0-092498bf NeonSAN Protocol Version: 1
-
执行以下命令安装 NeonSAN CSI。根据 Master 节点操作系统上安装的 qbd 版本,设置参数 driver.repository,例如如果查询到的 qbd 版本为 2.2.0,则命令里的参数为 driver.repository="csiplugin/csi-neonsan-qbd2.2.0"。
$ helm install csi-neonsan ks-test/csi-neonsan --namespace kube-system --set driver.tag="v1.2.3" --set sc.rep_count=2 --set driver.repository="csiplugin/csi-neonsan-qbd2.2.0" NAME: csi-neonsan LAST DEPLOYED: Fri Nov 20 10:28:32 2020 NAMESPACE: kube-system STATUS: deployed REVISION: 1 TEST SUITE: None
-
执行以下命令检查 NeonSAN CSI 是否安装成功。
$ helm list -n kube-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION csi-neonsan kube-system 1 2020-11-20 10:28:32.240990384 +0800 CST deployed csi-neonsan-1.2.2 1.2.0
-
检查 pod 是否在 Running 状态。
$ kubectl get pod -n kube-system | grep csi-neonsan kube-system csi-neonsan-controller-75dc5cbcff-6gk54 5/5 Running 0 38s kube-system csi-neonsan-node-8vd8l 2/2 Running 0 38s kube-system csi-neonsan-node-dxk2z 2/2 Running 0 38s kube-system csi-neonsan-node-mp2b2 2/2 Running 0 38s
-
检查是否所有 NeonSAN CSI 组件运行正常。
-
当 READY 取值等于 AVAILABLE 取值时,csi-neonsan-controller 正常。
$ kubectl -n kube-system get deployments.apps csi-neonsan-controller NAME READY UP-TO-DATE AVAILABLE AGE csi-neonsan-controller 1/1 1 1 66m
-
当 DESIRED 取值等于 READY 和 AVAILABLE 取值时,csi-neonsan-node 正常。
$ kubectl -n kube-system get daemonsets.apps csi-neonsan-node NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE csi-neonsan-node 3 3 3 3 3 <none> 66m
-
-
检查存储类是否安装。
$ kubectl get storageclass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE csi-neonsan neonsan.csi.qingstor.com Delete Immediate true 2m56s
-
查看存储类所使用的存储池。此存储池必须在 NeonSAN 中存在, 否则无法使用此存储类创建存储卷。
$ kubectl get storageclass csi-neonsan -o yaml | grep pool_name pool_name: kube
-
登陆 NeonSAN 服务器, 查看存储类所使用的存储池是否存在,如不存在,请使用 neonsan create_pool 命令创建存储池。
$ neonsan list_pool -pool kube -detail Pool Count: 1 +----------+------+---------------------------+ | ID | NAME | CREATED TIME | +----------+------+---------------------------+ | 33554432 | kube | 2020-08-07T14:53:52+08:00 | +----------+------+---------------------------+
离线安装 NeonSAN CSI
离线安装适用于容器集群无法访问外网的情况。
-
在本机上,下载 NeonSAN CSI 安装包,并安装包拷贝至集群 Master 节点。
$ helm repo add ks-test https://charts.kubesphere.io/test "ks-test" has been added to your repositories $ helm pull ks-test/csi-neonsan $ ls -l csi-neonsan*.tgz -rw-r--r--. 1 root root 5196 Nov 20 13:13 csi-neonsan-1.2.2.tgz
-
执行以下命令查看 NeonSAN CSI 所需要的所有镜像文件。
$ helm show values ks-test/csi-neonsan driver: repository: csiplugin/csi-neonsan tag: v1.2.0 node: repository: csiplugin/csi-neonsan-ubuntu tag: v1.2.0 provisioner: repository: csiplugin/csi-provisioner tag: v1.5.0 volumeNamePrefix: pvc attacher: repository: csiplugin/csi-attacher tag: v2.1.1 resizer: repository: csiplugin/csi-resizer tag: v0.4.0 snapshotter: repository: csiplugin/csi-snapshotter tag: v2.0.1 registrar: repository: csiplugin/csi-node-driver-registrar tag: v1.2.0
-
使用 Docker 将所有镜像下载到本地并打包,或上传至内网仓库(如 harbor)中。
docker pull csiplugin/csi-neonsan:v1.2.0 docker pull csiplugin/csi-neonsan-ubuntu:v1.2.0 docker pull csiplugin/csi-provisioner:v1.5.0 docker pull csiplugin/csi-attacher:v2.1.1 docker pull csiplugin/csi-resizer:v0.4.0 docker pull csiplugin/csi-snapshotter:v2.0.1 docker pull csiplugin/csi-node-driver-registrar:v1.2.0
docker save csiplugin/csi-neonsan:v1.2.0 \ csiplugin/csi-neonsan-ubuntu:v1.2.0 \ csiplugin/csi-provisioner:v1.5.0 \ csiplugin/csi-attacher:v2.1.1 \ csiplugin/csi-resizer:v0.4.0 \ csiplugin/csi-snapshotter:v2.0.1 \ csiplugin/csi-node-driver-registrar:v1.2.0 \ -o neonsan-csi-images.tar
-
执行以下命令将镜像包上传至集群所有节点的目录,如 /tmp 目录下,解压并安装。
$ scp neonsan-csi-images.tar user@node1:/tmp/ scp neonsan-csi-images.tar user@node2:/tmp/ ...
$ tar -xvf /tmp/neonsan-csi-images.tar -C /
-
执行以下命令检查安装是否完成。如果您看到所有的 NeonSAN CSI 镜像已经在列表中,那么说明安装成功。
$ docker images
-
参考在线安装中步骤 8 - 12 执行安装后检查。
NeonSAN CSI 安装成功后,您可以在 KubeSphere 企业版控制台上的存储区域查看。