Guia de início rápido: usar o Armazenamento de Contêiner do Azure com o Serviço Kubernetes do Azure

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. Este Guia de início rápido mostra como se conectar a um cluster do Serviço Kubernetes do Azure (AKS) baseado em Linux, instalar o Armazenamento de Contêineres do Azure e criar um pool de armazenamento usando a CLI do Azure.

Importante

O Armazenamento de Contêineres do Azure agora está disponível em geral (GA) a partir da versão 1.1.0. A versão GA é recomendada para cargas de trabalho de produção.

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.

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

  • Se ainda não criou um cluster AKS, siga as instruções para Instalar um cluster AKS.

Introdução

  • Anote sua ID de assinatura do Azure. Se quiser usar o Azure Elastic SAN como armazenamento de dados, você precisará de uma função de Proprietário do Armazenamento de Contêiner do Azure ou de Colaborador do Armazenamento de Contêiner do Azure atribuída à assinatura do Azure. O acesso em nível de proprietário permite que você instale a extensão do Armazenamento de Contêiner do Azure, concede acesso aos recursos de armazenamento e concede permissão para configurar seu recurso SAN Elástico do Azure. O acesso em nível de colaborador permite instalar a extensão e concede acesso aos seus recursos de armazenamento. Se você estiver planejando usar os Discos do Azure ou o Disco Efémero como armazenamento de dados, não precisará de permissões especiais em sua assinatura.

  • Inicie o Azure Cloud Shell ou, se estiver a utilizar uma instalação local, inicie sessão no Azure utilizando o comando az login .

  • Se estiver a utilizar o Azure Cloud Shell, poderá ser-lhe pedido para montar armazenamento. Selecione a assinatura do Azure onde você deseja criar a conta de armazenamento e selecione Criar.

Instale a extensão necessária

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

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

Definir contexto de subscrição

Defina seu contexto de assinatura do Azure usando o az account set comando. Pode ver os IDs de subscrição de todas as subscrições a que tem acesso executando o az account list --output table comando. Lembre-se de substituir <subscription-id> pelo seu ID de assinatura.

az account set --subscription <subscription-id>

Ligar ao cluster

Para se conectar ao cluster, use o 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.

  1. Configure kubectl para se conectar ao cluster usando o az aks get-credentials comando. O seguinte comando:

    • Baixa credenciais e configura a CLI do Kubernetes para usá-las.
    • Usa ~/.kube/config, o local padrão para o arquivo de configuração do Kubernetes. Você pode especificar um local diferente para seu arquivo de configuração do Kubernetes usando o argumento --file .
    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
    
  2. Verifique a conexão com o cluster usando o kubectl get comando. Este comando retorna uma lista dos nós do 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.25.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.25.6
    

    Anote o nome do seu pool de nós. Neste exemplo, seria nodepool1.

Escolha uma opção de armazenamento de dados para seu pool de armazenamento

Antes de implantar o Armazenamento de Contêiner do Azure, você precisará decidir qual opção de armazenamento back-end deseja usar para criar seu pool de armazenamento e volumes. Três opções estão atualmente disponíveis:

  • Azure Elastic SAN: o Azure Elastic SAN é uma boa opção para bancos de dados de uso geral, serviços de streaming e mensagens, ambientes de CI/CD e outras cargas de trabalho de camada 1/camada 2. O armazenamento é provisionado sob demanda por volume criado e instantâneo de volume. Vários clusters podem acessar uma única SAN simultaneamente, no entanto, os volumes persistentes só podem ser anexados por um consumidor de cada vez.

  • Azure Disks: Os Discos do Azure são uma boa opção para bancos de dados como MySQL, MongoDB e PostgreSQL. O armazenamento é provisionado por contêiner de destino, tamanho do pool de armazenamento e tamanho máximo do volume.

  • Disco efêmero: Esta opção usa unidades NVMe locais ou SSD temporário nos nós do cluster AKS. É extremamente sensível à latência (baixa latência sub-ms), por isso é melhor para aplicativos sem requisitos de durabilidade de dados ou com suporte integrado à replicação de dados, como o Cassandra. O AKS descobre o armazenamento efêmero disponível nos nós AKS e adquire as unidades para implantação de volume.

Nota

Para o Azure Elastic SAN e Azure Disks, o Armazenamento de Contêiner do Azure implantará o armazenamento de backup para você como parte da instalação. Você não precisa criar sua própria SAN elástica ou Azure Disk. Para usar a SAN elástica, você precisará de uma função de Proprietário do Armazenamento de Contêiner do Azure ou de Colaborador do Armazenamento de Contêiner do Azure na assinatura do Azure.

Consumo de recursos

O Armazenamento de Contêiner do Azure requer determinados recursos de nó para executar componentes para o serviço. Com base na sua seleção de tipo de pool de armazenamento, que você especificará quando instalar o Armazenamento de Contêiner do Azure, estes são os recursos que serão consumidos:

Tipo de pool de armazenamento Núcleos de CPU Memória RAM
Azure Elastic SAN  Nenhuma Nenhuma
Discos do Azure 1 1 GiB
Disco Efémero - Temp SSD 1 1 GiB
Disco efêmero - NVMe local (camada padrão) 25% dos núcleos (a camada de desempenho pode ser atualizada)* 1 GiB

Os recursos consumidos são por nó e serão consumidos para cada nó no pool de nós onde o Armazenamento de Contêiner do Azure será instalado. Se seus nós não tiverem recursos suficientes, o Armazenamento de Contêiner do Azure não será executado. O Kubernetes tentará automaticamente inicializar esses pods com falha, portanto, se os recursos forem liberados, esses pods poderão ser inicializados novamente.

*Em um pool de armazenamento tipo Disco efêmero - NVMe local com a camada de desempenho padrão (padrão), se você estiver usando vários tipos de SKU de VM para seus nós de cluster, os 25% de núcleos de CPU consumidos se aplicarão à menor SKU usada. Por exemplo, se você estiver usando uma combinação de tipos de VM de 8 e 16 núcleos, o consumo de recursos será de 2 núcleos. Você pode atualizar a camada de desempenho para usar uma porcentagem maior de núcleos e obter IOPS maiores.

Verifique se o tipo de VM para seu cluster atende aos seguintes critérios:

Para usar o Armazenamento de Contêiner do Azure, você precisará de um pool de nós de pelo menos três VMs Linux. Se você estiver usando NVMe local para seu pool de armazenamento, o pool de nós deve conter um mínimo de quatro VMs Linux. Cada VM deve ter um mínimo de quatro CPUs virtuais (vCPUs). O Armazenamento de Contêiner do Azure consumirá um núcleo para processamento de E/S em cada VM na qual a extensão for implantada.

Siga estas diretrizes ao escolher um tipo de VM para os nós do cluster. Você deve escolher um tipo de VM que ofereça suporte ao armazenamento premium do Azure.

  • Se você pretende usar o Azure Elastic SAN ou o Azure Disks como armazenamento de backup, escolha um tipo de VM de uso geral, como standard_d4s_v5.
  • Se você pretende usar o Disco Efémero com NVMe local, escolha um tipo de VM otimizado para armazenamento, como standard_l8s_v3.
  • Se você pretende usar o disco efêmero com SSD temporário, escolha uma VM que tenha um disco SSD temporário, como as séries Ev3 e Esv3.

Instalar o Armazenamento de Contentores do Azure no seu cluster AKS

O comando de instalação é diferente dependendo se você já tem uma instância de visualização do Armazenamento de Contêiner do Azure em execução no cluster AKS ou se está instalando o Armazenamento de Contêiner do Azure no cluster pela primeira vez.

Atualizar uma instalação de visualização para o GA

Se você já tiver uma instância de visualização do Armazenamento de Contêiner do Azure em execução em seu cluster, recomendamos atualizar para a versão mais recente disponível em geral (GA) executando o seguinte comando. Se você estiver instalando o Armazenamento de Contêiner do Azure pela primeira vez no cluster, prossiga para Instalar o Armazenamento de Contêiner do Azure e crie um pool de armazenamento. Você também pode Instalar o Armazenamento de Contêiner do Azure em pools de nós específicos.

az k8s-extension update --cluster-type managedClusters --cluster-name <cluster-name> --resource-group <resource-group> --name azurecontainerstorage --version 1.1.0 --auto-upgrade false --release-train stable

Lembre-se de substituir <cluster-name> e <resource-group> com seus próprios valores.

Instalar o Armazenamento de Contêiner do Azure e criar um pool de armazenamento

Antes de instalar, verifique se o cluster AKS atende aos requisitos da VM.

Execute o seguinte comando para instalar o Armazenamento de Contêiner do Azure no cluster e criar um pool de armazenamento. Substitua <cluster-name> e <resource-group> com os seus próprios valores. Substitua <storage-pool-type> por azureDisk, ephemeralDiskou elasticSan. Se você selecionar ephemeralDisk, também poderá especificar --storage-pool-option, e os valores poderão ser NVMe ou Temp.

A execução desse comando habilitará o Armazenamento de Contêiner do Azure no pool de nós do sistema, que, por padrão, tem o nome nodepool1*. Se você quiser habilitá-lo em outros pools de nós, consulte Instalar o Armazenamento de Contêiner do Azure em pools de nós específicos. Se quiser especificar parâmetros adicionais, consulte Parâmetros do pool de armazenamento do Armazenamento de Contêiner do Azure.

*Se houver algum pool de nós existente com o rótulo, o acstor.azure.com/io-engine:acstor Armazenamento de Contêiner do Azure será instalado lá por padrão. Caso contrário, ele será instalado no pool de nós do sistema.

Importante

Se você criou seu cluster AKS usando o portal do Azure: O cluster provavelmente terá um pool de nós de usuário e um pool de nós de sistema/agente. No entanto, se o cluster consistir apenas em um pool de nós do sistema, que é o caso dos clusters de teste/desenvolvimento criados com o portal do Azure, você precisará primeiro adicionar um novo pool de nós de usuário e, em seguida, rotulá-lo. Isso ocorre porque quando você cria um cluster AKS usando o portal do Azure, uma mancha CriticalAddOnsOnly é adicionada ao pool de nós do sistema/agente, o que bloqueia a instalação do Armazenamento de Contêineres do Azure no pool de nós do sistema. Essa mancha não é adicionada quando um cluster AKS é criado usando a CLI do Azure.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

A implantação levará de 10 a 15 minutos. Quando ele for concluído, você terá um cluster AKS com o Armazenamento de Contêiner do Azure instalado, os componentes para o tipo de pool de armazenamento escolhido habilitados e um pool de armazenamento padrão. Se você quiser habilitar tipos de pool de armazenamento adicionais para criar pools de armazenamento adicionais, consulte Habilitar tipos de pool de armazenamento adicionais.

Importante

Se você especificou o Azure Elastic SAN como armazenamento de backup para seu pool de armazenamento e não tem a função de Proprietário do Armazenamento de Contêiner do Azure ou a função de Colaborador do Armazenamento de Contêiner do Azure atribuída à assinatura do Azure, a instalação do Armazenamento de Contêiner do Azure falhará e um pool de armazenamento não será criado. Se você tentar habilitar o Azure Elastic SAN como um tipo de pool de armazenamento adicional sem nenhuma dessas funções, seus pools de instalação e armazenamento anteriores permanecerão inalterados e um pool de armazenamento Elastic SAN não será criado.

Instalar o Armazenamento de Contêiner do Azure em pools de nós específicos

Se você quiser instalar o Armazenamento de Contêiner do Azure em pools de nós específicos, siga estas instruções. Os pools de nós devem conter pelo menos três VMs Linux cada. Se você estiver usando NVMe local para seu pool de armazenamento, os pools de nós deverão conter pelo menos quatro VMs Linux cada.

  1. Execute o seguinte comando para exibir a lista de pools de nós disponíveis. Substitua <resource-group> e <cluster-name> com os seus próprios valores.

    az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
    
  2. Execute o seguinte comando para instalar o Armazenamento de Contêiner do Azure em pools de nós específicos. Substitua <cluster-name> e <resource-group> com os seus próprios valores. Substitua <storage-pool-type> por azureDisk, ephemeralDiskou elasticSan. Se você selecionar ephemeralDisk, também poderá especificar --storage-pool-option, e os valores poderão ser NVMe ou Temp.

    az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --azure-container-storage-nodepools <comma separated values of nodepool names>
    

Habilitar tipos de pool de armazenamento adicionais

Se você quiser habilitar um tipo de pool de armazenamento que não foi originalmente habilitado durante a instalação do Armazenamento de Contêiner do Azure, execute o seguinte comando. Substitua <cluster-name> e <resource-group> com os seus próprios valores. Para <storage-pool-type>, especifique azureDisk, ephemeralDiskou elasticSan.

Se desejar especificar parâmetros adicionais do pool de armazenamento com este comando, consulte esta tabela.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Se o novo tipo de pool de armazenamento que você habilitou ocupar mais recursos do que o tipo de pool de armazenamento já habilitado, o consumo de recursos será alterado para o valor máximo.

Gorjeta

Se você adicionou um novo pool de nós ao cluster e deseja executar o Armazenamento de Contêiner do Azure nesse pool de nós, pode especificar o pool de nós com --azure-container-storage-nodepools <nodepool-name> ao executar o az aks update comando.

Exibir pools de armazenamento disponíveis

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. Consulte Solucionar problemas de armazenamento de contêiner do Azure.

Desativar tipos de pool de armazenamento

Se você não estiver mais usando um tipo de pool de armazenamento específico e quiser desativá-lo para liberar recursos no pool de nós, execute o seguinte comando. Substitua <cluster-name> e <resource-group> com os seus próprios valores. Para <storage-pool-type>, especifique azureDisk, ephemeralDiskou elasticSan.

az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>

Nota

Se você tiver um pool de armazenamento existente do tipo que está tentando desabilitar, o tipo de pool de armazenamento não será desabilitado.

Próximo passo

Para criar volumes, selecione o link para o tipo de armazenamento de backup selecionado.