对接 OceanStor Pacific 存储方案
平台支持对接 OceanStor Pacific 海量存储,在使用本平台界面创建存储资源前,您需要完成一些额外操作。
前提条件
环境准备
- 
OceanStor Pacific 8.1.0 
- 
本平台为 3.7 版本 
网络准备
- 
本平台与 OceanStor Pacific 平台网络互通。 注意:若 OceanStor Pacific 平台的网络与存储网络存在网络隔离,确保 存储集群网络 和 OceanStor Pacific 平台网络 都与本平台网络互通。 
软件准备
- 
下载并解压文件 eSDK_Cloud_Storage_Kubernetes_CSI_Plugin_V2.2.13_X86_64.zip ,解压后将得到以下文件。 - 
bin/huawei-csi:构建镜像需要的二进制文件。
- 
bin/secretGenerate:明文密码加密工具,用于生产 Secret 对象。
- 
bin/secretUpdate:明文密码加密工具,用于更新 Secret 对象。
- 
yamls:后续部署过程中用到的 YAML 示例文件集合。
 
- 
- 
在集群所有使用存储资源的节点中下载并安装 iSCSI 客户端,命令如下 yum install iscsi-initiator-utils。
制作 CSI 镜像
请使用私有镜像仓库地址制作 CSI 镜像,命令参考如下:
docker build -t 100.163.5.65:60080/3rdparty/huawei-csi -f Dockerfile .其中使用的 Dockerfile 文件如下:
FROM ubuntu
ADD ["huawei-csi", "/"]
RUN ["chmod", "+x", "/huawei-csi"]
ENTRYPOINT ["/huawei-csi"]获取 OceanStor Pacific 配置信息
- 
使用账号密码登录 Fusioncompute,获取 iscsi 网卡的相关信息。   
- 
使用账号密码登录 OceanStor Pacific,配置并记录 iscsi IP。     
部署 CSI
创建 Configmap
查看软件准备中已经下载的 YAML 文件,根据以下信息修改配置,修改配置样例:
提示:您需记录 data.csi.json.backends.name 和  data.csi.json.backends.urls 两个值,在 创建 Secret 步骤中将会使用。
kind: ConfigMap
apiVersion: v1
metadata:
  name: huawei-csi-configmap
  namespace: kube-system
data:
  csi.json: |
    {
        "backends": [
            {
                "storage": "fusionstorage-san",
                "name": "huawei-fusionstorage-san",
                "urls": ["https://100.163.5.21:28443"],
                "pools": ["StoragePool0"],
                "parameters": {"protocol": "iscsi", "portals": ["172.21.51.11", "172.21.51.13","172.21.51.17"]}
            }
        ]
    }创建 Secret
- 
执行以下命令赋予 secretGenerate文件执行权限并执行。chmod +x secretGenerate ./secretGenerate
- 
使用 创建 Configmap 步骤中记录的 name 和 url 填写相应字段。完成后您需要填写存储的 user 和 password 用于生成 Secret 对象。 **************************The 1 Backend Info*************************** Current backend name is: <backend-1-name> Current backend url is: [<backend-1-url>] *********************************************************************** Enter backend <backend-1-name>'s user: #请填写存储1的用户名 Enter backend <backend-1-name>'s password: #请填写存储1的密码 Please Enter the password again: #再次填写存储1的密码 *********************Create CSI Secret Successful**********************
- 
执行完毕会在 kube-system下生成secret文件。
部署
根据提示执行以下命令创建资源。
kubectl create -f huawei-csi-rbac.yaml
# 修改文件中的huawei-csi:*.*.*配置项,替换为前面CSI镜像,这里是 100.163.5.65:60080/3rdparty/huawei-csi
kubectl create -f huawei-csi-controller.yaml
 
# 修改 csi 镜像 tag,修改 --volume-use-multipath 的值为 false
kubectl create -f huawei-csi-node.yaml创建存储类
创建存储类 YAML 定义文件,您可以参考软件准备中下载的 YAML 文件示例:fs-sc-for-csi-example.yaml:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: mysc
provisioner: csi.huawei.com
parameters:
  volumeType: fs
  allocType: thin
  authClient: "*"验证
登录本平台,切换至 平台管理,在 存储管理 > 存储类 页面使用名为 mysc 存储类。