Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Container Storage é um serviço de gestão, implementação e orquestração de volumes baseado na cloud, concebido para containers. Use este tutorial para instalar a versão de produção mais recente do Azure Container Storage num cluster Azure Kubernetes Service (AKS ), quer crie um novo cluster ou ative o serviço num cluster existente.
Este artigo explica como instalar o Azure Container Storage utilizando dois métodos suportados (só com o instalador ou com o instalador + funcionalidade), como a instalação dos componentes é iniciada e como verificar e resolver problemas na sua implementação. Os tipos de armazenamento de volumes persistentes instalam drivers que implementam a Container Storage Interface (CSI). O Azure Container Storage também pode ativar e gerir um acelerador distribuído para armazenamento na nuvem (DACS) que instala uma extensão separada e não cria uma StorageClass.
Se preferir a versão open-source do Azure Container Storage, consulte o repositório local-csi-driver para instruções alternativas de instalação.
No final deste tutorial, podes:
- 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
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Este artigo requer a versão v2.83.0 do CLI do Azure ou posterior. Para obter mais informações, consulte Como instalar a CLI do Azure. Desative extensões, por exemplo,
aks-previewcaso ocorram problemas. Instale ou atualize extensões conforme necessário:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Apenas SAN elástico)
Você precisa do cliente de linha de comando Kubernetes,
kubectl. Já está instalado se estiveres a usar Azure Cloud Shell. Você pode instalá-lo localmente executando oaz aks install-clicomando.Verifique se a sua região-alvo é suportada nas regiões de Armazenamento de Contêiner da Azure.
Planeie a configuração do seu pool de nós:
- Usa Linux como tipo de sistema operativo (o Windows não é suportado).
- Selecione um SKU de máquina virtual (VM) que suporte discos de dados NVMe locais se planeia usar o tipo de armazenamento NVMe local, 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.
Se usar o Elastic SAN pela primeira vez na subscrição, execute este comando de registo único:
az provider register --namespace Microsoft.ElasticSan
Definir contexto de subscrição
Defina seu contexto de assinatura do Azure usando o az account set comando. Pode visualizar os IDs de subscrição ao executar az account list --output table. Substitua <subscription-id> pelo seu ID de subscrição.
az account set --subscription <subscription-id>
Criar um grupo de recursos
Um grupo de recursos Azure é um contentor lógico para recursos. Quando crias um grupo de recursos, especificas uma localização. Essa localização armazena metadados do grupo de recursos e serve como a região padrão para os recursos que crias sem uma região explícita.
Criar um grupo de recursos com az group create. Substitua <resource-group-name> pelo nome do seu grupo de recursos e <location> por uma região Azure como eastus, westus2, westus3, ou westeurope. Se ativares o Azure Container Storage num cluster AKS existente, usa 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 Azure Container Storage num novo cluster AKS
Escolha o cenário que corresponde ao seu ambiente.
Importante
O Azure Container Storage instala a versão principal mais recente por padrão. Pode fixar uma versão maior com --container-storage-version. Não se pode fixar versões menores ou de correção.
Instalação apenas para instaladores
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
O desdobramento pode demorar até 5 minutos. A instalação do driver CSI é adiada até criar uma classe de armazenamento ou ativar um tipo de armazenamento mais tarde.
Siga as instruções para criar uma classe de armazenamento NVMe local ou uma classe de armazenamento Elastic SAN .
Instalador + instalação tipo de armazenamento
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 ephemeralDisk --generate-ssh-keys
Este comando instala o instalador, implementa o driver local NVMe CSI e cria uma classe de armazenamento padrão chamada local-csi. Pode instalar e usar tanto o NVMe local como o Elastic SAN fornecendo uma lista como ephemeralDisk elasticSan.
Instale o Azure Container Storage num cluster AKS existente
Instalação apenas para instaladores
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
O desdobramento pode demorar até 5 minutos. Quando termina, o cluster tem instalado o componente instalador Azure Container Storage. A instalação do driver CSI é adiada até criar uma classe de armazenamento ou ativar um tipo de armazenamento mais tarde. Siga as instruções para criar uma classe de armazenamento NVMe local ou uma classe de armazenamento Elastic SAN .
Instalador + instalação tipo de armazenamento
Execute o seguinte comando para habilitar o Armazenamento de Contêiner do Azure em um cluster AKS existente. Substitua <cluster-name>, <resource-group> com os seus próprios valores, e especifique quais tipos de armazenamento quer usar.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage elasticSan
Este comando instala o instalador, implementa o driver Elastic SAN CSI e cria uma classe de armazenamento padrão chamada azuresan-csi. Pode instalar e usar tanto o NVMe local como o Elastic SAN fornecendo uma lista como ephemeralDisk elasticSan.
Instalar o acelerador distribuído para armazenamento na cloud (pré-visualização)
Ative a aceleração distribuída para armazenamento na cloud num cluster do AKS existente, utilizando o valor distributedAccelerator. A maiúscula A é obrigatória. A extensão instala-se no recurso de cluster gerido do AKS; não precisas de ligar o cluster ao Arc.
Utilize aks-preview a versão 22.0.0b9 ou posterior. Instalar ou atualizar a extensão, verificar a sua versão, instalar ou atualizar connectedk8s e k8s-extension para gerir e inspecionar a extensão DACS:
az extension add --name aks-preview --upgrade --yes
az extension show --name aks-preview --query version --output tsv
az extension add --name connectedk8s --upgrade --yes
az extension add --name k8s-extension --upgrade --yes
Antes de ativar o DACS, selecione um pool de nós Linux com discos de dados NVMe locais dedicados à cache. Aplique a etiqueta dacs.azure.com/processing-unit=cpu através da configuração de node-pool, preservando quaisquer etiquetas personalizadas existentes. Siga Verificar o pool de nós da cache.
Caution
Ativar o DACS instala um DaemonSet pré-requisito que descobre, formata e monta discos NVMe locais em nós de cache rotulados. Rótule apenas nós com discos que não sejam reclamados por outro componente de armazenamento.
Execute o seguinte comando, substituindo <cluster-name> e <resource-group> com os seus valores:
az aks update \
--name <cluster-name> \
--resource-group <resource-group> \
--enable-azure-container-storage distributedAccelerator
Este comando instala a distributedaccelerator extensão, o controlador DACS e o pré-requisito NVMe DaemonSet em kube-system, e a caches.storage.azure.com definição de recurso personalizada (CRD). Não instalas um quadro de pré-requisitos separado nem geres tu próprio a versão Helm da extensão. Por defeito, não cria uma StorageClass nem provisiona um recurso de cache e pods de servidor de cache. A instalação bem-sucedida de extensões não significa por si só que uma cache esteja pronta para tráfego de aplicações.
Passe distributedAccelerator sozinho neste comando em vez de o combinar com as opções de armazenamento de volumes persistentes mostradas anteriormente. Antes de provisionar servidores de cache, verifique se os pré-requisitos geridos estão prontos em cada nó de cache rotulado. Para a configuração da cache e o fluxo de trabalho da aplicação, veja Introdução ao acelerador distribuído para armazenamento na nuvem no AKS.
Para remover DACS, siga Remover acelerador distribuído para armazenamento na cloud. Apagar recursos de cache enquanto o controlador está a funcionar e depois desativar o DACS. A desativação remove o controlador e o pré-requisito gerido DaemonSet; não removas esses pré-requisitos separadamente.
- 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
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Este artigo requer a versão v2.83.0 do CLI do Azure ou posterior. Para obter mais informações, consulte Como instalar a CLI do Azure. Desative extensões, por exemplo,
aks-previewcaso ocorram problemas. Instale ou atualize extensões conforme necessário:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Apenas SAN elástico)
Você precisa do cliente de linha de comando Kubernetes,
kubectl. Já está instalado se estiveres a usar Azure Cloud Shell. Você pode instalá-lo localmente executando oaz aks install-clicomando.Verifique se a sua região-alvo é suportada nas regiões de Armazenamento de Contêiner da Azure.
Planeie a configuração do seu pool de nós:
- Usa Linux como tipo de sistema operativo (o Windows não é suportado).
- Selecione um SKU de máquina virtual (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 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.Se usar o Elastic SAN pela primeira vez na subscrição, execute este comando de registo único:
az provider register --namespace Microsoft.ElasticSan
Definir contexto de subscrição
O Terraform pode determinar uma subscrição alvo do Azure através de vários métodos:
-
subscription_idno bloco de fornecedores -
ARM_SUBSCRIPTION_IDvariável de ambiente - CLI do Azure subscrição predefinida
- Identidade gerida (quando em execução no Azure)
Para uso local, defina o contexto CLI do Azure:
az account set --subscription <subscription-id>
Se implementares com o Terraform pela primeira vez na subscrição, executa este comando de registo único:
az provider register --namespace Microsoft.KubernetesConfiguration
# Wait for registration to complete (can take a few minutes)
az provider show --namespace Microsoft.KubernetesConfiguration --query "registrationState" -o tsv
Instalar o Azure Container Storage num novo cluster AKS
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.
Num diretório de trabalho vazio, crie um
main.tfficheiro 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.0" } } } 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" { # NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility name = "acstor" cluster_id = azurerm_kubernetes_cluster.aks.id extension_type = "microsoft.azurecontainerstoragev2" }Inicialize o diretório de trabalho para descarregar o fornecedor AzureRM.
terraform initRevê as alterações planeadas.
terraform planAplique a configuração para criar o grupo de recursos, o cluster AKS e a extensão Azure Container Storage. O destacamento normalmente demora 5 minutos.
terraform apply
Quando termina, o cluster tem instalado o componente instalador Azure Container Storage. A instalação do driver CSI é adiada até criares uma classe de armazenamento. Siga as instruções para criar uma classe de armazenamento NVMe local ou uma classe de armazenamento Elastic SAN .
Instale o Azure Container Storage num cluster AKS existente
Se o seu cluster AKS já existir e o gerir fora do Terraform, ainda pode ativar o Azure Container Storage ao criar 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.0"
}
}
}
provider "azurerm" {
features {}
}
data "azurerm_kubernetes_cluster" "existing" {
name = "existing-aks"
resource_group_name = "existing-aks-rg"
}
resource "azurerm_kubernetes_cluster_extension" "container_storage" {
# NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility
name = "acstor"
cluster_id = data.azurerm_kubernetes_cluster.existing.id
extension_type = "microsoft.azurecontainerstoragev2"
}
Execute terraform init (se for um novo diretório de trabalho) seguido de terraform apply instalar o Azure Container Storage no cluster alvo. O destacamento normalmente demora 5 minutos.
Quando termina, o cluster tem instalado o componente instalador Azure Container Storage. A instalação do driver CSI é adiada até criares uma classe de armazenamento. Siga as instruções para criar uma classe de armazenamento NVMe local ou uma classe de armazenamento Elastic SAN .
Verificar a instalação
Conectar-se ao cluster AKS
Antes de executar os comandos de verificação, certifique-se de que o seu kubeconfig local está definido para o cluster alvo:
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Se gerir vários clusters, adicione --overwrite-existing para substituir um contexto existente ou use --context para definir um nome de contexto único.
Verificar instalador (modo apenas para instaladores)
Após uma ativação apenas do instalador, verifique se o instalador está presente:
kubectl get deploy -n kube-system | grep acstor
Resultados esperados:
acstor-cluster-manager 2/2 2 2 4d9h
acstor-geneva 2/2 2 2 4d9h
Verificar acelerador distribuído para armazenamento na nuvem
Para uma instalação DACS, verifique a extensão em vez de procurar uma StorageClass:
az k8s-extension show \
--cluster-type managedClusters \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--name distributedaccelerator \
--query '{extensionType:extensionType,provisioningState:provisioningState,currentVersion:currentVersion,releaseTrain:releaseTrain}' \
--output table
Confirme que o tipo de extensão é microsoft.distributedaccelerator e que o seu estado de provisionamento é Succeeded. O currentVersion campo mostra a versão instalada. O nome do recurso da extensão é minúsculo distributedaccelerator, ao contrário da opção distributedAcceleratorde armazenamento CLI .
Depois de se ligar ao cluster, verifique o controlador, o DaemonSet pré-requisito e o CRD:
kubectl rollout status deployment/dacs-manager --namespace kube-system --timeout=5m
kubectl get deployment dacs-manager --namespace kube-system
kubectl rollout status daemonset/dacs-prereq --namespace kube-system --timeout=10m
kubectl get daemonset dacs-prereq --namespace kube-system
kubectl get pods --namespace kube-system --selector app.kubernetes.io/name=dacs-prereq --output wide
kubectl get crd caches.storage.azure.com
Continuar apenas depois de a extensão estar no Succeeded estado, o controlador ter uma réplica pronta e o DaemonSet pré-requisito ter um pod Pronto em cada nó de cache rotulado. Um DaemonSet com zero réplicas desejadas não verifica a preparação para o NVMe. Se uma verificação falhar, consulte Resolver problemas do acelerador distribuído para armazenamento na cloud.
Os passos de verificação de classe de armazenamento e de drivers CSI que se seguem aplicam-se a tipos de armazenamento de volumes persistentes, não a DACS.
Verificar a presença da classe de armazenamento
Depois de criar uma classe de armazenamento ou ativar um tipo de armazenamento, verifique a classe de armazenamento:
kubectl get sc
Exemplo de saída:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
azuresan-csi san.csi.azure.com Delete Immediate false 4d7h
local-csi localdisk.csi.acstor.io Delete WaitForFirstConsumer true 4d5h
Verificar a instalação do driver
Verifique os componentes esperados após a criação da classe de armazenamento ou a instalação do tipo de armazenamento:
kubectl get pod -n kube-system | grep acstor
Exemplo de saída:
pod/acstor-azuresan-csi-driver-jrqd2 7/7 Running 0 142m
pod/acstor-azuresan-csi-driver-tcdp8 7/7 Running 0 142m
pod/acstor-cluster-manager-76c67496f9-8ln5d 2/2 Running 0 3h54m
pod/acstor-cluster-manager-76c67496f9-b4c8q 2/2 Running 0 3h54m
pod/acstor-geneva-588bcbcc67-4tr5d 3/3 Running 0 3h54m
pod/acstor-geneva-588bcbcc67-k7j7k 3/3 Running 0 3h54m
pod/acstor-node-agent-46v47 1/1 Running 0 142m
pod/acstor-node-agent-6c99m 1/1 Running 0 142m
pod/acstor-otel-collector-4lfgz 1/1 Running 0 142m
pod/acstor-otel-collector-hw9nd 1/1 Running 0 142m
Debugging
Para a depuração, observe o sistema à medida que os componentes são implementados.
kubectl get events -n kube-system --watch
kubectl get pod -n kube-system --watch
Inspecionar os recursos personalizados HelmRelease e OCIRepository usados pelo instalador:
kubectl describe helmreleases.helm.installer.acstor.io -n kube-system
kubectl describe ocirepositories.source.installer.acstor.io -n kube-system
Próximos passos
- Use Azure Container Storage com NVMe local
- Utilize o Azure Container Storage com o Elastic SAN
- Comece com o acelerador distribuído para armazenamento na cloud no AKS (pré-visualização)
- Visão geral da implantação de um banco de dados PostgreSQL altamente disponível no Serviço Kubernetes do Azure (AKS)
- Perguntas frequentes (FAQ) sobre Azure Container Storage