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

返回本页常规视图.

安装前准备

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

前提条件

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

  • 容器管理平台已部署完成并正常运行,且兼容性满足 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.6.0版本软件包。


    软件包命名规范:插件名称(eSDK_Huawei_Storage_Kubernetes_CSI_Plugin)+版本号+CPU架构。 CSI支持的CPU架构包括:X86、ARM和PPC64LE。

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

    表 1 软件包组件描述

    组件

    组件描述

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

    huawei-csi-driver镜像,"arch"为CPU架构。

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

    后端管理控制器镜像,"arch"为CPU架构。

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

    后端管理sidecar镜像,"arch"为CPU架构。

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

    huawei-csi-extender镜像,"arch"为CPU架构。

    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.6.0-arch.tar
  • storage-backend-controller-v4.6.0-arch.tar
  • storage-backend-sidecar-v4.6.0-arch.tar
  • huawei-csi-extender-v4.6.0-arch.tar

前提条件

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

操作步骤

  1. 执行以下命令,将CSI镜像导入当前节点。其中,arch为X86、ARM或PPC64LE。

    docker load -i huawei-csi-v4.6.0-<arch>.tar 
    
  2. 执行以下命令,添加镜像仓库地址到镜像标签。其中repo.huawei.com表示镜像仓库的地址。

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

    docker push <repo.huawei.com>/huawei-csi:4.6.0
    

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

上传镜像到本地节点

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

前提条件

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

操作步骤

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

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

  3. 执行cd image命令,进入到image的工作目录。工具路径请参见 表1

  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

系统用户

管理员/自定义角色1

N/A

本地用户

OceanStor Dorado

系统用户

管理员/自定义角色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安装文件。组件包路径请参考 表1

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

5 - 检查主机多路径配置

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

华为CSI软件支持对接的操作系统和多路径软件请参考 表2

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

前提条件

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

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

操作步骤

  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

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

v1.16+

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

csi-resizer

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

v1.16+

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

csi-node-driver-registrar

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

v1.16+

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

csi-snapshotter

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

v1.20+

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

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

v1.17-v1.19

snapshot-controller

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

v1.20+

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

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

v1.17-v1.19

csi-provisioner

registry.k8s.io/sig-storage/csi-provisioner:v3.6.0

v1.20+

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

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

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

v1.17-v1.19

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

v1.16.x

csi-attacher

registry.k8s.io/sig-storage/csi-attacher:v4.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.6.0

v1.16+

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

storage-backend-sidecar

storage-backend-sidecar:4.6.0

v1.16+

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

huawei-csi-driver

huawei-csi:4.6.0

v1.16+

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

huawei-csi-extender

huawei-csi-extender:4.6.0

v1.16+

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


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