Compartilhar via


Tutorial: Instalar o Armazenamento de Contêineres do Azure para uso com o Serviço de Kubernetes do Azure

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. Use este tutorial para instalar a versão de produção mais recente do Armazenamento de Contêineres do Azure em um cluster do AKS (Serviço de Kubernetes do Azure), seja criando um novo cluster ou habilitando o serviço em uma implantação existente.

Se você preferir a versão de software livre do Armazenamento de Contêineres do Azure, visite o repositório local-csi-driver para obter instruções de instalação alternativas.

Importante

Este artigo se aplica ao Armazenamento de Contêineres do Azure (versão 2.x.x). Para versões anteriores, consulte a documentação do Armazenamento de Contêineres do Azure (versão 1.x.x). Se você já tiver o Armazenamento de Contêineres do Azure (versão 1.x.x) instalado no cluster do AKS, remova-o seguindo estas etapas.

  • Preparar seu ambiente da CLI do Azure
  • Criar ou selecionar um grupo de recursos para o cluster
  • Confirme se os tipos de máquina virtual do pool de nós atendem aos critérios de instalação
  • Instalar o Armazenamento de Contêineres do Azure criando um novo cluster do AKS ou habilitando-o em um cluster existente

Pré-requisitos

  • Crie uma assinatura do Azure se você ainda não tiver uma inscrevendo-se em uma conta gratuita.

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

  • Planeje a configuração do pool de nós:

    • Use o Linux como o tipo de sistema operacional (não há suporte para Windows).
    • Selecione um SKU de VM que dê suporte a discos de dados NVMe locais, como VMs com otimização de armazenamento ou aceleradas por GPU .
    • Para clusters existentes, verifique se os conjuntos de nós já usam uma SKU de VM com suporte antes de habilitar o Armazenamento de Contêineres do Azure.
  • Instale a versão mais recente da CLI do Azure (2.77.0 ou posterior) e entre com az login. Evite usar o Azure Cloud Shell (já que az upgrade não está disponível) e desabilite extensões conflitantes, como aks-preview se ocorrerem problemas.

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

Instale as extensões necessárias

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

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

Definir o contexto da assinatura

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

az account set --subscription <subscription-id>

Criar um grupo de recursos

Um grupo de recursos do Azure é um grupo lógico que contém os recursos do Azure que você pretende gerenciar como um grupo. Ao criar um grupo de recursos, você é solicitado a especificar um local. Essa localização é:

  • A localização de armazenamento dos metadados do grupo de recursos.
  • Onde seus recursos são executados no Azure se você não especificar outra região durante a criação de recursos.

Crie um grupo de recursos usando o comando az group create. Substitua <resource-group-name> pelo nome do grupo de recursos que você gostaria de criar e substitua <location> pela região do Azure, como lesteeua, lesteeua2, lesteeua3 ou oestedaeuropa. Se você estiver habilitando o Armazenamento de Contêineres do Azure em um cluster do AKS existente, use o grupo de recursos que já hospeda o cluster.

az group create --name <resource-group-name> --location <location>

Se o grupo de recursos for criado com êxito, você verá uma saída semelhante a este exemplo:

{
  "id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
  "location": "eastus",
  "managedBy": null,
  "name": "myContainerStorageRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Instalar o Armazenamento de Contêineres do Azure em um cluster do AKS

Escolha o cenário que corresponde ao seu ambiente.

Importante

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.

Opção 1: criar um novo cluster do AKS com o Armazenamento de Contêineres do Azure habilitado

Execute o comando a seguir para criar um novo cluster do AKS e instalar o Armazenamento de Contêineres do Azure. Substitua <cluster-name> e <resource-group> pelos seus próprios valores e especifique qual tipo de VM você deseja usar.

az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_L8s_v3 --enable-azure-container-storage --generate-ssh-keys

A implantação leva de 5 a 10 minutos. Quando ele for concluído, você terá um cluster do AKS com o Armazenamento de Contêineres do Azure instalado e os componentes do tipo de armazenamento NVMe local implantados.

Opção 2: Habilitar o Armazenamento de Contêineres do Azure em um cluster do AKS existente

Execute o comando a seguir para habilitar o Armazenamento de Contêineres do Azure em um cluster do AKS existente. Substitua <cluster-name> e <resource-group> pelos seus próprios valores.

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

A implantação leva de 5 a 10 minutos. Quando ele for concluído, o cluster AKS de destino terá o Armazenamento de Contêineres do Azure instalado e os componentes do tipo de armazenamento NVMe local implantados.

  • Preparar o Terraform e autenticar no Azure
  • Definir o grupo de recursos e a configuração do cluster do AKS
  • Confirme se os tipos de máquina virtual do pool de nós atendem aos critérios de instalação
  • Aplicar o Terraform para implantar o Armazenamento de Contêineres do Azure ou habilitá-lo em um cluster existente

Pré-requisitos

  • Crie uma assinatura do Azure se você ainda não tiver uma inscrevendo-se em uma conta gratuita.

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

  • Planeje a configuração do pool de nós:

    • Use o Linux como o tipo de sistema operacional (não há suporte para Windows).
    • Selecione um SKU de VM que dê suporte a discos de dados NVMe locais, como VMs com otimização de armazenamento ou aceleradas por GPU .
    • Para clusters existentes, verifique se os pools de nós já usam uma SKU de VM com suporte antes de habilitar o Armazenamento de Contêineres do Azure.
  • Instale a CLI do Azure versão 2.77.0 ou posterior e entre com az login.

  • Instale o Terraform versão 1.5 ou posterior e confirme a instalação com terraform version. O Terraform pode reutilizar a autenticação da CLI do Azure.

  • Instale kubectl para que você possa validar o cluster após a implantação. Se necessário, execute az aks install-cli para instalá-lo localmente.

Definir o contexto da assinatura

O Terraform pode determinar uma assinatura do Azure de destino por vários meios:

  • subscription_id no bloco do provedor
  • A variável de ambiente ARM_SUBSCRIPTION_ID
  • Assinatura padrão da CLI do Azure
  • Identidade gerenciada (ao executar no Azure)

Para uso local, defina o contexto da CLI do Azure:

az account set --subscription <subscription-id>

Instalar o Armazenamento de Contêineres do Azure em um cluster do AKS

Escolha o cenário que corresponde ao seu ambiente.

Importante

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.

Opção 1: criar um novo cluster do AKS com o Armazenamento de Contêineres do Azure habilitado

  1. Em um diretório de trabalho vazio, crie um main.tf arquivo com a seguinte configuração mínima de um cluster do AKS. Atualize os nomes de recursos, os locais e os tamanhos da VM para atender às suas necessidades.

    terraform {
      required_version = ">= 1.5.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.x"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    resource "azurerm_resource_group" "rg" {
      name     = "demo-aks-rg"
      location = "eastus"
    }
    
    resource "azurerm_kubernetes_cluster" "aks" {
      name                = "demo-aks-cluster"
      dns_prefix          = "demo-aks"
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
    
      default_node_pool {
        name       = "systempool"
        vm_size    = "Standard_L8s_v3"
        node_count = 3
      }
    
      identity {
        type = "SystemAssigned"
      }
    }
    
    resource "azurerm_kubernetes_cluster_extension" "container_storage" {
      name           = "microsoft-azurecontainerstorage"
      cluster_id     = azurerm_kubernetes_cluster.aks.id
      extension_type = "microsoft.azurecontainerstoragev2"
    
      configuration_settings = {
        enable-azure-container-storage = "true"
      }
    }
    
  2. Inicialize o diretório de trabalho para baixar o provedor do AzureRM.

    terraform init
    
  3. Examine as alterações planejadas.

    terraform plan
    
  4. Aplique a configuração para criar o grupo de recursos, o cluster do AKS e a extensão de Armazenamento de Contêiner do Azure. A implantação normalmente leva de 5 a 10 minutos.

    terraform apply
    

Opção 2: Habilitar o Armazenamento de Contêineres do Azure em um cluster do AKS existente

Se o cluster do AKS já existir e você estiver gerenciando-o fora do Terraform, você ainda poderá habilitar o Armazenamento de Contêineres do Azure criando apenas o recurso de extensão. Use uma fonte de dados para pesquisar a ID do cluster.

terraform {
  required_version = ">= 1.5.0"
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 4.x"
    }
  }
}

provider "azurerm" {
  features {}
}

data "azurerm_kubernetes_cluster" "existing" {
  name                = "existing-aks"
  resource_group_name = "existing-aks-rg"
}

resource "azurerm_kubernetes_cluster_extension" "container_storage" {
  name           = "microsoft-azurecontainerstorage"
  cluster_id     = data.azurerm_kubernetes_cluster.existing.id
  extension_type = "microsoft.azurecontainerstoragev2"

  configuration_settings = {
    enable-azure-container-storage = "true"
  }
}

Execute terraform init (se este for um novo diretório de trabalho) seguido de terraform apply instalar o Armazenamento de Contêineres do Azure no cluster de destino.

Conectar-se ao cluster e verificar o status

Após a instalação, configure kubectl para se conectar ao cluster e verifique se os nós estão prontos.

  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 <resource-group> --name <cluster-name>
    
  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, semelhante à saída a seguir:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.32.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.32.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.32.6
    

Próximas etapas