Partilhar via


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

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

No final deste tutorial, você irá:

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

Importante

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

Pré-requisitos

  • Cria uma subscrição do Azure se ainda não tens uma, inscrevendo-te numa conta gratuita.

  • Confirme que a sua região-alvo é suportada ao rever a disponibilidade regional do Azure Container Storage.

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

    • Use Linux como tipo de sistema operativo (o Windows não é suportado).
    • Selecione um SKU de VM que suporte discos de dados NVMe locais, como VMs otimizadas para armazenamento ou aceleradas por GPU .
    • Para clusters existentes, certifique-se de que os pools de nós já utilizam um SKU de VM suportado antes de ativar o Azure Container Storage.
  • Instale a versão mais recente do Azure CLI (2.77.0 ou posterior) e depois inicie sessão com az login. Evite usar o Azure Cloud Shell (pois az upgrade não está disponível) e desative extensões conflitantes, como aks-preview se surgirem problemas.

  • Instale o cliente de linha de comandos Kubernetes, kubectl. Pode instalá-lo localmente ao executar az aks install-cli.

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>

Criar um grupo de recursos

Um grupo de recursos do Azure é um grupo lógico que contém seus recursos do Azure que você deseja gerenciar como um grupo. Ao criar um grupo de recursos, você será solicitado a especificar um local. Esta localização é:

  • O local 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 az group create comando. Substitua <resource-group-name> pelo nome do grupo de recursos que você deseja criar e substitua <location> por uma região do Azure como eastus, westus2, westus3 ou westeurope. Se você estiver habilitando o Armazenamento de Contêiner do Azure em um cluster 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 Azure Container Storage num cluster AKS

Escolha o cenário que corresponde ao seu ambiente.

Importante

O Azure Container Storage instala a versão mais recente disponível e atualiza-se automaticamente. A seleção manual de versões não é suportada.

Opção 1: Criar um novo cluster AKS com Azure Container Storage ativado

Execute o seguinte comando para criar um novo cluster AKS e instalar o Armazenamento de Contêineres do Azure. Substitua <cluster-name> e <resource-group> por 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 AKS com o Armazenamento de Contêiner do Azure instalado e os componentes para o tipo de armazenamento NVMe local implantados.

Opção 2: Ativar o Azure Container Storage num cluster AKS existente

Execute o seguinte comando para habilitar o Armazenamento de Contêiner do Azure em um cluster 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 for concluído, o cluster AKS de destino terá o Armazenamento de Contêineres do Azure instalado e os componentes para o tipo de armazenamento NVMe local implantados.

  • Prepare o Terraform e autentique no Azure
  • Defina o seu grupo de recursos e a configuração do cluster AKS
  • Confirme que os tipos de máquina virtual do seu pool de nós atendem aos critérios de instalação
  • Aplique o Terraform para implementar o Azure Container Storage ou ative-o num cluster existente

Importante

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

Pré-requisitos

  • Cria uma subscrição do Azure se ainda não tens uma, inscrevendo-te numa conta gratuita.

  • Verifique se a sua região-alvo é suportada verificando a disponibilidade regional do Azure Container Storage.

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

    • Use Linux como tipo de sistema operativo (o Windows não é suportado).
    • Selecione um SKU de VM que suporte discos de dados NVMe locais, como VMs otimizadas para armazenamento ou aceleradas por GPU .
    • Para clusters existentes, certifique-se de que os pools de nós já utilizam um SKU de VM suportado antes de ativar o Azure Container Storage.
  • Instale a CLI do Azure versão 2.77.0 ou posterior, depois inicie sessão 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 sua autenticação CLI do Azure.

  • Instala kubectl para poderes validar o cluster após a implementação. Se necessário, execute az aks install-cli para instalá-lo localmente.

Definir contexto de subscrição

O Terraform pode determinar uma subscrição alvo do Azure por vários meios:

  • subscription_id no bloco de fornecedores
  • ARM_SUBSCRIPTION_ID variável de ambiente
  • Azure CLI subscrição predefinida
  • Identidade gerida (quando em execução no Azure)

Para uso local, defina o contexto Azure CLI:

az account set --subscription <subscription-id>

Instalar Azure Container Storage num cluster AKS

Escolha o cenário que corresponde ao seu ambiente.

Importante

O Azure Container Storage instala a versão mais recente disponível e atualiza-se automaticamente. A seleção manual de versões não é suportada.

Opção 1: Criar um novo cluster AKS com Azure Container Storage ativado

  1. Num diretório de trabalho vazio, crie um main.tf ficheiro com a seguinte configuração mínima de um cluster AKS. Atualize os nomes dos recursos, localizações e tamanhos das VMs para satisfazer os seus requisitos.

    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 descarregar o fornecedor AzureRM.

    terraform init
    
  3. Revê as alterações planeadas.

    terraform plan
    
  4. Aplique a configuração para criar o grupo de recursos, o cluster AKS e a extensão Azure Container Storage. O desdobramento normalmente demora entre 5 a 10 minutos.

    terraform apply
    

Opção 2: Ativar o Azure Container Storage num cluster AKS existente

Se o teu cluster AKS já existir e o estiveres a gerir fora do Terraform, ainda podes ativar o Azure Container Storage criando apenas o recurso de extensão. Use uma fonte de dados para consultar o 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 for um novo diretório de trabalho) seguido de terraform apply instalar o Azure Container Storage no cluster alvo.

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 no ~/.kube/config. Forneça um caminho diferente usando o argumento, --file 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 apresentam um estado de Ready, semelhante à seguinte saída:

    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óximos passos