(已弃用)挂载云盘
云盘是阿里云提供的数据块级别的存储产品,具有低时延、高性能、持久性、高可靠等特点。您可以通过FlexVolume在自建的Kubernetes集群使用阿里云云盘作为Volume。本文为您介绍如何使用非PVC方式,挂载云盘到ECI Pod上。
前提条件
自建Kubernetes集群中已部署VNode。
如果您的Kubernetes集群部署在线下IDC,请确保已打通IDC与阿里云的网络。
注意事项
挂载云盘时,请注意以下事项:
云盘为非共享存储,一个云盘只能挂载到一个Pod。
云盘只能挂载到相同可用区的VNode节点下的ECI Pod,不支持跨可用区挂载。
随Pod创建并挂载云盘
准备YAML。
将以下内容保存为test-flex-disk.yaml。
apiVersion: v1 kind: Pod metadata: name: test-flex-disk labels: alibabacloud.com/eci: "true" spec: nodeSelector: k8s.aliyun.com/vnode: "true" tolerations: - key: k8s.aliyun.com/vnode operator: "Equal" value: "true" effect: "NoSchedule" containers: - image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 name: test-container volumeMounts: - mountPath: /cache-test name: cache-volume volumes: - name: cache-volume flexVolume: driver: alicloud/disk fsType: ext4 options: volumeSize: "20" tags: "test:eci"
options中支持设置的云盘属性参数如下表所示:
参数
描述
volumeSize
必填参数。云盘大小,单位为GiB。取值范围为20~32768。
说明如果基于快照创建云盘(配置了snapshotid参数),则实际创建的云盘大小为以下两者的较大值:
此处配置的值
快照来源云盘大小
performanceLevel
云盘性能等级。默认采用ESSD云盘,暂不支持指定云盘类型。更多信息,请参见ESSD云盘。
deleteWithInstance
是否随实例释放云盘,默认为true。
encrypted
是否加密云盘,默认为false。更多信息,请参见加密概述。
kmsKeyId
加密云盘时,云盘使用的KMS密钥ID。
tags
云盘要绑定的标签(Tag),最多可以绑定20个。格式为
"tagkey1:tagvalue1,tagkey2:tagvalue2"
。snapshotid
快照ID。快照是某一时间点云盘数据状态的备份文件,基于快照创建的云盘可以获取快照来源云盘包含的数据。更多信息,请参见快照概述。
重要如果快照来源云盘已创建过分区,则不支持使用该快照创建云盘挂载到ECI Pod。
创建Pod,同时创建并挂载云盘。
kubectl create -f test-flex-disk.yaml
查看结果。
查看Pod信息。
kubectl get pods -o wide
预期返回:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES test-flex-disk 1/1 Running 0 19s 172.16.XX.XXX cn-beijing.vnd-2zedtmwhcv8kbuou**** <none> <none>
查看Pod中的文件目录,可以看到已生成云盘对应的挂载目录
/cache-test
。查看云盘。
登录ECS管理控制台,选择VNode所在地域,在云盘页面,您可以看到系统已自动创建云盘,该云盘名称为cache-volume,大小为20 GiB 。
挂载已有云盘
获取云盘信息。
说明如果您使用已有云盘,请确保该云盘所属的地域和可用区与VNode一致,且该云盘未进行分区格式化。
登录ECS管理控制台。
选择VNode所在地域。
在云盘页面,找到已有云盘,记录云盘ID。
同一云盘不支持挂载到多个Pod,请确保已有云盘的状态为待挂载。
准备YAML。
将以下内容保存为disk-test-flex.yaml。
apiVersion: v1 kind: Pod metadata: name: disk-test-flex. labels: alibabacloud.com/eci: "true" spec: nodeSelector: k8s.aliyun.com/vnode: "true" tolerations: - key: k8s.aliyun.com/vnode operator: "Equal" value: "true" effect: "NoSchedule" containers: - image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 name: test-container volumeMounts: - mountPath: /cache-test name: cache-volume volumes: - name: cache-volume flexVolume: driver: alicloud/disk fsType: ext4 options: volumeSize: "20" volumeId: d-2zegp8jd93m7j3hr****
在options中必须通过volumeId指定要挂载的云盘,即云盘ID。
创建ECI Pod并挂载云盘。
kubectl create -f disk-test-flex.yaml
查看结果。
查看Pod信息。
kubectl get pods -o wide
预期返回:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES disk-test-flex 1/1 Running 0 38s 172.16.XX.XXX cn-beijing.vnd-2zedtmwhcv8kbuou**** <none> <none>
查看Pod中的文件目录,可以看到已生成云盘对应的挂载目录
/cache-test
。查看云盘。
登录ECS管理控制台,选择VNode所在地域,在云盘页面,您可以看到云盘的状态已变更为使用中。