Este tópico descreve como montar um volume emptyDir em uma elastic container instance (ECI) para armazenamento temporário e compartilhamento de dados entre containers.
Observações de uso
Um volume emptyDir fornece armazenamento temporário. Os dados nesse volume são excluídos permanentemente caso a instância ECI seja excluída ou reiniciada.
Configuração (API)
Ao chamar a operação da API CreateContainerGroup para criar uma elastic container instance, use os parâmetros relacionados a Volume para especificar volumes e os parâmetros relacionados a Container.VolumeMount para montá-los nos containers. Os parâmetros relevantes estão descritos abaixo. Para mais informações, consulte CreateContainerGroup.
Declarar um volume
Para especificar volumes com os parâmetros relacionados a Volume, defina primeiro os tipos e nomes dos volumes. Em seguida, configure os demais parâmetros de Volume conforme o valor do parâmetro Volume.N.Type.
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
Volume.N.Name |
String |
emptydir-demo |
Nome do volume. |
|
Volume.N.Type |
String |
EmptyDirVolume |
Tipo do volume. Defina como |
|
Volume.N.EmptyDirVolume.Medium |
String |
Memory |
Meio de armazenamento do volume emptyDir. Se este parâmetro estiver vazio, o sistema de arquivos do host será usado por padrão. Valores válidos:
|
|
Volume.N.EmptyDirVolume.SizeLimit |
String |
256Mi |
Tamanho do volume emptyDir. Inclua uma unidade no valor, como |
Para um volume emptyDir com Medium definido como Memory, defina SizeLimit para modificar o tamanho de shm da instância. Após configurar os parâmetros Medium e SizeLimit, monte o volume emptyDir no diretório /dev/shm do container.
Montar volumes
Após especificar os volumes, use os parâmetros relacionados a VolumeMount para montá-los nos containers.
Parâmetro | Tipo | Exemplo | Descrição |
Container.N.VolumeMount.N.Name | String | test-volume | Nome do volume N a ser montado no container N. Este valor corresponde a Volume.N.Name. |
Container.N.VolumeMount.N.MountPath | String | /usr/share | Caminho dentro do container onde o volume será montado. Os dados neste diretório ficam ocultos pelos dados do volume. |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | Subdiretório do volume. Permite montar diferentes subdiretórios do mesmo volume em distintos subdiretórios dos containers. |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | Define se o diretório de montagem é somente leitura. Valor padrão: false. |
Container.N.VolumeMount.N.MountPropagation | String | None | Configuração de propagação de montagem do volume N. A propagação permite compartilhar volumes montados em um container com outros containers na mesma elastic container instance ou até com outras elastic container instances no mesmo host. Valores válidos:
Valor padrão: None. |
Também é possível montar volumes em init containers. Os parâmetros necessários assemelham-se aos da tabela anterior. Basta alterar Container para InitContainer.
Configuração (console)
Ao criar uma elastic container instance na página de compra da Elastic Container Instance, especifique os volumes na seção Container Group Configurations e monte-os nos containers na seção Container Configurations.
Declarar um volume
Na seção Container Group Configurations, expanda Advanced Settings.
Na aba Temporary Directories da seção Storage, clique em Add.
-
Insira um nome para o volume emptyDir.
Por exemplo, insira
emptydir-demono campo Name.
Montar um volume
Na seção Container Configurations, selecione um container e expanda suas configurações avançadas.
-
Ative a chave Storage e clique em Add.
Adicione apenas os volumes declarados durante a configuração do grupo de containers.
Selecione o armazenamento com nome emptydir-demo e tipo Temporary Directories e defina o caminho de montagem no container como
/data.
Para montar volumes em vários containers, selecione mais containers e repita as operações anteriores.
Exemplos
Os exemplos a seguir mostram os parâmetros para chamar a operação CreateContainerGroup a fim de criar uma instância ECI e montar um volume emptyDir nela. Para mais informações, consulte CreateContainerGroup.
-
Exemplo 1: Compartilhar dados entre containers
ContainerGroupName=test-emptydir # Declare a volume Volume.1.Name=emptydir-demo Volume.1.Type=EmptyDirVolume # Mount the volume to container 1 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=emptydir-demo Container.1.VolumeMount.1.MountPath=/data1 # Mount the volume to container 2 Container.2.Name=busybox Container.2.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/busybox:1.30 Container.2.Command.1=sleep Container.2.Arg.1=999999 Container.2.VolumeMount.1.Name=emptydir-demo Container.2.VolumeMount.1.MountPath=/data2Neste exemplo, o Container 1 e o Container 2 compartilham um volume emptyDir. Os diretórios
/data1no Container 1 e/data2no Container 2 começam vazios. Qualquer arquivo adicionado ao volume emptyDir por um dos containers pode ser acessado pelo outro. -
Exemplo 2: Modificar o tamanho de shm de uma instância
ContainerGroupName=test-emptydir # Declare a volume Volume.1.Name=emptydir-shm Volume.1.Type=EmptyDirVolume Volume.1.EmptyDirVolume.Medium=Memory Volume.1.EmptyDirVolume.SizeLimit=256Mi # Mount the volume to container 1 Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=emptydir-shm Container.1.VolumeMount.1.MountPath=/dev/shmNeste exemplo, definir
EmptyDirVolume.MediumcomoMemoryeEmptyDirVolume.SizeLimitcomo256Mi, e então montar o volume emptyDir no diretório/dev/shm, altera o tamanho deshmda instância ECI para 256 MiB.