这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

安装前准备

本章节将对安装前的准备工作进行详细说明。

前提条件

在进行本章节所说明的操作前,请确保如下条件已经具备:

  • 容器管理平台已部署完成并正常运行,且兼容性满足Kubernetes及操作系统兼容性章节的要求。
  • (企业存储必选)已完成对接华为企业存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足华为企业存储兼容性章节的要求。
  • (分布式存储必选)已完成对接华为分布式存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足华为分布式存储兼容性章节的要求。
  • 完成华为存储和容器平台主机连通性配置,例如运行huawei-csi-controller的worker节点与待接入的存储设备的管理IP地址通信正常,运行huawei-csi-node的worker节点与待接入的存储设备的业务IP地址通信正常,iSCSI场景下允许使用ping命令进行连通性校验。
  • 请确保操作系统的语言是英文。
  • 请确保存储池、租户名称等相关存储资源名称是英文。

1 - 下载华为CSI软件包

本章节详细说明了下载方法以及软件包组件结构。

  1. 打开浏览器,访问仓库地址:https://github.com/Huawei/eSDK_K8S_Plugin/releases

  2. 根据CPU架构,下载对应的4.5.0版本软件包。

    软件包命名规范:插件名称(eSDK_Huawei_Storage_Kubernetes_CSI_Plugin)+版本号+CPU架构

  3. 将下载的软件包解压。软件包组件结构如下表所示。

    表 1 软件包组件描述

    组件

    组件描述

    image/huawei-csi-v4.5.0-arch.tar

    huawei-csi-driver镜像,"arch"为X86或ARM。

    image/storage-backend-controller-v4.5.0-arch.tar

    后端管理控制器镜像,"arch"为X86或ARM。

    image/storage-backend-sidecar-v4.5.0-arch.tar

    后端管理sidecar镜像,"arch"为X86或ARM。

    image/huawei-csi-extender-v4.5.0-arch.tar

    huawei-csi-extender镜像,"arch"为X86或ARM。

    bin/

    华为提供的镜像使用的二进制文件。

    bin/oceanctl

    华为提供的命令行工具,可用于管理存储后端。

    helm/

    Helm工程,用于部署华为CSI。

    manual/

    用于手动安装部署华为CSI。

    examples/

    CSI使用过程中的yaml示例文件。

    examples/backend

    创建存储后端的yaml示例文件。

2 - 上传华为CSI镜像

华为提供huawei-csi镜像供用户使用,镜像文件获取请参考下载华为CSI软件包

为了后续在容器管理平台中可以使用CSI镜像,需要按照以下方式中的一种提前将CSI镜像导入到集群中:

  • 使用Docker工具,将CSI镜像上传至镜像仓库(推荐)。
  • 手动将CSI镜像导入到所有需要部署华为CSI的节点。

上传镜像到镜像仓库

安装华为CSI依赖如下三个华为提供的镜像文件,请按照说明依次导入并上传下列镜像文件,镜像文件获取请参考下载华为CSI软件包

  • huawei-csi-v4.5.0-arch.tar
  • storage-backend-controller-v4.5.0-arch.tar
  • storage-backend-sidecar-v4.5.0-arch.tar
  • huawei-csi-extender-v4.5.0-arch.tar

前提条件

已准备一台已安装Docker的Linux主机,且该主机支持访问镜像仓库。

操作步骤

  1. 执行docker load -i huawei-csi-v4.5.0-arch.tar命令,将CSI镜像导入当前节点。

    docker load -i huawei-csi-v4.5.0-arch.tar 
    
  2. 执行docker tag huawei-csi:4.5.0 repo.huawei.com/huawei-csi:4.5.0命令,添加镜像仓库地址到镜像标签。其中repo.huawei.com表示镜像仓库的地址。

    docker tag huawei-csi:4.5.0 repo.huawei.com/huawei-csi:4.5.0
    
  3. 执行docker push repo.huawei.com/huawei-csi:4.5.0命令,将CSI镜像上传到镜像仓库。其中repo.huawei.com表示镜像仓库的地址。

    docker push repo.huawei.com/huawei-csi:4.5.0
    

  • 也可以使用containerd来进行镜像的导入和上传。
  • CCE / CCE Agile平台请参考该平台用户手册完成镜像导入和上传。

上传镜像到本地节点

若镜像已上传至镜像仓库,则跳过本章节。

前提条件

  • 该节点已获取对应的华为CSI镜像文件,镜像文件获取请参考下载华为CSI软件包
  • 该节点已经安装Docker或其他容器引擎。

操作步骤

  1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录需要导入镜像的节点。

  2. 将Kubernetes CSI组件包中的"image"目录拷贝到当前节点的任意目录下。

  3. 执行cd image命令,进入到image的工作目录。工具路径请参见表 软件包组件描述

  4. 执行命令依次将image目录下的所有华为CSI镜像导入至本地节点,其中 name 参数是镜像tar包的名字。

    使用Docker容器引擎执行:

    docker load -i <name>.tar
    

    使用containerd容器引擎执行:

    ctr -n k8s.io image import <name>.tar
    

    使用Podman容器引擎执行:

    podman load -i <name>.tar
    


    当节点主机安装的是其他容器引擎时,请使用对应容器引擎的导入镜像命令。

3 - 检查华为存储上的用户配置

当华为存储接入容器平台后,华为CSI需要在华为存储上根据业务要求,管理存储资源,如创建卷、映射卷等操作。此时,华为CSI需要使用华为存储上已经创建的用户和华为存储进行通信。针对不同存储设备所需要的用户信息如下表所示。

表 1 存储对接CSI时使用的用户要求

存储类型

用户类型

角色

级别

类型

OceanStor V5

系统用户

管理员

管理员

本地用户

租户用户

租户管理员

管理员

本地用户

OceanStor Dorado V3

系统用户

管理员

管理员

本地用户

OceanStor 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

系统用户

管理员/自定义角色1

N/A

本地用户

OceanStor Dorado 6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

系统用户

管理员/自定义角色1

N/A

本地用户

租户用户

租户管理员

N/A

本地用户

OceanStor Pacific系列

系统用户

管理员

N/A

本地用户

  • 注释1 使用自定义角色,需要给角色配置权限,最小权限请参考配置自定义权限章节配置。


不推荐使用“超级管理员”角色下的用户。

4 - 检查卷快照依赖组件

本章节介绍如何检查集群中卷快照依赖组件情况。


由于Kubernetes v1.17.0之前不支持快照功能,如果部署快照CRD可能导致集群出现问题,因此在低于Kubernetes v1.17.0版本上部署华为CSI,请务必按照Kubernetes低于v1.17.0章节检查。

Kubernetes低于v1.17.0

Kubernetes低于v1.17.0时,部署快照时将会导致集群出现问题,请按照以下步骤删除快照CRD安装文件。

  1. 执行以下命令查看Kubernetes版本。如下示例中,Kubernetes版本为v1.16.0。

    kubectl get node
    

    命令结果示例如下:

    NAME          STATUS       ROLES     AGE    VERSION
    test-master   Ready        master    311d   v1.16.0
    test-node     Ready        <none>    311d   v1.16.0
    
  2. 进入/helm/esdk/crds/snapshot-crds目录,执行以下命令,删除快照CRD安装文件。组件包路径请参考表 软件包组件描述

    rm -rf ./huawei-csi-snapshot-crd-v1.yaml
    

5 - 检查主机多路径配置

当您计划在容器环境中使用FC/iSCSI/NVMe over RoCE/NVMe over FC协议对华为存储进行访问时,推荐您使用主机多路径软件增强主机和存储的链路冗余和性能。如果您不准备使用多路径软件,请跳过本章节。

华为CSI软件支持对接的操作系统和多路径软件请参考表 支持的主机操作系统及多路径软件版本

  • 如果您准备使用FC/iSCSI协议对接华为存储时,推荐使用操作系统自带的原生DM-Multipath。
  • 如果您准备使用NVMe over RoCE/NVMe over FC协议对接华为存储时,推荐使用华为自研的UltraPath-NVMe。
  • 如果您使用SCSI协议对接华为存储时,请关闭操作系统自带的DM-Multipath。

前提条件

主机多路径软件已经被正确的安装在主机上。

  • 如果您使用的是操作系统自带的原生DM-Multipath,请咨询您的主机或操作系统提供商获取安装所需的资料和软件包。
  • 如果您使用的是华为自研的UltraPath或者UltraPath-NVMe,请联系华为工程师获取UltraPath或者UltraPath-NVMe的资料和软件包。软件包版本请参考表 软件包组件描述

操作步骤

  1. 如果您使用iSCSI/FC协议对接华为企业存储,请参考OceanStor Dorado & OceanStor在Red Hat下的主机连通性指南,对主机多路径进行配置和检查。

  2. 如果您使用NVMe over RoCE/NVMe over FC协议对接华为企业存储,请参考OceanStor Dorado & OceanStor在Red Hat下的主机连通性指南,对主机多路径进行配置和检查。

  3. 如果您使用iSCSI协议对接华为分布式存储,请参考 《FusionStorage 8.0.1 块存储基础业务配置指南》中的“应用服务器配置多路径”章节,对主机多路径进行配置和检查。

  4. 如果您使用了操作系统原生多路径时,需要检查/etc/multipath.conf文件,检查文件是否存在如下配置:

    defaults {
            user_friendly_names yes
            find_multipaths no
    }
    

    如果配置不存在,请在/etc/multipath.conf文件开始处增加该配置项。

    user_friendly_names 和find_multipaths 的参数作用请参考:dm_multipath/config_file_defaults

6 - 检查主机依赖软件状态

本章节介绍如何检查集群中工作节点上主机依赖软件状态是否正常。本例中主机操作系统为CentOS 7.9 x86_64。

  • 检查iSCSI客户端状态。

    systemctl status iscsi iscsid 
    
  • 检查NFS客户端状态。

    systemctl status rpcbind 
    
  • 检查DM-Multipath多路径软件状态。

    systemctl status multipathd.socket multipathd
    
  • 检查UltraPath多路径软件状态。

    systemctl status nxup
    
  • 检查UltraPath-NVMe多路径软件状态。

    systemctl status upudev upService_plus
    

7 - 检查CSI依赖的镜像

华为CSI安装过程中需要依赖下表中的镜像,若集群中的所有worker节点已连接互联网且能够在线拉取镜像,则可跳过本章节。若集群中的节点无法连接互联网,则请根据使用的Kubernetes版本,下载对应的镜像文件并上传到镜像仓库中或者导入Kubernetes集群的所有worker节点中。

huawei-csi-controller服务依赖的sidecar镜像:livenessprobe、csi-provisioner、csi-attacher、csi-resizer、csi-snapshotter、snapshot-controller、storage-backend-controller、storage-backend-sidecar、huawei-csi-driver和huawei-csi-extender。huawei-csi-node服务依赖的sidecar镜像:livenessprobe、csi-node-driver-registrar和huawei-csi-driver。

关于每个镜像的功能和详情,请参考下表。

表 1 Huawei CSI依赖的镜像

容器名称

容器镜像

K8s版本要求

功能描述

livenessprobe

k8s.gcr.io/sig-storage/livenessprobe:v2.5.0

v1.16+

Kubernetes社区提供,提供用于监控CSI的健康状态,并上报给Kubernetes,使Kubernetes能够自动检测CSI程序的问题并重启Pod尝试修改该问题。

csi-resizer

k8s.gcr.io/sig-storage/csi-resizer:v1.4.0

v1.16+

Kubernetes社区提供,在扩容PVC时,调用CSI给PVC提供更多的存储容量空间。

csi-node-driver-registrar

k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0

v1.16+

Kubernetes社区提供,用于获取CSI信息,并通过kubelet的插件注册机制将节点注册到kubelet中,从而Kubernetes能够感知该节点与华为存储的对接。

csi-snapshotter

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

v1.17+

Kubernetes社区提供,在创建/删除VolumeSnapshot时,调用CSI在存储侧完成快照的创建和删除。

snapshot-controller

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

v1.17+

Kubernetes社区提供,在创建/删除VolumeSnapshot时,监听Kubernetes API中关于VolumeSnapshot和VolumeSnapshotContent的对象,并触发csi-snapshotter在存储上完成快照的创建。

csi-provisioner

k8s.gcr.io/sig-storage/csi-provisioner:v3.0.0

v1.17+

Kubernetes社区提供,用于完成PVC创建/删除。

  • 在创建PVC时,调用huawei-csi-controller服务在存储上创建LUN/文件系统作为PV。
  • 在删除PVC时,调用huawei-csi-controller服务在存储上删除该PV对应的LUN/文件系统。

quay.io/k8scsi/csi-provisioner:v1.4.0

v1.16.x

csi-attacher

k8s.gcr.io/sig-storage/csi-attacher:v3.4.0

v1.17+

在创建/删除Pod时,调用huawei-csi-controller服务执行Publish/Unpublish Volume操作。

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

v.1.16.x

storage-backend-controller

storage-backend-controller:4.5.0

v1.16+

华为CSI软件包提供、用于管理storageBackendClaim资源。

storage-backend-sidecar

storage-backend-sidecar:4.5.0

v1.16+

华为CSI软件包提供、用于管理storageBackendContent资源。

huawei-csi-driver

huawei-csi:4.5.0

v1.16+

华为CSI软件包提供、用于提供华为CSI支持的所有特性。

huawei-csi-extender

huawei-csi-extender:4.5.0

v1.16+

华为CSI软件包提供、用于提供华为CSI的扩展特性。

集群若未连接互联网,需要手动下载容器镜像并上传到集群中,具体操作请参考下载容器镜像