通过Helm配置存储拓扑感知
操作步骤
使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。
进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考表 软件包组件描述。
进入后端服务配置目录/examples/backend/下,备份backend.yaml文件
cp backend.yaml backend.yaml.bak
执行vi backend.yaml命令打开文件,按需求配置拓扑感知,示例如下所示。修改完成后,按Esc,并输入 :wq!,保存修改。
storage: "oceanstor-san" name: "dorado-iscsi-155" namespace: "huawei-csi" urls: - "https://192.168.129.155:8088" pools: - "StoragePool001" parameters: protocol: "iscsi" portals: - "10.10.30.20" - "10.10.30.21" supportedTopologies: - { "topology.kubernetes.io/region": "China-west", "topology.kubernetes.io/zone": "ChengDu" } - { "topology.kubernetes.io/region": "China-south","topology.kubernetes.io/zone": "ShenZhen" } maxClientThreads: "30"
执行以下命令删除待修改存储后端,其中“dorado-iscsi-155”为存储后端名称。
oceanctl delete backend dorado-iscsi-155 -n huawei-csi
执行以下命令创建存储后端。
oceanctl create backend -f ../examples/backend/backend.yaml -i yaml
根据命令提示输入存储用户名和密码。
Please enter this backend user name:admin Please enter this backend password:
执行vi StorageClass.yaml命令,修改yaml文件。按I或Insert进入编辑状态,在yaml文件下增加相关参数,详细参数说明请参见表 参数说明。修改完成后,按Esc,并输入 :wq! ,保存修改。
在StorageClass.yaml文件中添加以下配置项。拓扑
示例1: 在StorageClass中配置zone和region信息
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: example-storageclass provisioner: csi.huawei.com parameters: volumeType: lun allocType: thin volumeBindingMode: WaitForFirstConsumer allowedTopologies: - matchLabelExpressions: - key: topology.kubernetes.io/zone values: - ChengDu - key: topology.kubernetes.io/region values: - China-west
示例2: 在StorageClass中配置协议信息
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: protocol-example-storageclass provisioner: csi.huawei.com parameters: volumeType: lun allocType: thin volumeBindingMode: WaitForFirstConsumer allowedTopologies: - matchLabelExpressions: - key: topology.kubernetes.io/protocol.iscsi values: - csi.huawei.com
表 1 参数说明
可配置“WaitForFirstConsumer”或“Immediate”
“WaitForFirstConsumer”:表示延迟PersistentVolume的绑定和调配,直到创建使用PVC的Pod。
“key”:可支持配置“topology.kubernetes.io/zone”,“topology.kubernetes.io/region”,
topology.kubernetes.io/protocol.<protocol>, 其中<protocol>为协议类型, 例如:iscsi, fc, nfs等。
“key”如果是“topology.kubernetes.io/zone”,“topology.kubernetes.io/region”,“value”值需要和前提条件中设置的拓扑标签保持一致。
“key”如果是topology.kubernetes.io/protocol.<protocol>, “value”值固定为“csi.huawei.com”
执行以下命令,基于该yaml文件创建StorageClass。
kubectl create -f StorgeClass.yaml
使用该StorageClass创建具有拓扑能力的PVC,详细操作请参考动态卷供应PVC参数说明。