为ECI实例挂载ConfigFile数据卷

ConfigFile数据卷是一种用于存储配置文件的数据卷,可以向ECI实例注入配置数据。本文介绍如何为ECI实例挂载ConfigFile数据卷。

使用限制

ConfigFile数据卷中,单个配置文件不能大于32 KB,多个配置文件的总和不能大于60 KB。

配置说明(OpenAPI)

调用CreateContainerGroup接口创建ECI实例时,您可以通过Volume相关参数声明数据卷,然后通过Container.VolumeMount相关参数为容器挂载数据卷。相关参数说明如下,更多信息,请参见CreateContainerGroup

声明数据卷

通过Volume相关参数声明数据卷时,需要先明确Volume的名称和类型。再根据Volume.N.Type的取值,进一步配置该类型数据卷的相关参数。

名称

类型

示例值

描述

Volume.N.Name

String

test-volume

数据卷名称。

Volume.N.Type

String

ConfigFileVolume

取值为ConfigFileVolume,表示声明一个ConfigFile类型的数据卷。

Volume.N.ConfigFileVolume.ConfigFileToPath.N.Path

String

test/config-test.cnf

相对于挂载目录,配置文件所在的相对文件路径。

Volume.N.ConfigFileVolume.ConfigFileToPath.N.Content

String

bGl1bWk=

配置文件内容。需要将内容进行Base64编码。

Volume.N.ConfigFileVolume.DefaultMode

Integer

0644

配置文件的默认权限,采用四位八进制数表示。

例如0644表示权限为-rw-r--r--,0对应-,表示文件类型为普通文件,644对应后续9位字符,表示3组权限,即用户权限为rw-,用户所在组权限为r--,其他用户权限为r--

权限说明如下:

  • ---:没有任何权限,八进制值为0。

  • --x:只有执行权限,八进制值为1。

  • -w-:只有写入权限,八进制值为2。

  • -wx:有写入和执行权限,八进制值为3。

  • r--:只有读取权限,八进制值为4。

  • r-x:有读取和执行权限,八进制值为5。

  • rw-:有读取和写入权限,八进制值为6。

  • rwx:具有读取、写入和执行权限,八进制值为7。

Volume.N.ConfigFileVolume.ConfigFileToPath.N.Mode

Integer

0644

配置文件的权限,如果没有设置,则采用ConfigFileVolume.DefaultMode的值。采用四位八进制数表示。

例如0644表示权限为-rw-r--r--,0对应-,表示文件类型为普通文件,644对应后续9位字符,表示3组权限,即用户权限为rw-,用户所在组权限为r--,其他用户权限为r--

权限说明如下:

  • ---:没有任何权限,八进制值为0。

  • --x:只有执行权限,八进制值为1。

  • -w-:只有写入权限,八进制值为2。

  • -wx:有写入和执行权限,八进制值为3。

  • r--:只有读取权限,八进制值为4。

  • r-x:有读取和执行权限,八进制值为5。

  • rw-:有读取和写入权限,八进制值为6。

  • rwx:具有读取、写入和执行权限,八进制值为7。

挂载数据卷

声明数据卷后,可以通过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:该卷不感知任何后续在此卷或其子目录上执行的挂载操作。

  • HostToContainer:该卷将会感知到后续在此卷或其子目录上的挂载操作。

  • Bidirectional:和HostToContainer类似,能感知挂载操作。另外,该卷将被传播回宿主机和使用同一卷的所有ECI实例的所有容器。

默认值:None。

说明

Init容器也支持挂载数据卷,参数与上表类似,只需要将Container改为InitContainer。

配置说明(控制台)

通过弹性容器实例售卖页创建ECI实例时,您可以在容器组配置区域声明数据卷,然后在容器配置区域,将数据卷挂载到容器中。

声明数据卷

  1. 容器组配置区域,展开高级配置

  2. 存储处选择配置项页签,单击添加

  3. 配置ConfigFile数据卷的相关参数。

    • 名称:ConfigFile数据卷的名称。

    • 配置文件Path:配置文件所在的相对文件路径。

    • 文件内容:配置文件的内容。请明文输入,控制台会自动进行Base64编码。

    配置项

挂载数据卷

  1. 容器配置区域选择容器,展开该容器的高级配置。

  2. 打开存储开关后单击添加。

    此处可添加的数据卷为配置容器组时声明的数据卷。

    配置项2

说明

如果要为多个容器挂载数据卷,请选择其他容器,重复上述操作。

配置示例

调用CreateContainerGroup接口创建ECI实例,并为其挂载ConfigFile数据卷。参数示例如下,更多信息,请参见CreateContainerGroup

ContainerGroupName=test-configfile
#声明数据卷
Volume.1.Name=configfile-demo
Volume.1.Type=HostPathVolume
Volume.1.ConfigFileVolume.ConfigFileToPath.1.Path=test/config-test.cnf
Volume.1.ConfigFileVolume.ConfigFileToPath.1.Content=c2VydmVyLnBvcnQgPSA4MDgw
Volume.1.ConfigFileVolume.DefaultMode=0644
#为容器挂载数据卷
Container.1.Name=nginx
Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
Container.1.VolumeMount.1.Name=configfile-demo
Container.1.VolumeMount.1.MountPath=/data