Compartilhar via


Usar o Armazenamento de Contêineres do Azure (versão 1.x.x) com o Azure Elastic SAN (versão prévia)

O Armazenamento de Contêineres do Azure é um serviço de gerenciamento de volume, implantação e orquestração baseado em nuvem criado nativamente para contêineres. O Azure Elastic SAN é uma solução totalmente integrada que simplifica a implantação, a escala, o gerenciamento e a configuração de uma SAN, oferecendo funcionalidades de nuvem internas, como alta disponibilidade.

Este artigo mostra como configurar o Armazenamento de Contêineres do Azure (versão 1.x.x) para usar o Azure Elastic SAN. No final deste artigo, você terá um pod que usa o Elastic SAN como armazenamento.

Importante

Este artigo aborda funcionalidades e recursos disponíveis no Armazenamento de Contêineres do Azure (versão 1.x.x). O Armazenamento de Contêineres do Azure (versão 2.x.x) agora está disponível, mas atualmente só dá suporte ao NVMe local para o armazenamento de backup.

Pré-requisitos

  • Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

  • Este artigo requer a versão mais recente da CLI do Azure. Consulte Como instalar a CLI do Azure. Se você estiver usando o ambiente bash no Azure Cloud Shell, provavelmente a versão mais recente já está instalada. Se você planeja executar os comandos localmente em vez de no Azure Cloud Shell, certifique-se de executá-los com privilégios administrativos. Para obter mais informações, confira Introdução ao Azure Cloud Shell.

  • Você precisará do cliente de linha de comando do Kubernetes, kubectl. Ele já está instalado se você estiver usando o Azure Cloud Shell ou se você puder instalá-lo localmente executando o comando az aks install-cli.

  • Verifique se a região de destino tem suporte nas regiões do Armazenamento de Contêineres do Azure.

  • Verifique se você tem uma função de Proprietário do Armazenamento de Contêiner do Azure ou uma função de Colaborador de Armazenamento de Contêiner do Azure em sua assinatura. A função Colaborador de Armazenamento de Contêiner do Azure concede permissões necessárias para executar ações de extensão do Azure Arc e gravar e excluir recursos. A função Proprietário do Armazenamento de Contêiner do Azure concede as mesmas permissões e permite que você gerencie volumes de SAN elástico fora do cluster. Para fazer essa alteração, acesse sua página de assinatura no portal do Azure. Selecione Controle de Acesso (IAM) > Adicionar atribuição de função e pesquise "Proprietário do Armazenamento de Contêiner do Azure" ou "Colaborador de Armazenamento de Contêiner do Azure" na guia Funções de trabalho. Selecione Exibir > Atribuições > Adicionar atribuição e adicione sua conta.

  • Para usar o Armazenamento de contêineres do Azure com o Azure Elastic SAN (versão prévia), seu cluster do AKS deve ter um pool de nós de pelo menos três VMs de uso geral, como standard_d4s_v5 para os nós de cluster, cada uma com um mínimo de quatro vCPUs (CPUs virtuais).

Limitações

Atualmente, os recursos a seguir não são suportados quando você usa o Armazenamento de Contêineres do Azure para implantar e orquestrar um Elastic SAN.

  • Instantâneos de volume
  • Expansão do pool de armazenamento

Disponibilidade regional

O Armazenamento de Contêineres do Azure só está disponível para um subconjunto de regiões do Azure:

  • (Africa) Norte da África do Sul
  • (Pacífico Asiático) Leste da Austrália
  • (Pacífico Asiático) Leste da Ásia
  • (Pacífico Asiático) Leste do Japão
  • (Pacífico Asiático) Coreia Central
  • (Pacífico Asiático) Sudeste da Ásia
  • (Pacífico Asiático) Índia Central
  • (Europa) França Central
  • (Europa) Centro-Oeste da Alemanha
  • (Europa) Norte da Europa
  • (Europa) Oeste da Europa
  • (Europa) Sul do Reino Unido
  • (Europa) Suécia Central
  • (Europa) Norte da Suíça
  • (Oriente Médio) Norte dos EAU
  • (América do Norte) Leste dos EUA
  • (América do Norte) Leste dos EUA 2
  • (América do Norte) Oeste dos EUA
  • (América do Norte) Oeste dos EUA 2
  • (América do Norte) Oeste dos EUA 3
  • (América do Norte) EUA Central
  • (América do Norte) Centro-Norte dos EUA
  • (América do Norte) Centro-Sul dos EUA
  • (América do Norte) Centro-Oeste dos EUA
  • (América do Norte) Canadá Central
  • (América do Norte) Leste do Canadá
  • (América do Sul) Sul do Brasil

Criar e vincular volumes persistentes

Siga estas etapas para criar e anexar um volume persistente.

1. Criar um pool de armazenamento

Primeiro, crie um pool de armazenamento, que é um agrupamento lógico de armazenamento para o cluster do Kubernetes, definindo-o em um arquivo de manifesto YAML.

Se você habilitou o Armazenamento de Contêiner do Azure usando os comandos az aks create ou az aks update, talvez já tenha um pool de armazenamento. Use kubectl get sp -n acstor para obter a lista de pools de armazenamento. Se já houver um pool de armazenamento disponível que queira usar, pule esta seção e prossiga para Exibir as classes de armazenamento disponíveis.

Siga estas etapas para criar um pool de armazenamento com o Azure Elastic SAN (versão prévia).

  1. Use seu editor de texto favorito para criar um arquivo de manifesto YAML, como code acstor-storagepool.yaml.

  2. Cole o código a seguir. O valor do nome do pool de armazenamento pode ser o que você quiser. Ajuste armazenamento para refletir a capacidade de armazenamento que você quer em Gi ou Ti e salve o arquivo. Atualmente, o Azure Elastic SAN não oferece suporte ao redimensionamento de volumes ou pools de armazenamento.

    apiVersion: containerstorage.azure.com/v1
    kind: StoragePool
    metadata:
      name: managed
      namespace: acstor
    spec:
      poolType:
        elasticSan: {}
      resources:
        requests: {"storage": 1Ti}
    
  3. Aplique o arquivo de manifesto YAML para criar o pool de armazenamento.

    kubectl apply -f acstor-storagepool.yaml 
    

    Quando a criação do pool de armazenamento for concluída, você verá uma mensagem semelhante à seguinte:

    storagepool.containerstorage.azure.com/managed created
    

    Você também pode executar esse comando para verificar o status do pool de armazenamento. Substitua <storage-pool-name> pelo valor do nome do pool de armazenamento. Para esse exemplo, o valor seria managed.

    kubectl describe sp <storage-pool-name> -n acstor
    

Quando o pool de armazenamento for criado, o Armazenamento de Contêineres do Azure criará uma classe de armazenamento em seu nome, usando a convenção de nomenclatura acstor-<storage-pool-name>. O processo também criará um recurso do Azure Elastic SAN.

2. Exibir as classes de armazenamento disponíveis

Quando o pool de armazenamento estiver pronto para uso, você deverá selecionar uma classe de armazenamento para definir como o armazenamento é criado dinamicamente ao criar declarações de volume persistentes e implantar volumes persistentes.

Execute kubectl get sc para exibir as classes de armazenamento disponíveis. Você deve ver uma classe de armazenamento chamada acstor-<storage-pool-name>.

Importante

Não use a classe de armazenamento marcada como interna. Ela é uma classe de armazenamento interna necessária para que o Armazenamento de Contêineres do Azure funcione.

3. Criar uma declaração de volume persistente

Uma declaração de volume persistente (PVC) é usada para provisionar automaticamente o armazenamento com base em uma classe de armazenamento. Siga essas etapas para criar um PVC usando a nova classe de armazenamento.

  1. Use seu editor de texto favorito para criar um arquivo de manifesto YAML, como code acstor-pvc.yaml.

  2. Cole o seguinte código e salve o arquivo. O valor name do PVC pode ser o que você quiser.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: managedpvc
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: acstor-managed # replace with the name of your storage class if different
      resources:
        requests:
          storage: 100Gi
    
  3. Aplique o arquivo de manifesto YAML para criar o PVC.

    kubectl apply -f acstor-pvc.yaml
    

    Você deve ver uma saída semelhante a:

    persistentvolumeclaim/managedpvc created
    

    Você pode verificar o status do PVC executando o seguinte comando:

    kubectl describe pvc managedpvc
    

Depois que a PVC for criada, ela estará pronta para ser usada por um pod.

4. Implantar um pod e anexar um volume persistente

Crie um pod usando Fio (Testador de E/S Flexível) para benchmarking e simulação de carga de trabalho e especifique um caminho de montagem para o volume persistente. Para claimName, use o valor do nome usado ao criar a declaração de volume persistente.

  1. Use seu editor de texto favorito para criar um arquivo de manifesto YAML, como code acstor-pod.yaml.

  2. Cole o seguinte código e salve o arquivo.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        acstor.azure.com/io-engine: acstor
      volumes:
        - name: managedpv
          persistentVolumeClaim:
            claimName: managedpvc
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: managedpv
    
  3. Aplique o arquivo de manifesto YAML para implantar o pod.

    kubectl apply -f acstor-pod.yaml
    

    Será exibida uma saída semelhante à seguinte:

    pod/fiopod created
    
  4. Verifique se o pod está em execução e se a declaração de volume persistente foi associada com êxito ao pod:

    kubectl describe pod fiopod
    kubectl describe pvc managedpvc
    
  5. Verifique o teste FIO para ver seu status atual:

    kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
    

Agora você implantou um pod que está usando um Elastic SAN como armazenamento e pode usá-lo para suas cargas de trabalho do Kubernetes.

Gerenciar volumes persistentes e pools de armazenamento

Agora que você criou um volume persistente, poderá desvinculá-lo e reanexá-lo conforme necessário. Também é possível excluir um pool de armazenamento.

Desanexar e anexar novamente um volume persistente

Para desanexar um volume persistente, exclua o pod ao qual o volume persistente está anexado. Substitua <pod-name> pelo nome do pod, por exemplo, fiopod.

kubectl delete pods <pod-name>

Para anexar novamente um volume persistente, basta referencia o nome de declaração do volume persistente no arquivo de manifesto YAML, conforme descrito em Implantar um pod e anexar um volume persistente.

Para verificar a qual volume persistente uma declaração de volume persistente está associada, execute kubectl get pvc <persistent-volume-claim-name>.

Excluir um pool de armazenamento

Se você quiser excluir um pool de armazenamento, execute o comando a seguir. Substitua <storage-pool-name> pelo nome do pool de armazenamento.

kubectl delete sp -n acstor <storage-pool-name>

Confira também