Compartilhar via


Tutorial – Implantar o Armazenamento de Contêineres do Azure (versão 1.x.x) em um cluster do AKS

Este tutorial apresenta o Armazenamento de Contêineres do Azure e demonstra como implantar e gerenciar o armazenamento nativo de contêiner para aplicativos em execução no AKS (Serviço de Kubernetes do Azure). Se você não quiser implantar o Armazenamento de Contêineres do Azure agora, ignore este tutorial e prossiga diretamente para Implantar um aplicativo no AKS. Você não precisará do Armazenamento de Contêineres do Azure para o aplicativo de vitrine básico nesta série de tutoriais.

Importante

Este artigo explica como instalar o Armazenamento de Contêineres do Azure (versão 1.x.x), que agora exige explicitamente um parâmetro --container-storage-version 1 de fixação de versão para instalação. O Armazenamento de Contêineres do Azure (versão 2.x.x) agora está disponível.

O Armazenamento de Contêineres do Azure simplifica o gerenciamento de aplicativos com estado no Kubernetes oferecendo armazenamento nativo de contêiner personalizado para uma variedade de cargas de trabalho, incluindo bancos de dados, plataformas de análise e aplicativos de alto desempenho.

Ao final deste tutorial, você vai:

  • Entenda como o Armazenamento de Contêineres do Azure dá suporte a cargas de trabalho diversas no Kubernetes.
  • Explore várias opções de back-end de armazenamento para adaptar o armazenamento às necessidades do aplicativo.
  • Implante o Armazenamento de Contêineres do Azure (versão 1.x.x) no cluster do AKS e crie um volume efêmero genérico.

Antes de começar

Em tutoriais anteriores, você criou uma imagem de contêiner, carregou-a em uma instância do ACR e criou um cluster do AKS. Comece a partir do Tutorial 1 – Preparar o aplicativo para o AKS para seguir adiante.

  • Este tutorial requer o uso da CLI do Azure versão 2.35.0 ou posterior. No momento, o Portal e o PowerShell não têm suporte para o Armazenamento de Contêineres do Azure. Verifique sua versão com az --version. Para instalar ou atualizar, confira Instalar a CLI do Azure. Se você estiver usando o ambiente Bash no Azure Cloud Shell, a versão mais recente já estará instalada.
  • Você deve ter um cluster AKS baseado em Linux existente com pelo menos 3 nós com SKUs de VM otimizadas para armazenamento ou SKUs de VM aceleradas por GPU. Confira o Tutorial 3 – Criar um cluster do AKS.
  • Você precisará do cliente de linha de comando do Kubernetes. kubectl Ele já está instalado se você estiver usando o Azure Cloud Shell ou pode instalá-lo localmente executando o az aks install-cli comando.

Instalar a extensão do Kubernetes

Adicione ou atualize para a versão k8s-extension mais recente executando o comando a seguir.

az extension add --upgrade --name k8s-extension

Conectar-se ao cluster e verificar o estado do nó

Se você ainda não estiver conectado ao cluster do tutorial anterior, execute os comandos a seguir. Se você já estiver conectado, poderá ignorar esta seção.

  1. Execute o comando a seguir para se conectar ao cluster.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Verifique a conexão com o cluster usando o comando kubectl get. Esse comando retorna uma lista dos nós de cluster.

    kubectl get nodes
    
  3. O exemplo de saída a seguir mostra os nós em seu cluster. Verifique se o status de todos os nós mostra Pronto:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.30.9
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.30.9
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.30.9
    

Escolher uma opção de armazenamento de backup

O Armazenamento de Contêineres do Azure (versão 1.x.x) usa pools de armazenamento para provisionar e gerenciar volumes persistentes e genéricos. Ele oferece uma variedade de opções de armazenamento de retaguarda para seus pools de armazenamento, cada uma adequada a cargas de trabalho específicas. Selecionar o tipo de armazenamento correto é essencial para otimizar o desempenho, a durabilidade e a eficiência de custo da carga de trabalho. Para este tutorial, usaremos o Disco Efêmero com NVMe local como armazenamento de backup para criar um volume efêmero genérico. No entanto, também exploraremos as outras opções de armazenamento de suporte que permitem criar volumes persistentes.

Disco Efêmero

O Disco Efêmero utiliza recursos de armazenamento local nos nós do AKS (NVMe local ou SSD temporário). Ele oferece baixa latência de sub ms e alta IOPS, mas nenhuma persistência de dados se a VM for reiniciada. O Disco Efêmero é mais adequado para aplicativos como o Cassandra que priorizam a velocidade em vez da persistência e é ideal para cargas de trabalho com sua própria replicação no nível do aplicativo.

Você pode usar o Disco Efêmero para criar volumes efêmeros genéricos ou volumes persistentes, mesmo que os dados sejam perdidos se a VM for reiniciada.

Discos do Azure

Ideal para bancos de dados como PostgreSQL e MongoDB, o Azure Disks oferece durabilidade, escalabilidade e opções de desempenho de várias camadas, incluindo SSD Premium e SSD Ultra.

Os Discos do Azure permitem o provisionamento automático de volumes de armazenamento e incluem redundância interna e alta disponibilidade.

SAN Elástico do Azure (versão prévia)

Projetada para necessidades de armazenamento compartilhado e bancos de dados de uso geral que exigem escalabilidade e alta disponibilidade, o Azure Elastic SAN é uma boa opção para cargas de trabalho, como pipelines de CI/CD ou processamento de dados em grande escala.

Habilitar o Armazenamento de Contêineres do Azure (versão 1.x.x) e criar um pool de armazenamento

Execute o comando a seguir para instalar o Armazenamento de Contêineres do Azure no cluster e criar um pool de armazenamento NVMe local.

az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk --container-storage-version 1 --storage-pool-option NVMe

A implantação deve levar menos de 15 minutos.

Verificar o status do pool de armazenamento

Quando a implantação for concluída, os componentes do tipo de pool de armazenamento escolhido serão habilitados e você terá um pool de armazenamento padrão.

Para obter a lista de pools de armazenamento disponíveis, execute o seguinte comando:

kubectl get sp -n acstor

Para verificar o status de um pool de armazenamento, execute o seguinte comando:

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

Se o valor Message não for disserStoragePool is ready, o pool de armazenamento ainda estará criando ou encontrando um problema.

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 e implantar volumes.

Execute kubectl get sc para exibir as classes de armazenamento disponíveis. Você deve ver uma classe de armazenamento chamada acstor-<storage-pool-name>. Use essa classe de armazenamento na próxima seção para implantar um pod.

Implantar um pod com um volume efêmero genérico

Crie um pod usando o Fio (testador de E/S flexível) para parâmetro de comparação e simulação de carga de trabalho, a fim de usar um volume efêmero genérico.

  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
      containers:
        - name: fio
          image: nixery.dev/shell/fio
          args:
            - sleep
            - "1000000"
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralvolume
      volumes:
        - name: ephemeralvolume
          ephemeral:
            volumeClaimTemplate:
              metadata:
                labels:
                  type: my-ephemeral-volume
              spec:
                accessModes: [ "ReadWriteOnce" ]
                storageClassName: acstor-ephemeraldisk-nvme # replace with the name of your storage class if different
                resources:
                  requests:
                    storage: 1Gi
    

    Se você alterar o tamanho do armazenamento do volume, garanta que o tamanho seja menor do que a capacidade disponível do disco efêmero de um nó individual. Execute kubectl get diskpool -n acstor para verificar a capacidade disponível.

  3. Aplique o arquivo de manifesto YAML para implantar o pod.

    kubectl apply -f acstor-pod.yaml
    

    Você deverá ver uma saída semelhante à seguinte:

    pod/fiopod created
    
  4. Verifique se o pod está em execução e se a declaração de volume efêmero foi vinculada a ele:

    kubectl describe pod fiopod
    kubectl describe pvc fiopod-ephemeralvolume
    

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

Verifique a capacidade disponível de discos efêmeros antes de provisionar volumes adicionais:

kubectl describe node <node-name>

Para saber mais sobre o Armazenamento de Contêineres do Azure (versão 1.x.x), incluindo como criar volumes persistentes, consulte o que é o Armazenamento de Contêineres do Azure?

Limpar os recursos

Você não precisará do Armazenamento de Contêineres do Azure para o restante desta série de tutoriais, portanto, recomendamos excluí-lo agora para evitar incorrer em encargos desnecessários do Azure.

  1. Excluir o pod.

    kubectl delete pod fiopod
    
  2. Exclua o pool de armazenamento.

    kubectl delete sp -n acstor <storage-pool-name>
    
  3. Exclua a instância de extensão.

    az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage all
    

Próxima etapa

Neste tutorial, você implantou o Armazenamento de Contêineres do Azure (versão 1.x.x) no cluster do AKS. Você aprendeu a:

  • Habilite o Armazenamento de Contêineres do Azure (versão 1.x.x) no cluster do AKS.
  • Escolha um tipo de armazenamento de backup e crie um pool de armazenamento.
  • Implante um pod com um volume efêmero genérico.

No próximo tutorial, você aprenderá a implantar um aplicativo em seu cluster.