使用kubectl对接已有云硬盘 操作场景 操作步骤 步骤 1 登录EVS控制台,创建一个EVS云硬盘,记录云硬盘的VolumeID、容量和磁盘类型。 步骤 2 请参见3.4.2 通过kubectl操作CCE集群配置kubectl命令。 步骤 3 新建两个yaml文件,用于创建PersistentVolume(PV)、PersistentVolumeClaim(PVC),假设文件名分别为 pvevsexample.yaml 、 pvcevsexample.yaml 。 touch pvevsexample.yaml pvcevsexample.yaml K8S集群版本(K8S version) 说明 yaml示例 1.15+ 1.15及以上版本的集群 请参见[1.15+ yaml文件配置示例] 1.11.7 ≤ K8S version ≤ 1.13 1.11.7以上及1.13版本集群 请参见[1.11.7~1.13 yaml文件配置示例] 1.11 ≤ K8S version 磁盘”,单击要对接的云硬盘名称进入详情页,在“概览信息”页签下单击“ID”后的复制图标即可获取云硬盘的volumeID。 everest.io/diskmode 云硬盘磁盘模式,取值支持SCSI。 vi pvevsexample.yaml PVC yaml文件配置示例如下: apiVersion: v1kind: PersistentVolumeClaim metadata: labels: failuredomain.beta.kubernetes.io/region: region01 failuredomain.beta.kubernetes.io/zone: AZ01 annotations: everest.io/diskvolumetype: SAS volume.beta.kubernetes.io/storageprovisioner: everestcsiprovisioner name: pvcevsexample namespace: default spec: accessModes: ReadWriteOnce resources: requests: storage: 10Gi volumeName: pvevsexample storageClassName: csidisk 表 关键参数说明 参数 描述 everest.io/diskvolumetype 云硬盘类型,全大写。当前支持高I/O(SAS)、超高I/O(SSD)和普通I/O(SATA),必须和已有PV保持一致。 failuredomain.beta.kubernetes.io/region 集群所在的region。 failuredomain.beta.kubernetes.io/zone EVS云硬盘所在可用区,必须和工作负载规划的可用区保持一致。u欧 storage PVC申请容量,单位为Gi。必须和已有PV的storage大小保持一致。 storageClassName 指定k8s storage class名称。云硬盘需使用“csidisk”。 volumeName PV的名称。 步骤 4 创建PV。 kubectl create f pvevsexample.yaml 步骤 5 创建PVC。 kubectl create f pvcevsexample.yaml 执行成功后,可以在“资源管理 > 存储管理”的云硬盘存储中查看创建的PVC,也可以在EVS页面根据名称查看EVS云硬盘。 步骤 6 (可选)增加集群关联的metadata,确保在删除节点或集群时避免删除已挂载的静态PV关联的EVS盘。 注意: 若不执行本步骤或创建静态PV/PVC时没有执行过本步骤,请务必确保删除节点前,提前将静态PV关联的云硬盘从节点上卸载。 1. 获取租户Token。 2. 获取EVS访问地址EVSENDPOINT。 3.给EVS静态PV关联的EVS盘补充集群关联的metadata。 curl X POST {EVSENDPOINT}/v2/{projectid}/volumes/${volumeid}/metadata insecure d '{"metadata":{"clusterid": "{clusterid}", "namespace": "{pvcnamespace}"}}' H 'Accept:application/json' H 'ContentType:application/json;charsetutf8' H 'XAuthToken:${TOKEN}' 表关键参数说明 参数 描述 EVSENDPOINT EVS访问地址,配置为b中获取的值。 projectid 项目ID。 volumeid 关联EVS盘的ID,配置为步骤2待创建静态PV中的volumeid,也可在EVS控制台,单击待导入的云硬盘名称,在磁盘详情界面的“概览信息”中获取ID的值。 clusterid 待创建EVS PV的集群ID。在CCE控制台中单击“资源管理 > 集群管理”。单击待关联集群的名称,在集群详情页面,即可获取集群ID。 pvcnamespace 待绑定PVC的namespace名称。 TOKEN 用户Token,配置为a中获取的值。 例如,执行如下命令: curl X POST insecure d '{"metadata":{"clusterid": "71e8277e80c711ea925c0255ac100442", "namespace": "default"}}' H 'Accept:application/json' H 'ContentType:application/json;charsetutf8' H 'XAuthToken:MIIPeIsIm1ldG 请求执行完成后,执行如下命令,可查看EVS盘是否已关联集群的metadata。 curl X GET {EVSENDPOINT}/v2/{projectid}/volumes/${volumeid}/metadata insecure H 'XAuthToken:${TOKEN}' 例如,执行如下命令: curl X GET insecure H 'XAuthToken:MIIPeAYJ9t1c31ASaQ' 在回显中就可以看到该EVS盘当前的metadata。 { "metadata": { "namespace": "default", "clusterid": "71e8277e80c711ea925c0255ac100442", "hw:passthrough": "true" } }