Partilhar via


Usar o Armazenamento de Contêiner do Azure com a SAN Elástica do Azure (visualização)

O Armazenamento de Contêineres do Azure é um serviço de gerenciamento, implantação e orquestração de volumes baseado em nuvem criado nativamente para contêineres. O Azure Elastic SAN é uma solução totalmente integrada que simplifica a implantação, o dimensionamento, o gerenciamento e a configuração de uma SAN, além de oferecer recursos internos de nuvem, como alta disponibilidade.

Como um recurso de visualização, você pode configurar o Armazenamento de Contêiner do Azure para usar o Azure Elastic SAN. Este artigo aborda como fazer essa configuração. No final deste artigo, você terá um pod que está usando o Elastic SAN como armazenamento.

Pré-requisitos

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

  • Este artigo requer a versão mais recente (2.35.0 ou posterior) da CLI do Azure. Consulte Como instalar a CLI do Azure. Se você estiver usando o ambiente Bash no Azure Cloud Shell, 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, consulte 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 puder instalá-lo localmente executando o az aks install-cli comando.

  • Se você ainda não instalou o Armazenamento de Contêiner do Azure, siga as instruções em Usar o Armazenamento de Contêiner do Azure com o Serviço Kubernetes do Azure.

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

  • Certifique-se de ter uma função de Proprietário do Armazenamento de Contêiner do Azure ou de Colaborador do Armazenamento de Contêiner do Azure em sua assinatura. Qualquer uma dessas funções concede permissões que permitem que o Armazenamento de Contêiner do Azure se comunique com o recurso SAN Elástico. Para fazer essa alteração, vá para sua página de assinatura no portal do Azure. Selecione Controle de > acesso (IAM) > Adicionar atribuição de função e procure "Proprietário do Armazenamento de Contêiner do Azure" ou "Colaborador do Armazenamento de Contêiner do Azure" na guia Funções da função de trabalho. Selecione Ver > Atribuições Adicionar atribuição e adicionar a sua conta.

  • Para usar o Armazenamento de Contêiner do Azure com o Azure Elastic SAN (visualização), seu cluster 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 do cluster, cada uma com um mínimo de quatro CPUs virtuais (vCPUs).

Limitações

Os recursos a seguir não são suportados atualmente quando você usa o Armazenamento de Contêiner do Azure para implantar e orquestrar uma SAN elástica.

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

Disponibilidade regional

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

  • (África) África do Sul Norte
  • (Ásia-Pacífico) Leste da Austrália
  • (Ásia-Pacífico) Ásia Oriental
  • Leste do Japão (Ásia-Pacífico)
  • (Ásia-Pacífico) Coreia Central
  • (Ásia-Pacífico) Sudeste Asiático
  • (Ásia-Pacífico) Índia Central
  • (Europa) França Central
  • (Europa) Alemanha Centro-Oeste
  • (Europa) Europa do Norte
  • (Europa) Europa Ocidental
  • (Europa) Sul do Reino Unido
  • (Europa) Suécia Central
  • (Europa) Suíça Norte
  • (Médio Oriente) Norte dos Emirados Árabes Unidos
  • (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 centrais
  • (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) Brasil Sul

Criar e anexar 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 seu cluster Kubernetes, definindo-o em um arquivo de manifesto YAML.

Se você habilitou o Armazenamento de Contêiner do Azure usando az aks create comandos or 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 você já tiver um pool de armazenamento disponível que deseja usar, ignore 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 (visualização).

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

  2. Cole o código seguinte. O valor do nome do pool de armazenamento pode ser o que você quiser. Ajuste o armazenamento para refletir a capacidade de armazenamento desejada em Gi ou Ti e salve o arquivo. Atualmente, o Azure Elastic SAN não oferece suporte ao redimensionamento de 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 estiver concluída, você verá uma mensagem como:

    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. Neste exemplo, o valor seria gerenciado.

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

Quando o pool de armazenamento for criado, o Armazenamento de Contêiner do Azure criará uma classe de armazenamento em seu nome usando a convenção acstor-<storage-pool-name>de nomenclatura. Ele 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ê verá uma classe de armazenamento chamada acstor-<storage-pool-name>.

Importante

Não use a classe de armazenamento marcada como interna. É uma classe de armazenamento interno necessária para que o Armazenamento de Contêiner 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 estas 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 código a seguir e salve o arquivo. O valor do PVC name pode ser o que 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
    

    Deverá ver um resultado semelhante a:

    persistentvolumeclaim/managedpvc created
    

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

    kubectl describe pvc managedpvc
    

Uma vez criado, o PVC está pronto para ser usado por um pod.

4. Implante um pod e anexe um volume persistente

Crie um pod usando Fio (Flexible I/O Tester) para benchmarking e simulação de carga de trabalho e especifique um caminho de montagem para o volume persistente. Para claimName, use o valor name que você usou 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 código a seguir 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
    

    Deverá ver um resultado semelhante ao seguinte:

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

    kubectl describe pod fiopod
    kubectl describe pvc managedpvc
    
  5. Verifique o teste de 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 uma SAN elástica 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, pode desanexá-lo e reanexá-lo conforme necessário. Você também pode excluir um pool de armazenamento.

Desanexar e reanexar um volume persistente

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

kubectl delete pods <pod-name>

Para reanexar um volume persistente, basta fazer referência ao nome da declaração de 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á vinculada, execute kubectl get pvc <persistent-volume-claim-name>.

Excluir um pool de armazenamento

Se desejar excluir um pool de armazenamento, execute o seguinte comando. Substitua <storage-pool-name> pelo nome do pool de armazenamento.

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

Consulte também