ディスクは、Alibaba Cloudが提供するブロックレベルのストレージ製品です。ディスクは、低レイテンシ、高パフォーマンス、高耐久性、高信頼性を備えています。FlexVolumeプラグインを使用して、ディスクをボリュームとしてエラスティックコンテナインスタンスにマウントできます。このトピックでは、ディスクボリュームをエラスティックコンテナインスタンスにマウントする方法について説明します。
注意事項
従量課金制ディスクのみマウントできます。詳細については、EBSデバイスを参照してください。
ディスクは共有できません。ディスクは1つのインスタンスにのみマウントできます。
エラスティックコンテナインスタンスには最大6つのディスクボリュームをマウントできます。
ディスクがマウントされるインスタンスは、ディスクと同じゾーンに存在する必要があります。
マルチマウント機能が有効になっているNVMeディスクは、エラスティックコンテナインスタンスにマウントできません。
パーティションを持つディスクはマウントできません。
構成の説明
CreateContainerGroup APIオペレーションを呼び出してエラスティックコンテナインスタンスを作成する場合、ボリューム関連のパラメータを使用してボリュームを指定し、次にContainer.VolumeMount関連のパラメータを使用してボリュームをコンテナにマウントできます。以下の部分では、関連するパラメータについて説明します。詳細については、CreateContainerGroupを参照してください。
マウントするボリュームの指定
ボリューム関連のパラメータを使用してボリュームを指定する場合、最初にボリュームのタイプと名前を指定する必要があります。次に、Volume.N.Typeパラメータの値に基づいて、他のボリューム関連のパラメータを構成する必要があります。
パラメータ | タイプ | 例 | 説明 |
Volume.N.Name | String | disk-demo | ボリュームNの名前。 |
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"} | Volume.N.TypeパラメータをFlexVolumeに設定したときのオプション。各オプションはJSON文字列のキーと値のペアです。 FlexVolumeプラグインを使用してディスクをマウントする場合、このパラメータはディスクボリュームの構成パラメータを表します。以下のパラメータを構成できます。 重要 volumeIdパラメータを指定しない場合は、volumeSizeパラメータを指定する必要があります。volumeIdパラメータを指定した場合、volumeSizeなどのディスクの属性パラメータの値は無視されます。
|
ボリュームのマウント
ボリュームを指定した後、VolumeMount関連のパラメータを使用してボリュームをコンテナにマウントできます。
パラメータ | タイプ | 例 | 説明 |
Container.N.VolumeMount.N.Name | String | test-volume | コンテナNにマウントされるボリュームNの名前。この値はVolume.N.Nameの値です。 |
Container.N.VolumeMount.N.MountPath | String | /usr/share | ボリュームNがマウントされるディレクトリ。 このディレクトリ下のデータは、ボリューム上のデータによって上書きされます。この値が正しいことを確認してください。 |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | ボリュームのサブディレクトリ。このパラメータは、インスタンスがコンテナの異なるサブディレクトリにマウントできる同じボリュームの異なるサブディレクトリを指定します。 |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | マウントディレクトリを読み取り専用にするかどうかを指定します。デフォルト値:false。 |
Container.N.VolumeMount.N.MountPropagation | String | None | ボリュームNのマウント伝播設定。マウント伝播を使用すると、1つのコンテナにマウントされているボリュームを、同じエラスティックコンテナインスタンス内の他のコンテナ、または同じホスト上の他のエラスティックコンテナインスタンスに共有できます。有効な値:
デフォルト値:None。 |
ボリュームはinitコンテナにもマウントできます。必要なパラメータは、前の表のパラメータと似ています。ContainerをInitContainerに変更するだけです。
構成例
CreateContainerGroup APIオペレーションを呼び出してエラスティックコンテナインスタンスを作成し、ディスクをボリュームとしてインスタンスにマウントします。以下の部分では、パラメータについて説明します。詳細については、CreateContainerGroupを参照してください。
例1:(静的に)既存のディスクを指定する
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
説明既存のディスクを静的に指定する場合、指定されたディスクはPending状態であり、エラスティックコンテナインスタンスと同じゾーンにある必要があります。
例2:(動的に)新しいディスクを作成する
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