Compartilhar via


Guia de Início Rápido: Usar o Azure Container Storage (versão 1.x.x) com o Azure Kubernetes Service

O Armazenamento de Contêineres do Azure é um serviço de gerenciamento de volume, implantação e orquestração baseado em nuvem criado nativamente para contêineres. Este Início Rápido mostra como se conectar a um cluster do AKS (Serviço de Kubernetes do Azure) baseado em Linux, instalar o Armazenamento de Contêineres do Azure (versão 1.x.x) e criar um pool de armazenamento usando a CLI do Azure.

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.

Pré-requisitos

  • Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

  • Este artigo requer a versão mais recente 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, execute-os com privilégios administrativos. Para obter mais informações, confira 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 pode instalá-lo localmente executando o az aks install-cli comando.

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

  • Se você ainda não criou um cluster do AKS, siga as instruções para instalar um cluster do AKS.

Como começar

  • Anote sua ID de assinatura do Azure. Se você quiser usar a SAN Elástica do Azure como armazenamento de dados, precisará de uma função de Proprietário do Armazenamento de Contêiner do Azure ou da função colaborador do Armazenamento de Contêiner do Azure atribuída à assinatura do Azure. O acesso no nível do proprietário permite que você instale a extensão de Armazenamento de Contêiner do Azure, concede acesso aos seus recursos de armazenamento e dá permissão para configurar o recurso Azure Elastic SAN. O acesso no nível do colaborador permite que você instale a extensão e conceda acesso aos recursos de armazenamento. Se você estiver planejando usar o Azure Disks ou o Ephemeral Disk como armazenamento de dados, não precisará de permissões especiais em sua assinatura.

  • Inicie o Azure Cloud Shell ou, se você estiver usando uma instalação local, entre no Azure usando o comando az login .

  • Se você estiver usando o Azure Cloud Shell, poderá ser solicitado a montar o armazenamento. Selecione a assinatura do Azure na qual você deseja criar a conta de armazenamento e selecione Criar.

Instalar a extensão necessária

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

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

Definir contexto de assinatura

Defina o contexto de assinatura do Azure usando o az account set comando. Você pode exibir as IDs de assinatura de todas as assinaturas às quais você tem acesso executando o az account list --output table comando. Lembre-se de substituir <subscription-id> pela ID da assinatura.

az account set --subscription <subscription-id>

Conectar-se 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 pode instalá-lo localmente executando o az aks install-cli comando.

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

    • Baixa credenciais e configura a CLI do Kubernetes para usá-las.
    • ~/.kube/configUsa o local padrão para o arquivo de configuração do Kubernetes. Você pode especificar um local diferente para o 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 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.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 pool de nós. Neste exemplo, seria nodepool1.

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

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

  • SAN Elástico do Azure: 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 nível 1/2. O armazenamento é provisionado sob demanda por volume criado e instantâneo do volume. Vários clusters podem acessar um único SAN simultaneamente, no entanto, volumes persistentes só podem ser anexados por um consumidor por vez.

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

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

Observação

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

Consumo de recursos

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

Tipo de pool de armazenamento Núcleos de CPU RAM
Azure Elastic SAN  None None
Discos do Azure 1 1 GiB
Disco Efêmero – Temp SSD 1 1 GiB
Disco Efêmero – NVMe Local (camada padrão) 25% de 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 em que o Armazenamento de Contêineres do Azure será instalado. Se os nós não tiverem recursos suficientes, o Armazenamento de Contêineres 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, 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 aplicam ao menor SKU usado. Por exemplo, se você estiver usando uma combinação de tipos de VM de 8 núcleos e 16 núcleos, o consumo de recursos será de dois núcleos. Você pode atualizar a camada de desempenho para usar uma porcentagem maior de núcleos e obter uma IOPS maior.

Verifique se o tipo de VM do cluster atende aos seguintes critérios

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

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

Instalar o Armazenamento de Contêineres do Azure no cluster do 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 do AKS ou se está instalando o Armazenamento de Contêineres do Azure no cluster pela primeira vez.

Atualizar uma instalação de versão prévia para GA

Se você já tiver uma instância de visualização do Armazenamento de Contêineres do Azure em execução no cluster, recomendamos atualizar para a versão mais recente de GA (disponibilidade geral) executando o comando a seguir. Se você estiver instalando o Armazenamento de Contêineres do Azure pela primeira vez no cluster, prossiga para instalar o Armazenamento de Contêineres do Azure e criar um pool de armazenamento. Você também pode instalar o Armazenamento de Contêineres 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êineres do Azure e criar um pool de armazenamento

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

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

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

Se houver pools de nós existentes com o rótulo acstor.azure.com/io-engine:acstor, o Armazenamento de Contêineres 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 o cluster do AKS usando o portal do Azure: O cluster provavelmente terá um pool de nós de usuário e um pool de nós do sistema/agente. No entanto, se o cluster consistir apenas em um pool de nós do sistema, que é o caso de clusters de teste/desenvolvimento criados com o portal do Azure, você precisará primeiro adicionar um novo pool de nós de usuário e rotulá-lo. Isso ocorre porque, quando você cria um cluster do AKS usando o portal do Azure, um taint CriticalAddOnsOnly é adicionado ao pool de nós do sistema/agente, que bloqueia a instalação do Armazenamento de Contêineres do Azure no pool de nós do sistema. Esse taint não é adicionado quando um cluster do AKS é criado usando a CLI do Azure.

Se você estiver usando um cluster AKS de várias zonas com o Azure Elastic SAN: Você precisará usar um Elastic SAN com armazenamento de redundância de zona (ZRS). O padrão para um pool de armazenamento de SAN elástico é LRS (armazenamento com redundância local). Para habilitar o ZRS para SAN Elástico, use elasticSan para o tipo de pool de armazenamento e acrescente o --storage-pool-sku Premium_ZRS sinalizador ao comando da CLI a seguir.

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

A implantação levará de 10 a 15 minutos. Quando ele for concluído, você terá um cluster do AKS com o Armazenamento de Contêineres do Azure instalado, os componentes do 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 a SAN Elástica do Azure como armazenamento de suporte para o pool de armazenamento e não tem nenhuma função de Proprietário de Armazenamento de Contêiner do Azure ou função de Colaborador de Armazenamento de Contêiner do Azure atribuída à assinatura do Azure, a instalação do Armazenamento de Contêineres do Azure falhará e um pool de armazenamento não será criado. Se você tentar habilitar a SAN Elástica do Azure 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 de SAN elástico não será criado.

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

Se você quiser instalar o Armazenamento de Contêineres 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 do Linux.

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

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

    az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --container-storage-version 1 --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 habilitado originalmente durante a instalação do Armazenamento de Contêineres do Azure, execute o comando a seguir. Substitua <cluster-name> e <resource-group> pelos seus próprios valores. Para <storage-pool-type>, especifique azureDisk, ephemeralDisk ou elasticSan.

Se você quiser especificar parâmetros de pool de armazenamento adicionais com este comando, consulte esta tabela.

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

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

Dica

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

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 valor Message não for disserStoragePool is ready, o pool de armazenamento ainda estará criando ou encontrando um problema. Consulte Solucionar problemas do Armazenamento de Contêineres do Azure.

Desabilitar tipos de pool de armazenamento

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

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

Observação

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óxima etapa

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