Remover Azure Container Storage

Este artigo mostra como remover componentes Azure Container Storage do seu cluster Azure Kubernetes Service (AKS). Para limpar recursos, também podes eliminar o cluster AKS ou todo o grupo de recursos.

Importante

Este artigo aplica-se ao Armazenamento de Contentores do Azure (versão 2.x.x). Se você tiver o Armazenamento de Contêiner do Azure (versão 1.x.x) instalado em seu cluster AKS, remova-o seguindo estas etapas.

Remova o acelerador distribuído para armazenamento na nuvem

Antes de remover o acelerador distribuído para armazenamento na cloud:

  1. Parar ou reconfigurar cargas de trabalho que utilizam o serviço de descoberta de cache.
  2. Confirme que os ficheiros de modelo oficiais e os conjuntos de dados oficiais estão presentes no Armazenamento de Blobs do Azure.
  3. Para ou espera pelas cargas de trabalho de aquecimento ativas.
  4. Regista diagnósticos se estiveres a remover o acelerador distribuído para armazenamento na cloud devido a uma falha.

Elimina cada recurso de cache enquanto o controlador ainda está a funcionar para que possa limpar os recursos do servidor de cache. Substitua os valores pelo cache que pretende remover e repita para cada recurso de cache antes de remover o controlador:

CACHE_NAMESPACE=<cache-namespace>
CACHE_NAME=<cache-name>

kubectl delete cache "$CACHE_NAME" --namespace "$CACHE_NAMESPACE" --wait=true
kubectl get cache --namespace "$CACHE_NAMESPACE"
kubectl get pods --namespace "$CACHE_NAMESPACE" --selector app=cacheserver

Confirme que todos os recursos de cache e pods de servidor de cache foram removidos antes de desativar a extensão gerida. Não desinstale diretamente a release Helm da extensão.

Desativar a extensão gerida

A extensão faz a gestão do DaemonSet de pré-requisito do NVMe. Não removas esse DaemonSet separadamente; desativar o DACS remove-o.

Desative apenas o acelerador distribuído para armazenamento na cloud, mantendo os tipos de armazenamento de volumes persistentes do Azure Container Storage instalados:

az aks update \
    --name <cluster-name> \
    --resource-group <resource-group> \
    --disable-azure-container-storage distributedAccelerator

Ao desativar o DACS, remove-se a sua extensão gerida, o controlador e o DaemonSet de pré-requisito NVMe gerido pela extensão em kube-system, mas mantém-se o CRD de Cache.

Verificar remoção

Esta limpeza remove cópias em cache efémeras e componentes DACS. Não apaga ficheiros de modelos de origem ou conjuntos de dados no Armazenamento de Blobs do Azure.

Verifique se não restam recursos de cache nem pods de servidor de cache e que o controlador e o DaemonSet pré-requisito gerido foram removidos:

kubectl get cache -A
kubectl get pods -A --selector app=cacheserver
kubectl get deployment dacs-manager --namespace kube-system --ignore-not-found
kubectl get daemonset dacs-prereq --namespace kube-system --ignore-not-found

Confirme que não resta nenhuma extensão nomeada distributedaccelerator :

az k8s-extension list \
    --cluster-type managedClusters \
    --cluster-name <cluster-name> \
    --resource-group <resource-group> \
    --query "[?name=='distributedaccelerator'].{name:name,state:provisioningState}" \
    --output table

Warning

Não apague manualmente a definição personalizada de recurso (CRD) do DACS a menos que o Suporte do Azure o oriente a fazê-lo. Eliminar o CRD elimina todos os recursos de cache no cluster.

Após a remoção, elimine os rótulos de nós exclusivos de DACS, as identidades, as atribuições de funções, os segredos e as regras de monitorização que não sejam utilizados por outra carga de trabalho. Não removas identidades partilhadas ou atribuições de funções Blob sem verificar as suas outras utilizações.

Elimina o espaço de nomes da cache apenas se for dedicado a DACS e não contiver recursos que precises de manter.

Remova toda a instalação do Azure Container Storage (instalador e drivers CSI)

Elimine todas as declarações de volume persistente (PVCs) e volumes persistentes (PVs) antes de desinstalar a extensão. Remover o Azure Container Storage sem limpar estes recursos pode perturbar as cargas de trabalho em curso. Certifique-se de que nenhuma carga de trabalho ou objeto StorageClass depende do Azure Container Storage antes de continuar.

Remova completamente o Azure Container Storage executando o seguinte comando CLI do Azure. Substitua <cluster-name> e <resource-group> com os seus próprios valores.

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

Remover a extensão com o Terraform

Se provisionaste o Azure Container Storage com o Terraform, remove o recurso de extensão correspondente da tua configuração e aplica a alteração para que o resultado corresponda ao fluxo de trabalho da CLI.

  1. Apaga o azurerm_kubernetes_cluster_extension bloco (ou define count = 0) na tua configuração do Terraform e guarda o ficheiro.

  2. Reveja o plano para confirmar se o Terraform destrói apenas o recurso de extensão.

    terraform plan
    
  3. Aplica o plano para eliminar a extensão. O Terraform apresenta o mesmo resultado do comando CLI: o recurso de extensão é removido e o AKS deixa de reportar o Azure Container Storage como ativado.

    terraform apply
    

Ativar novamente o Armazenamento de Contêiner do Azure

Se anteriormente removeu drivers CSI para um ou mais tipos de armazenamento, pode reativar o tipo de armazenamento executando o seguinte comando CLI do Azure.

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

Comportamento esperado:

  • Especificar um tipo de armazenamento é opcional. Quando não é fornecido um tipo de armazenamento, apenas o componente instalador Azure Container Storage é instalado, caso ainda não esteja presente.
  • Quando um tipo de armazenamento é especificado, instala-se o driver CSI correspondente. Se já existir uma StorageClass para esse tipo de armazenamento, apenas o driver é instalado; caso contrário, uma StorageClass padrão é criada como parte da instalação.

Eliminar o cluster AKS

Para excluir um cluster AKS e todos os volumes persistentes, execute o seguinte comando da CLI do Azure. Substitua <resource-group> e <cluster-name> com os seus próprios valores.

az aks delete --resource-group <resource-group> --name <cluster-name>

O AKS normalmente elimina o seu grupo de recursos de nós geridos quando elimina o cluster. Se uma verificação separada de que esse grupo está ausente devolver Forbidden, regista que a verificação está incompleta: o erro não prova nem presença nem ausência. Peça a um administrador com acesso de leitura a esse grupo de recursos do nó para verificar a remoção, se necessário. Um inventário vazio do grupo de recursos do cluster não confirma a ausência do grupo de recursos de nós separado.

Se o cluster AKS foi criado com o Terraform, também pode removê-lo executando o seguinte comando.

terraform destroy

Este comando elimina todos os recursos que o Terraform gere no diretório de trabalho atual. Isto inclui o cluster, o grupo de recursos e a extensão Azure Container Storage. Execute este comando apenas quando pretende remover toda a implantação.

Eliminar o grupo de recursos

Também pode utilizar o comando az group delete para eliminar o grupo de recursos e todos os recursos que ele contém. Substitua <resource-group> pelo nome do seu grupo de recursos.

az group delete --name <resource-group>

Consulte também