1 - 从2.x或3.x升级至4.x版本
备份存储后端配置
如果您已按照以上须知评估风险后,确认需要从2.x或3.x版本的CSI升级至4.11.0版本,请按照以下操作步骤备份存储后端配置:
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
执行以下命令备份后端信息到configmap.json文件中。OpenShift平台使用oc替换kubectl命令。
kubectl get cm huawei-csi-configmap -n huawei-csi -o json > configmap.json
升级华为CSI
请按照
升级华为CSI
中的步骤进行升级。
配置存储后端
请将
备份存储后端配置
中备份的后端信息,按照
存储后端管理
章节的说明配置存储后端。其中通过备份后端信息配置存储后端命令如下。
oceanctl create backend -f configmap.json -i json -n huawei-csi
2 - Kubernetes、OpenShift、Tanzu升级华为CSI
前提条件
- 旧版本华为CSI使用Helm安装。
- 新版本华为CSI镜像已制作完成,并且按照
上传华为CSI镜像
章节说明,上传到镜像仓库或者导入到所有节点。
升级华为CSI
如果您旧版本CSI使用Helm部署,请按照以下操作步骤升级华为CSI。
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
将目标版本CSI组件包拷贝到master节点的任意目录下。
进入到helm/esdk的工作目录下,目录路径请参见
表1
。
执行kubectl apply -f ./crds/backend/命令,更新存储后端CRD
kubectl apply -f ./crds/backend/
(可选) 请务必按照
检查卷快照依赖组件
章节检查快照依赖组件,确认无误后执行执行以下命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.20,可跳过本步骤,详情请参考
表2
。
kubectl apply -f ./crds/snapshot-crds/ --validate=false
执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。
helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml
执行vi update-values.yaml命令打开
6
中获取的文件,修改images配置项,更新镜像至最新版本。需要修改的参数请参考
表1
。
表 1 images配置项
容器名称 | 描述 | K8s版本要求 | 修改为 |
|---|
storage-backend-controller | huawei-csi镜像。 | v1.16+ | storage-backend-controller:4.11.0 |
storage-backend-sidecar | 华为后端管理storageBackendContent资源的镜像 | v1.16+ | storage-backend-sidecar:4.11.0 |
huawei-csi-driver | 华为后端管理storageBackendClaim资源的镜像。 | v1.16+ | huawei-csi:4.11.0 |
huawei-csi-extender | huawei-csi-extender镜像 | v1.16+ | huawei-csi-extender:4.11.0 |
images.sidecar.livenessProbe | livenessprobe sidecar镜像。 | v1.16+ | registry.k8s.io/sig-storage/livenessprobe:v2.15.0 |
images.sidecar.resizer | csi-resizer sidecar镜像。 | v1.16+ | registry.k8s.io/sig-storage/csi-resizer:v1.13.2 |
images.sidecar.registrar | csi-node-driver-registrar sidecar镜像。 | v1.16+ | registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0 |
images.sidecar.snapshotter
| csi-snapshotter sidecar镜像。
| v1.25+ | registry.k8s.io/sig-storage/csi-snapshotter:v8.2.0 |
v1.20-v1.24 | registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0 |
images.sidecar.snapshotController
| snapshot-controller sidecar镜像。
| v1.25+ | registry.k8s.io/sig-storage/snapshot-controller:v8.2.0 |
v1.20-v1.24 | registry.k8s.io/sig-storage/snapshot-controller:v6.3.0 |
images.sidecar.provisioner
| csi-provisioner sidecar镜像。 | v1.20+ | registry.k8s.io/sig-storage/csi-provisioner:v5.2.0 |
v1.17-v1.19 | registry.k8s.io/sig-storage/csi-provisioner:v3.0.0 |
v1.16.x | quay.io/k8scsi/csi-provisioner:v1.4.0 |
images.sidecar.attacher
| csi-attacher sidecar镜像。 | v1.17+ | registry.k8s.io/sig-storage/csi-attacher:v4.8.0 |
v.1.16.x | quay.io/k8scsi/csi-attacher:v1.2.1 |
(可选)在升级过程中如需自定义更新配置项信息或者需要新增配置信息,可参考
Helm values.yaml参数说明
修改update-values.yaml文件中配置信息。

升级时,如果update-values.yaml与values.yaml配置文件中存在相同配置项,update-values.yaml中的配置将会优先生效。
执行以下命令,升级华为CSI。其中helm-huawei-csi为指定的Helm Chart名称,huawei-csi为指定的Helm Chart命名空间,update-values.yaml为步骤
6
中获取的文件。
helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./values.yaml -f ./update-values.yaml
完成huawei-csi服务部署后,执行命令检查服务是否启动。
kubectl get pod -n huawei-csi
命令结果示例如下,Pod状态为“Running“表明服务启动成功。
NAME READY STATUS RESTARTS AGE
huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 Running 0 24m
huawei-csi-controller-6dfcc4b79f-csphc 9/9 Running 0 24m
huawei-csi-node-g6f4k 3/3 Running 0 20m
huawei-csi-node-tqs87 3/3 Running 0 20m