云盤是阿里云提供的數據塊級別的存儲產品,具有低時延、高性能、持久性、高可靠等特點。通過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