Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 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.
kubectlEle já está instalado se você estiver usando o Azure Cloud Shell ou pode instalá-lo localmente executando oaz aks install-clicomando.
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.
Execute o comando a seguir para se conectar ao cluster.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterVerifique a conexão com o cluster usando o comando
kubectl get. Esse comando retorna uma lista dos nós de cluster.kubectl get nodesO 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.
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: 1GiSe 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 acstorpara verificar a capacidade disponível.Aplique o arquivo de manifesto YAML para implantar o pod.
kubectl apply -f acstor-pod.yamlVocê deverá ver uma saída semelhante à seguinte:
pod/fiopod createdVerifique 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.
Excluir 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ó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.
Azure Kubernetes Service