Remova o Armazenamento de Contêineres do Azure

Este artigo mostra como remover componentes do Armazenamento de Contêineres do Azure do cluster do AKS (Serviço de Kubernetes do Azure). Para limpar os recursos, você também pode excluir o cluster do AKS ou todo o grupo de recursos.

Importante

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

Remover o acelerador distribuído para armazenamento em nuvem

Antes de remover o acelerador distribuído para armazenamento em nuvem:

  1. Pare ou reconfigure cargas de trabalho que usam o serviço de descoberta de cache.
  2. Confirme que arquivos de modelo e conjuntos de dados autoritativos estão presentes no Armazenamento de Blobs do Azure.
  3. Pare ou aguarde as cargas de aquecimento ativas.
  4. Registre os diagnósticos se você estiver removendo o acelerador distribuído para armazenamento em nuvem por causa de uma falha.

Exclua cada recurso de cache enquanto o controlador ainda está rodando para que ele possa limpar os recursos do servidor de cache. Substitua os valores pelo cache que você quer 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 gerenciada. Não desinstale diretamente a versão do Helm da extensão.

Desative a extensão gerenciada

A extensão gerencia o DaemonSet de pré-requisito do NVMe. Não remova esse DaemonSet separadamente; desativar o DACS o remove.

Desative apenas o acelerador distribuído para armazenamento em nuvem, 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

Desativar o DACS remove sua extensão gerenciada, controlador e DaemonSet de pré-requisito NVMe gerenciado pela extensão em kube-system, mas mantém o CRD de Cache.

Verificar a remoção

Essa limpeza remove cópias em cache efêmeras e componentes DACS. Ele não exclui arquivos de modelos de origem ou conjuntos de dados no Armazenamento de Blobs do Azure.

Verifique se não restam recursos de cache ou pods de servidor de cache e que o controlador e o DaemonSet pré-requisito gerenciado 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 nenhuma extensão nomeada distributedaccelerator permanece:

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 delete manualmente a definição de recurso personalizada (CRD) do DACS a menos que o Suporte do Azure oriente você a fazer isso. Excluir o CRD exclui todos os recursos cache do cluster.

Após a remoção, exclua rótulos de nó exclusivos do DACS, identidades, atribuições de função, segredos e regras de monitoramento que não sejam usados por outra carga de trabalho. Não remova identidades compartilhadas ou atribuições de funções Blob sem verificar seus outros usos.

Exclua o namespace do cache apenas se ele for dedicado ao DACS e não contiver recursos que você precise manter.

Remover toda a instalação do Armazenamento de contêineres do Azure (instalador e drivers CSI)

Exclua todas as PVCs (reivindicações de volume persistente) e PVs (volumes persistentes) antes de desinstalar a extensão. Remover o Armazenamento de Contêineres do Azure sem limpar esses recursos pode interromper a execução de cargas de trabalho. Verifique se nenhuma carga de trabalho ou objetos StorageClass dependem do Armazenamento de Contêineres do Azure antes de continuar.

Remova totalmente o Armazenamento de Contêineres do Azure executando o seguinte comando da CLI do Azure. Substitua <cluster-name> e <resource-group> pelos 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 você provisionou o Armazenamento de Contêineres do Azure com o Terraform, remova o recurso de extensão correspondente de sua configuração e aplique a alteração para que o resultado corresponda ao fluxo de trabalho da CLI.

  1. Exclua o azurerm_kubernetes_cluster_extension bloco (ou defina count = 0) na configuração do Terraform e salve o arquivo.

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

    terraform plan
    
  3. Aplique o plano para excluir a extensão. O Terraform exibe o mesmo resultado que o comando da CLI: o recurso de extensão é removido e o AKS não relata mais o Armazenamento de Contêineres do Azure como habilitado.

    terraform apply
    

Habilitar novamente o Armazenamento de Contêineres do Azure

Se você tiver removido drivers CSI anteriormente para um ou mais tipos de armazenamento, poderá reabilitar o(s) tipo(s) de armazenamento executando o comando da CLI do Azure a seguir.

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

Comportamento esperado:

  • Especificar um tipo de armazenamento é opcional. Quando nenhum tipo de armazenamento é fornecido, somente o componente instalador do Armazenamento de Contêiner do Azure é instalado, se ele ainda não estiver presente.
  • Quando um tipo de armazenamento é especificado, o driver CSI correspondente é instalado. Se um StorageClass para esse tipo de armazenamento já existir, somente o driver será instalado; caso contrário, um StorageClass padrão é criado como parte da instalação.

Excluir o cluster do AKS

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

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

O AKS normalmente exclui seu grupo de recursos de nós gerenciados quando exclui o cluster. Se uma verificação separada da ausência desse grupo retorna Forbidden, registre que a verificação está incompleta: o erro não comprova nem a presença nem a ausência. Peça a um administrador com acesso de leitura para o grupo de recursos desse nó 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 separado do nó.

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

terraform destroy

Esse comando exclui todos os recursos gerenciados pelo Terraform no diretório de trabalho atual. Isso inclui o cluster, o grupo de recursos e a extensão de Armazenamento de Contêiner do Azure. Execute este comando somente quando você pretende remover toda a implantação.

Exclua o grupo de recursos

Também é possível usar o comando az group delete para excluir o grupo de recursos e todos os recursos contidos. Substitua <resource-group> pelo nome do grupo de recursos.

az group delete --name <resource-group>

Confira também