Kubernetes、OpenShift、Tanzu升级华为CSI

前提条件

  • 旧版本华为CSI使用Helm安装。
  • 新版本华为CSI镜像已制作完成,并且按照 上传华为CSI镜像 章节说明,上传到镜像仓库或者导入到所有节点。

升级华为CSI

如果您旧版本CSI使用Helm部署,请按照以下操作步骤升级华为CSI。

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。

  2. 将目标版本CSI组件包拷贝到master节点的任意目录下。

  3. 进入到helm/esdk的工作目录下,目录路径请参见 表1

    cd helm/esdk
    
  4. 执行kubectl apply -f ./crds/backend/命令,更新存储后端CRD

    kubectl apply -f ./crds/backend/
    
  5. (可选) 请务必按照 检查卷快照依赖组件 章节检查快照依赖组件,确认无误后执行执行kubectl apply -f ./crds/snapshot-crds/ –validate=false命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考 表2

    kubectl apply -f ./crds/snapshot-crds/ --validate=false
    
  6. 执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。

    helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml
    
  7. 执行vi update-values.yaml命令打开 6 中获取的文件,修改images配置项,更新镜像至最新版本。需要修改的参数请参考 表1

    表 1 images配置项

    容器名称

    描述

    K8s版本要求

    修改为

    storage-backend-controller

    huawei-csi镜像。

    v1.16+

    storage-backend-controller:4.6.0

    storage-backend-sidecar

    华为后端管理storageBackendContent资源的镜像

    v1.16+

    storage-backend-sidecar:4.6.0

    huawei-csi-driver

    华为后端管理storageBackendClaim资源的镜像。

    v1.16+

    huawei-csi:4.6.0

    huawei-csi-extender

    huawei-csi-extender镜像

    v1.16+

    huawei-csi-extender:4.6.0

    images.sidecar.livenessProbe

    livenessprobe sidecar镜像。

    v1.16+

    registry.k8s.io/sig-storage/livenessprobe:v2.12.0

    images.sidecar.resizer

    csi-resizer sidecar镜像。

    v1.16+

    registry.k8s.io/sig-storage/csi-resizer:v1.9.0

    images.sidecar.registrar

    csi-node-driver-registrar sidecar镜像。

    v1.16+

    registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0

    images.sidecar.snapshotter

    csi-snapshotter sidecar镜像。

    v1.20+

    registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0

    v1.17-v1.19

    registry.k8s.io/sig-storage/csi-snapshotter:v4.2.1

    images.sidecar.snapshotController

    snapshot-controller sidecar镜像。

    v1.20+

    registry.k8s.io/sig-storage/snapshot-controller:v6.3.0

    v1.17-v1.19

    registry.k8s.io/sig-storage/snapshot-controller:v4.2.1

    images.sidecar.provisioner

    csi-provisioner sidecar镜像。

    v1.20+

    registry.k8s.io/sig-storage/csi-provisioner:v3.6.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.4.0

    v.1.16.x

    quay.io/k8scsi/csi-attacher:v1.2.1

  8. (可选)在升级过程中如需自定义更新配置项信息或者需要新增配置信息,可参考 Helm values.yaml参数说明 修改update-values.yaml文件中配置信息。


    升级时,如果update-values.yaml与values.yaml配置文件中存在相同配置项,update-values.yaml中的配置将会优先生效。

  9. 执行以下命令,升级华为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
    
  10. 完成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