1 - 通信矩阵

源设备

CSI controller所在主机

CSI controller所在主机

CSI node所在主机

Kubernetes master节点

源IP

源设备IP

源设备IP

源设备IP

源设备IP

源端口

1024~65536

1024~65536

1024~65536

1024~65536

目的设备

存储设备

CSI controller所在主机

CSI node所在主机

CSI controller所在主机

目的IP

存储阵列管理IP

目的设备IP

目的设备IP

目的设备IP

目的端口(监听)

8088

9808

9800

4433

协议

TCP

TCP

TCP

TCP

端口说明

用于卷创建/管理/删除等一系列动作

用于Kubernetes对CSI controller的健康检查

用于Kubernetes对CSI node的健康检查

用于调用webhook校验

监听端口是否可更改

认证方式

用户名/密码

证书认证

证书认证

证书认证

加密方式

TLS 1.3/TLS 1.2

TLS 1.3/TLS 1.2

TLS 1.3/TLS 1.2

TLS 1.3/TLS 1.2

所属平面

OM

运维面

运维面

运维面

特殊场景

备注

源端口部分放开即可

-

-

可参考CSI用户指南修改webhook端口

2 - 配置自定义权限

自定义角色配置

针对不同的存储资源,请参考以下配置:

  • NAS相关资源请参考 表1 配置最小权限。
  • SAN相关资源请参考 表2 配置最小权限。


可参考存储文档:《 OceanStor Dorado 6000, Dorado 18000系列 产品文档 》配置自定义角色权限。

表 1 NAS相关资源最小权限说明

权限对象

父级对象

读写权限

功能说明

workload_type

file_storage_service

只读

查询应用类型

file_system

file_storage_service

读写

管理文件系统

fs_snapshot

file_storage_service

读写

管理文件系统快照

quota

file_storage_service

读写

管理文件系统配额

nfs_service

file_storage_service

只读

查询NFS服务

share

file_storage_service

读写

管理NFS共享

dtree

file_storage_service

读写

管理dtree

hyper_metro_pair

hyper_metro

读写

创建文件系统双活Pair

hyper_metro_domain

hyper_metro

只读

查询文件系统双活域信息

remote_device

local_data_protection

只读

查询远端设备信息

storage_pool

pool

只读

查询存储池信息

smart_qos

resource_performance_tuning

读写

管理SmartQoS策略

system

system

只读

查询存储设备信息(仅所属组为系统组时需要配置)

vstore

vstore

只读

查询租户信息

port

network

只读

查询逻辑端口信息

表 2 SAN相关资源最小权限说明

权限对象

父级对象

读写权限

功能说明

remote_device

local_data_protection

只读

查询远端设备信息

hyper_clone

local_data_protection

读写

管理Clone Pair

lun_snapshot

local_data_protection

读写

管理LUN快照

workload_type

lun

只读

查询应用类型

lun

lun

读写

管理LUN

host

mapping_view

读写

管理主机

host_group

mapping_view

读写

管理主机组

initiator

mapping_view

读写

管理启动器

lun_group

mapping_view

读写

管理LUN组

mapping_view

mapping_view

读写

管理映射视图

target

mapping_view

只读

查询iSCSI启动器

port

network

只读

查询逻辑端口

storage_pool

pool

只读

查询存储池信息

smart_qos

resource_performance_tuning

读写

管理SmartQoS策略

system

system

只读

查询存储设备信息(仅所属组为系统组时需要配置)

vstore

vstore

只读

查询租户信息

3 - 华为CSI资源管理

本章节列举了华为CSI插件中每个容器所使用的资源请求和限制。其中单位说明请参考 Kubernetes 中的资源单位

表 1 容器资源请求和限制

Pod 名称

容器名称

CPU 请求

CPU 限制

Memory 请求

Memory 限制

huawei-csi-controller

huawei-csi-driver

50m

500m

128Mi

1Gi

storage-backend-sidecar

50m

300m

128Mi

512Mi

storage-backend-controller

50m

300m

128Mi

512Mi

huawei-csi-extender

50m

300m

128Mi

512Mi

csi-attacher

50m

300m

128Mi

512Mi

csi-provisioner

50m

300m

128Mi

512Mi

csi-resize

50m

300m

128Mi

512Mi

csi-snapshotter

50m

300m

128Mi

512Mi

snapshot-controller

50m

300m

128Mi

512Mi

liveness-probe

10m

100m

128Mi

128Mi

huawei-csi-node

huawei-csi-driver

50m

500m

128Mi

1Gi

csi-node-driver-registrar

50m

300m

128Mi

128Mi

liveness-probe

10m

100m

128Mi

128Mi

修改资源请求和限制

如果需要修改容器的资源请求和限制,以Helm安装华为CSI为例,可参考以下步骤

  1. 使用Helm安装时进入/helm/esdk/templates 目录。手动部署时需要修改的文件在/manual/esdk/deploy目录,其中组件包路径请参考 表1

  2. 修改部署模板文件。

    • Pod名称为huawei-csi-controller时,修改huawei-csi-controller.yaml文件。
    • Pod名称为huawei-csi-node时,修改huawei-csi-node.yaml文件。


    Pod名称的分类,请参考 表1

    以修改Pod名称为huawei-csi-node中huawei-csi-driver容器的资源请求为例,执行命令编辑配置文件,找到spec.template.spec.containes.name为huawei-csi-driver的容器。按需修改资源请求和限制。

    vi huawei-csi-node.yaml
    

    编辑如下内容。

    containers
     - name: huawei-csi-driver
       ...
       resources:
         limits:
           cpu: 500m
           memory: 1Gi
         requests:
           cpu: 50m
           memory: 128Mi
    
  3. 若华为CSI未安装,则参考 Kubernetes、OpenShift、Tanzu安装华为CSI 章节安装华为CSI后,资源请求和限制的修改生效。

  4. 若已安装华为CSI,则参考 升级华为CSI 章节更新华为CSI后,资源请求和限制的修改生效。

4 - Kubernetes特性矩阵

本章节说明华为CSI在不同Kubernetes版本下支持的特性。

表 1 Kubernetes版本与支持的特性

特性

V1.16

V1.17

V1.18

V1.19

V1.20

V1.21+

Static Provisioning

Dynamic Provisioning

Manage Provisioning1

Expand Persistent Volume

Create VolumeSnapshot

x

x

x

x

Restore VolumeSnapshot

x

x

x

x

Delete VolumeSnapshot

x

x

x

x

Clone Persistent Volume

x

Modify Volume2

Raw Block Volume

Topology

Generic Ephemeral Inline Volumes

x

x

x

x

x

Volume Limits

x

FSGroup Support

x

x

x

x

  • 注释1 Manage Provisioning是华为CSI自定义的纳管卷特性,该特性支持将已有存储资源纳管至Kubernetes。不允许将一个存储资源纳管多次和针对同一个存储资源进行并发删除/创建操作。当同一个存储资源被多个集群纳管时,在单个集群中针对该纳管卷的操作仅在当前集群内生效,不会同步到其他集群中,需要使用者自行在其他集群中对该纳管卷进行数据同步操作。
  • 注释2 Modify Volume是华为CSI自定义的PVC变更特性,该特性支持将普通卷变更为双活卷,使用该特性需要对接存储支持卷双活特性。