O NAS é um sistema de arquivos distribuído compartilhado, escalável, altamente confiável e de alto desempenho fornecido pela Alibaba Cloud. Este tópico descreve como montar um volume NAS em uma Elastic Container Instance (ECI).
Observações importantes
A cobrança do NAS baseia-se no uso e oferece suporte aos métodos de pagamento conforme o uso, planos de recursos e SCU. Para mais informações, consulte Visão geral da cobrança do NAS.
O sistema de arquivos NAS deve residir na mesma VPC da instância.
Como o NAS fornece armazenamento compartilhado, é possível montar um único sistema de arquivos NAS em várias instâncias. Caso múltiplas instâncias modifiquem os mesmos dados simultaneamente, sua aplicação precisará gerenciar a sincronização de dados.
Não exclua o ponto de montagem do NAS antes de desmontar o volume NAS. Essa ação pode tornar o sistema operacional irresponsivo.
Preparações
Antes de utilizar o Alibaba Cloud File Storage NAS como volume, crie um sistema de arquivos NAS e um ponto de montagem. Para mais informações, consulte Criar um sistema de arquivos e Gerenciar pontos de montagem.
Detalhes da configuração (API)
Ao chamar a operação de API CreateContainerGroup para criar uma instância de contêiner elástica, utilize os parâmetros relacionados a Volume para especificar volumes e, em seguida, use os parâmetros relacionados a Container.VolumeMount para montar esses volumes nos contêineres. Os parâmetros relevantes estão descritos abaixo. Para mais informações, consulte CreateContainerGroup.
Declarar um volume
Para especificar volumes com parâmetros relacionados a Volume, defina primeiro os tipos e nomes dos volumes. Depois, configure os demais parâmetros de Volume de acordo com o valor do parâmetro Volume.N.Type.
Existem duas formas de declarar um volume NAS:
-
Montar um volume do tipo NFS
Nome
Tipo
Valor de exemplo
Descrição
Volume.N.Name
String
nas-demo
Nome do volume.
Volume.N.Type
String
NFSVolume
Defina como NFSVolume para criar um volume do tipo NFS.
Volume.N.NFSVolume.Server
String
3f9cd4**-na*.cn-shanghai.nas.aliyuncs.com
Endereço do servidor NFS.
Se você usar o Alibaba Cloud File Storage NAS, este será o endereço do ponto de montagem do sistema de arquivos NAS.
Volume.N.NFSVolume.Path
String
/share
Caminho do volume NFS.
Volume.N.NFSVolume.ReadOnly
Boolean
false
Permissão de leitura para o volume NFS. Valores válidos:
-
true: somente leitura
-
false: leitura e escrita
Valor padrão: false.
-
-
Montar um volume usando o plug-in FlexVolume
Nome
Tipo
Valor de exemplo
Descrição
Volume.N.Name
String
nas-demo
Nome do volume.
Volume.N.Type
String
FlexVolume
Defina como FlexVolume para montar um volume usando o plug-in FlexVolume.
Volume.N.FlexVolume.Driver
String
alicloud/nas
Tipo de driver ao montar um volume com o plug-in FlexVolume. Defina como
alicloud/naspara montar o Alibaba Cloud File Storage NAS.Volume.N.FlexVolume.Options
String
{"server":"3f9cd4**-na*.cn-shanghai.nas.aliyuncs.com","path": "/share","vers":"3","options":"nolock,tcp,noresvport"}
Opções de chave-valor para o objeto FlexVolume, passadas como uma string JSON.
Ao montar o NAS via FlexVolume, Options especifica os parâmetros de configuração do volume NAS. É possível configurar os seguintes parâmetros:
-
server: endereço do ponto de montagem do sistema de arquivos NAS.
-
path: subdiretório dentro do caminho do sistema de arquivos NAS, começando com
/.-
Insira um subdiretório existente no sistema de arquivos NAS. Se o subdiretório não existir no diretório raiz, ele será criado antes da montagem.
-
Para sistemas de arquivos NAS Extreme, o subdiretório deve começar com
/share. -
Este parâmetro é opcional. Se omitido, o diretório raiz do sistema de arquivos NAS será montado por padrão.
-
-
vers: versão do protocolo NFS usada para montar o sistema de arquivos NAS. Recomendamos o uso da v3. O NAS Extreme suporta apenas a v3.
-
options: opções personalizadas de montagem para o NAS, formatadas como "xxx,xxx,xxx", por exemplo
nolock,tcp,noresvport.
-
Montar volumes
Após especificar os volumes, utilize os parâmetros relacionados a VolumeMount para montá-los nos contêineres.
Parâmetro | Tipo | Exemplo | Descrição |
Container.N.VolumeMount.N.Name | String | test-volume | Nome do volume N a ser montado no contêiner N. Este valor corresponde a Volume.N.Name. |
Container.N.VolumeMount.N.MountPath | String | /usr/share | Caminho dentro do contêiner 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. Este parâmetro permite que a instância monte diferentes subdiretórios do mesmo volume em distintos subdiretórios dos contêineres. |
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 de montagem permite compartilhar volumes montados em um contêiner com outros contêineres na mesma instância de contêiner elástica ou até mesmo com outras instâncias no mesmo host. Valores válidos:
Valor padrão: None. |
Também é possível montar volumes em contêineres init. Os parâmetros necessários são semelhantes aos da tabela anterior, bastando alterar Container para InitContainer.
Detalhes da configuração (console)
Ao criar uma instância de contêiner elástica na página de compra da Elastic Container Instance, especifique os volumes na seção Container Group Configurations e, em seguida, monte-os nos contêineres na seção Container Configurations.
Declarar um volume
Na seção Container group configuration, expanda Advanced Configuration.
Em Storage, selecione a aba NAS persistent storage e clique em Add.
-
Configure os parâmetros do volume NAS.
Name: nome do volume NAS.
Mount target: ponto de montagem do sistema de arquivos NAS.
Path: caminho no sistema de arquivos NAS a ser montado.
Read-only: permissão de leitura de dados. A leitura e escrita vem ativada por padrão. Selecione somente leitura conforme necessário.
Montar o volume
Na seção Container configuration, selecione um contêiner e expanda sua configuração avançada.
-
Ative o botão Storage e clique em Add.
Os volumes disponíveis são aqueles declarados durante a configuração do grupo de contêineres.
Em Select storage, escolha o volume declarado (por exemplo, nas-demo). Defina o tipo de armazenamento como NAS persistent storage. Insira
/dataem Mount path in container e/testem Subdirectory. Selecione Read-only conforme necessário.
Para montar volumes em vários contêineres, selecione mais contêineres e repita as operações anteriores.
Exemplo de configuração
-
Crie a instância ECI A e monte um volume NAS nela.
O exemplo a seguir mostra os parâmetros usados para chamar a operação CreateContainerGroup e criar a instância A. Para mais informações, consulte CreateContainerGroup.
ContainerGroupName=test-nas-a SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Declare a volume Volume.1.Name=nas-demo Volume.1.Type=NFSVolume Volume.1.NFSVolume.Server=3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com Volume.1.NFSVolume.Path=/share # Mount the volume to a container Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=nas-demo Container.1.VolumeMount.1.MountPath=/data-a -
Conecte-se à instância A e crie um arquivo no diretório de montagem.
Para obter informações sobre como se conectar a uma instância ECI, consulte Conectar-se a uma instância ECI usando o Workbench.
root@test-nas-a:/# cd data-a root@test-nas-a:/data-a# ls root@test-nas-a:/data-a# echo "hello" >test root@test-nas-a:/data-a# ls test root@test-nas-a:/data-a# cat test hello Exclua a instância A.
-
Crie a instância ECI B e monte o mesmo volume NAS nela.
ContainerGroupName=test-nas-b SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Declare a volume Volume.1.Name=nas-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/nas Volume.1.FlexVolume.Options={"server":"3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com","path": "/share"} # Mount the volume to a container Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=nas-demo Container.1.VolumeMount.1.MountPath=/data-b -
Conecte-se à instância B e verifique o arquivo no diretório de montagem.
Como ambas as instâncias (A e B) montam o mesmo volume NAS — e o NAS fornece armazenamento persistente — o arquivo criado pela instância A permanece acessível através da instância B mesmo após a exclusão da instância A.
root@test-nas-b:/# cd data-b root@test-nas-b:/data-b# ls test root@test-nas-b:/data-b# cat test hello