云盘是阿里云提供的数据块级别的存储产品,具有低时延、高性能、持久性、高可靠等特点。通过FlexVolume插件,ECI支持挂载云盘作为数据卷。本文介绍如何为ECI实例挂载云盘数据卷。
使用限制
待挂载的云盘必须是按量付费。更多信息,请参见块存储计费。
云盘为非共享存储,一个云盘只能挂载到一个实例上。
一个ECI实例最多可以挂载6个云盘数据卷。
云盘只能挂载到相同可用区的实例上,不支持跨可用区挂载。
不支持挂载开启多重挂载功能的云盘(即NVMe共享盘)。
不支持挂载已创建分区的云盘。
配置说明
调用CreateContainerGroup接口创建ECI实例时,您可以通过Volume相关参数声明数据卷,然后通过Container.VolumeMount相关参数为容器挂载数据卷。相关参数说明如下,更多信息,请参见CreateContainerGroup。
声明数据卷
通过Volume相关参数声明数据卷时,需要先明确Volume的名称和类型。再根据Volume.N.Type的取值,进一步配置该类型数据卷的相关参数。
名称 | 类型 | 示例值 | 描述 |
Volume.N.Name | String | disk-demo | 数据卷名称。 |
Volume.N.Type | String | FlexVolume | 取值为FlexVolume,表示创建一个通过FlexVolume插件挂载的数据卷。 |
Volume.N.FlexVolume.Driver | String | alicloud/disk | 使用FlexVolume插件挂载数据卷时的驱动类型。目前支持 |
Volume.N.FlexVolume.FsType | String | ext4 | 文件系统类型。您可以选择以哪种数据类型将数据存储到云盘上,支持的类型包括ext4、ext3、xfs、vfat。默认为ext4。 |
Volume.N.FlexVolume.Options | String | {"volumeSize":"50","tags":"test:eci"} | FlexVolume对象选项列表。为键值对形式,采用JSON传递。 通过FlexVolume挂载云盘时,Options表示云盘数据卷的配置参数,可配置的参数如下: 重要 当volumeId为空,volumeSize字段为必填;当volumeId有值时,volumeSize等云盘属性相关参数值均会被忽略。
|
挂载数据卷
声明数据卷后,可以通过VolumeMount相关参数将数据卷挂载到容器中。
名称 | 类型 | 示例值 | 描述 |
Container.N.VolumeMount.N.Name | String | test-volume | 要挂载到容器的数据卷的名称,对应Volume.N.Name的值。 |
Container.N.VolumeMount.N.MountPath | String | /usr/share | 挂载目录。 容器挂载目录下的内容会被数据卷的内容直接覆盖,请准确填写。 |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | 数据卷下的子目录。方便实例将同一个数据卷下的不同目录挂载到容器的不同目录。 |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | 挂载目录是否只读。默认为false。 |
Container.N.VolumeMount.N.MountPropagation | String | None | 数据卷的挂载传播设置。挂载传播允许将容器挂载的卷共享到同一ECI实例中的其他容器,甚至可以共享到同一宿主机上的其他ECI实例。取值范围:
默认值:None。 |
Init容器也支持挂载数据卷,参数与上表类似,只需要将Container改为InitContainer。
配置示例
调用CreateContainerGroup接口创建ECI实例,并为其挂载云盘数据卷。所采用的参数示例如下,更多信息,请参见CreateContainerGroup。
示例一:静态
ContainerGroupName=test-disk1 SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** #声明数据卷 Volume.1.Name=disk-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/disk Volume.1.FlexVolume.FsType=ext4 Volume.1.FlexVolume.Options={"volumeId":"d-2zebuamrpar7xnj****"} #为容器挂载数据卷 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=disk-demo Container.1.VolumeMount.1.MountPath=/data
说明静态挂载时,指定的云盘必须处于待挂载状态,且与待创建的ECI实例处于同一可用区。
示例二:动态
ContainerGroupName=test-disk2 #声明数据卷 Volume.1.Name=disk-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/disk Volume.1.FlexVolume.FsType=ext4 Volume.1.FlexVolume.Options={"volumeSize":"50","tags":"test:eci"} #为容器挂载数据卷 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=disk-demo Container.1.VolumeMount.1.MountPath=/data