Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este tutorial apresenta o Armazenamento de Contêineres do Azure e demonstra como implantar e gerenciar o armazenamento nativo de contêiner para aplicativos executados no Serviço Kubernetes do Azure (AKS). Se não quiser implantar o Armazenamento de Contêiner do Azure agora, ignore este tutorial e prossiga diretamente para Implantar um aplicativo no AKS. Você não precisará do Armazenamento de Contêiner do Azure para o aplicativo de vitrine básico nesta série de tutoriais.
Importante
Este artigo explica como instalar o Armazenamento de Contêiner do Azure (versão 1.x.x), que agora requer 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) já está disponível.
O Armazenamento de Contêiner do Azure simplifica o gerenciamento de aplicativos com monitoração de estado no Kubernetes, oferecendo armazenamento nativo de contêiner adaptado a uma variedade de cargas de trabalho, incluindo bancos de dados, plataformas de análise e aplicativos de alto desempenho.
No final deste tutorial, você irá:
- Entenda como o Armazenamento de Contêiner do Azure dá suporte a diversas cargas de trabalho no Kubernetes.
- Explore várias opções de back-end de armazenamento para adaptar o armazenamento às necessidades do seu aplicativo.
- Implante o Armazenamento de Contêiner do Azure (versão 1.x.x) em seu cluster 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 para uma instância ACR e criou um cluster AKS. Comece com o Tutorial 1 - Prepare a aplicação para o AKS para acompanhar.
- 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êiner do Azure. Verifique a sua versão com
az --version. Para instalar ou atualizar, consulte Instalar a CLI do Azure. Se você estiver usando o ambiente Bash no Azure Cloud Shell, a versão mais recente já está 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. Consulte o Tutorial 3 - Criar um cluster 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 se puder instalá-lo localmente executando oaz aks install-clicomando.
Instale a extensão Kubernetes
Adicione ou atualize para a versão mais recente do k8s-extension executando o seguinte comando.
az extension add --upgrade --name k8s-extension
Conectar ao cluster e verificar o estado do nó
Se você ainda não estiver conectado ao cluster no tutorial anterior, execute os seguintes comandos. Se já estiver ligado, pode ignorar esta secção.
Execute o seguinte comando para se conectar ao cluster.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterVerifique a conexão com o cluster usando o
kubectl getcomando. Este comando retorna uma lista dos nós do cluster.kubectl get nodesO exemplo de saída seguinte mostra os nós no seu cluster. Certifique-se de que o status de todos os nós mostre Ready:
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
Escolha 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 back-end para seus pools de armazenamento, cada uma adequada para cargas de trabalho específicas. Selecionar o tipo de armazenamento certo é essencial para otimizar o desempenho, a durabilidade e a eficiência de custos da carga de trabalho. Para este tutorial, usaremos o Ephemeral Disk 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 backup que permitem criar volumes persistentes.
Disco Efémero
O Disco Efémero utiliza recursos de armazenamento local nos nós AKS (NVMe local ou SSD temporário). Ele oferece baixa latência sub-ms e IOPS alta, mas nenhuma persistência de dados se a VM for reiniciada. O disco efêmero é mais adequado para aplicativos como 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.
Azure Disks
Ideal para bancos de dados como PostgreSQL e MongoDB, os Discos do Azure oferecem opções de durabilidade, escalabilidade e desempenho em 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.
Azure Elastic SAN (visualização)
Projetado 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.
Habilite o Armazenamento de Contêiner do Azure (versão 1.x.x) e crie um pool de armazenamento
Execute o seguinte comando para instalar o Armazenamento de Contêiner 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 para o 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 Message não diz StoragePool is ready, então seu pool de armazenamento ainda está criando ou encontrou 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ê 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 Fio (Flexible I/O Tester) para benchmarking e simulação de carga de trabalho, utilizando um volume efémero genérico.
Use seu editor de texto favorito para criar um arquivo de manifesto YAML como
code acstor-pod.yaml.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: 1GiCaso altere o tamanho de armazenamento do volume, assegure-se de que o tamanho seja inferior à capacidade disponível do disco efêmero de um único nó. Execute
kubectl get diskpool -n acstorpara verificar a capacidade disponível.Aplique o arquivo de manifesto YAML para implantar o pod.
kubectl apply -f acstor-pod.yamlDeverá ver um resultado semelhante ao seguinte:
pod/fiopod createdVerifique se o pod está em execução e se a declaração de volume efêmero foi vinculada com êxito ao pod:
kubectl describe pod fiopod kubectl describe pvc fiopod-ephemeralvolume
Agora você implantou um pod que está usando 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êiner do Azure (versão 1.x.x), incluindo como criar volumes persistentes, consulte O que é o Armazenamento de Contêiner do Azure?
Limpeza de recursos
Você não precisará do Armazenamento de Contêiner do Azure para o restante desta série de tutoriais, portanto, recomendamos excluí-lo agora para evitar incorrer em cobranças desnecessárias do Azure.
Exclua o pod.
kubectl delete pod fiopodExclua o pool de armazenamento.
kubectl delete sp -n acstor <storage-pool-name>Exclua a instância de extensão.
az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage all
Próximo passo
Neste tutorial, você implantou o Armazenamento de Contêiner do Azure (versão 1.x.x) em seu cluster AKS. Você aprendeu a:
- Habilite o Armazenamento de Contêiner do Azure (versão 1.x.x) em seu cluster 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.