Compartilhar via


Tutorial – Implantar o Armazenamento de Contêineres do Azure 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.

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.
  • Implante o Armazenamento de Contêineres do Azure no cluster do AKS.
  • 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.

  • Confirme se a região de destino tem suporte examinando a disponibilidade regional do Armazenamento de Contêineres do Azure.

  • Instale a versão mais recente da CLI do Azure (2.83.0 ou posterior) e entre com az login. Não use o Azure Cloud Shell porque az upgrade não está disponível.

  • Instale o cliente de linha de comando do Kubernetes. kubectl Você pode instalá-lo localmente executando az aks install-cli.

Importante

Este tutorial se aplica ao Armazenamento de Contêineres do Azure (versão 2.x.x),que dá suporte ao disco NVMe local e à SAN Elástica do Azure como tipos de armazenamento de backup. Este tutorial usa o NVMe local e cria um volume efêmero genérico. Para usar o NVMe local, a SKU da VM deve dar suporte a discos de dados NVMe locais, como VMs com otimização de armazenamento ou aceleradas por GPU .

Se você preferir usar a SAN Elástica do Azure, consulte Usar o Armazenamento de Contêineres do Azure com o Azure Elastic SAN.

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

Habilitar o Armazenamento de Contêineres do Azure em seu cluster do AKS

Execute o comando a seguir para habilitar o Armazenamento de Contêineres do Azure em um cluster do AKS existente usando o NVMe local. O Armazenamento de Contêineres do Azure instala a versão mais recente disponível e se atualiza automaticamente. Não há suporte para a seleção manual de versão.

az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk

A implantação pode levar até cinco minutos. Quando ele for concluído, o cluster do AKS terá o Armazenamento de Contêineres do Azure instalado e os componentes do tipo de armazenamento NVMe local implantados. Ele também cria a classe de armazenamento padrão local-csi .

Conectar-se ao cluster e verificar o status

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. Baixe as credenciais do cluster e configure a CLI do Kubernetes para usá-las. Por padrão, as credenciais são armazenadas em ~/.kube/config. Forneça um caminho diferente usando o --file argumento, se necessário.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Verifique a conexão listando os nós do cluster.

    kubectl get nodes
    
  3. Verifique se todos os nós relatam um status de Ready.

Verificar a classe de armazenamento

Execute o seguinte comando para verificar se a classe de armazenamento foi criada:

kubectl get storageclass local-csi

Você deverá ver uma saída semelhante a:

NAME        PROVISIONER               RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local-csi   localdisk.csi.acstor.io   Delete          WaitForFirstConsumer   true                   10s

Implantar um pod com volume efêmero genérico

Crie um pod usando Fio (Testador de E/S Flexível) para comparação e simulação de carga de trabalho que usa um volume efêmero genérico.

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

  2. Cole o código a seguir e salve o arquivo.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        "kubernetes.io/os": linux
      containers:
        - name: fio
          image: mayadata/fio
          args: ["sleep", "1000000"]
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralvolume
      volumes:
        - name: ephemeralvolume
          ephemeral:
            volumeClaimTemplate:
              spec:
                volumeMode: Filesystem
                accessModes: ["ReadWriteOnce"]
                storageClassName: local-csi
                resources:
                  requests:
                    storage: 10Gi
    
  3. Aplique o arquivo de manifesto YAML para implantar o pod.

    kubectl apply -f fiopod.yaml
    

Verificar a implantação e executar parâmetros de comparação

Verifique se o pod está em execução:

kubectl get pod fiopod

Você deve ver o pod no estado Running. Uma vez em execução, você pode executar um teste de benchmark do Fio:

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 o NVMe local como armazenamento e pode usá-lo para suas cargas de trabalho do Kubernetes.

Para saber mais sobre o Armazenamento de Contêineres do Azure, confira 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 volume efêmero genérico.

    kubectl delete pv ephemeralvolume
    
  3. Exclua a instância de extensão.

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

Próxima etapa

Neste tutorial, você implantou o Armazenamento de Contêineres do Azure em seu cluster do AKS. Você aprendeu a:

  • Habilite o Armazenamento de Contêineres do Azure no cluster do AKS.
  • Implante um pod com um volume efêmero genérico.

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