Desinstalar os serviços de dados habilitados para Azure Arc

Este artigo descreve como excluir do Azure recursos do serviço de dados habilitado para o Azure Arc.

Aviso

Quando você exclui recursos conforme descrito neste artigo, essas ações são irreversíveis.

A implantação dos serviços de dados habilitados para Azure Arc envolve a implantação de um controlador de dados do Azure Arc e instâncias da Instância Gerenciada de SQL dos serviços de dados habilitada pelo Azure Arc ou pelo servidor PostgresQL habilitado para Azure Arc. A implantação cria vários artefatos, como:

  • CRDs (definições de recurso personalizado)
  • Funções de cluster
  • Associações da função de cluster
  • Serviços de API
  • Namespace, se ele não existia

No modo de conexão direta, há artefatos adicionais, como:

  • Extensões de cluster
  • Locais personalizados

Antes

Antes de excluir um recurso como a Instância Gerenciada de SQL habilitada pelo Azure Arc ou pelo controlador de dados, certifique-se de concluir as seguintes ações primeiro:

  1. Para um controlador de dados de conexão indireta, exporte e carregue as informações de uso no Azure para obter um cálculo de cobrança preciso seguindo as instruções descritas em Carregar dados de cobrança no Azure – Modo de conexão indireta.

  2. Verifique se todos os serviços de dados que foram criados no controlador de dados foram desinstalados conforme descrito em:

Depois de excluir todas as instâncias existentes da Instância Gerenciada de SQL habilitadas pelo Azure Arc e/ou pelo servidor PostgreSQL habilitado para Azure Arc, exclua o controlador de dados usando um dos métodos apropriados para o modo de conectividade.

Observação

Se você implantou o controlador de dados no modo de conexão direta, siga as etapas para:

Se você implantou o controlador de dados no modo de conexão indireta, siga as etapas para Excluir o controlador de dados no modo de conexão indireta.

Excluir o controlador de dados no modo de conexão direta usando o portal do Azure

Do portal do Azure:

  1. Navegue até o grupo de recursos e exclua o controlador de dados.
  2. Selecione o cluster de Kubernetes habilitado para Azure Arc e acesse a página Visão geral:
    • Selecione Extensões em Configurações
    • Na página Extensões, selecione a extensão de serviços de dados do Azure Arc (do tipo microsoft.arcdataservices) e escolha Desinstalar
  3. Opcionalmente, exclua a localização personalizada na qual o controlador de dados está implantado.
  4. Você também pode excluir o namespace no cluster de Kubernetes se não existir outro recurso criado no namespace, opcionalmente.

Consulte Gerenciar recursos do Azure usando o portal do Azure.

Excluir o controlador de dados no modo de conexão direta usando a CLI do Azure

Para excluir o controlador de dados no modo de conexão direta com a CLI do Azure, há três etapas:

  1. Excluir o controlador de dados
  2. Excluir a extensão do controlador de dados
  3. Excluir a localização personalizada

Excluir o controlador de dados

Depois de se conectar ao cluster de Kubernetes, execute o seguinte comando para excluir o controlador de dados:

az arcdata dc delete --name <name of datacontroller> --resource-group <name of resource-group>

## Example
az arcdata dc delete --name arcdc --resource-group myrg

Excluir a extensão do controlador de dados

Depois de excluir o controlador de dados, exclua a extensão do controlador de dados, conforme descrito abaixo. Para obter o nome da extensão do controlador de dados do Arc, navegue até a página Visão geral do cluster conectado no portal do Azure e procure-o na guia Extensões ou use o comando abaixo para obter uma lista de todas as extensões do cluster:

az k8s-extension list --resource-group <name of resource-group> --cluster-name <name of connected cluster> --cluster-type connectedClusters

## Example
az k8s-extension list --resource-group myrg --cluster-name mycluster --cluster-type  connectedClusters

Depois de obter o nome da extensão do controlador de dados do Arc, exclua-a executando:

az k8s-extension delete --resource-group <name of resource-group> --cluster-name <name of connected cluster> --cluster-type connectedClusters --name <name of your Arc data controller extension> 

## Example
az k8s-extension delete --resource-group myrg --cluster-name mycluster --cluster-type connectedClusters --name myadsextension 

Aguarde alguns minutos para que as ações acima sejam concluídas. Verifique se o controlador de dados foi excluído executando o comando abaixo para verificar o status:

kubectl get datacontrollers -A

Excluir a localização personalizada

Se não houver nenhuma outra extensão associada a essa localização personalizada, exclua a localização personalizada da seguinte maneira:

az customlocation delete --name <Name of customlocation> --resource-group <Name of resource group>

## Example
az customlocation delete --name myCL --resource-group myrg

Excluir o controlador de dados no modo de conexão indireta

Por definição, com uma implantação de conexão indireta do controlador de dados, o portal do Azure não reconhece o cluster de Kubernetes. Portanto, para excluir o controlador de dados, você precisa excluí-lo no cluster de Kubernetes, bem como no portal do Azure em duas etapas.

  1. Excluir o controlador de dados no modo de conexão indireta do cluster
  2. Excluir o controlador de dados no modo de conexão indireta no portal do Azure

Excluir o controlador de dados no modo de conexão indireta do cluster

Exclua o controlador de dados do cluster de Kubernetes executando o seguinte comando:

az arcdata dc delete --name <name of datacontroller> --k8s-namespace <namespace of data controller> --use-k8s

## Example
az arcdata dc delete --name arcdc --k8s-namespace arc --use-k8s

Excluir o controlador de dados no modo de conexão indireta no portal do Azure

No portal do Azure, navegue até o grupo de recursos que contém o controlador de dados e exclua-o.

Excluir os artefatos do cluster de Kubernetes

Depois de excluir o controlador de dados conforme descrito acima, siga as etapas abaixo para remover por completo todos os artefatos relacionados aos serviços de dados habilitados para Azure Arc. A remoção de todos os artefatos pode ser necessária em situações em que você tem uma implantação parcial ou com falha ou simplesmente deseja reinstalar os serviços de dados habilitados para Azure Arc.

## Substitute your namespace into the variable
export mynamespace="arc"


## Delete Custom Resource Definitions
kubectl delete crd datacontrollers.arcdata.microsoft.com
kubectl delete crd postgresqls.arcdata.microsoft.com
kubectl delete crd sqlmanagedinstances.sql.arcdata.microsoft.com
kubectl delete crd sqlmanagedinstancerestoretasks.tasks.sql.arcdata.microsoft.com
kubectl delete crd dags.sql.arcdata.microsoft.com
kubectl delete crd exporttasks.tasks.arcdata.microsoft.com
kubectl delete crd monitors.arcdata.microsoft.com
kubectl delete crd activedirectoryconnectors.arcdata.microsoft.com
kubectl delete crd failovergroups.sql.arcdata.microsoft.com
kubectl delete crd kafkas.arcdata.microsoft.com
kubectl delete crd otelcollectors.arcdata.microsoft.com

## Delete Cluster roles and Cluster role bindings
kubectl delete clusterrole arcdataservices-extension
kubectl delete clusterrole $mynamespace:cr-arc-metricsdc-reader
kubectl delete clusterrole $mynamespace:cr-arc-dc-watch
kubectl delete clusterrole cr-arc-webhook-job
kubectl delete clusterrole $mynamespace:cr-upgrade-worker

kubectl delete clusterrolebinding $mynamespace:crb-arc-metricsdc-reader
kubectl delete clusterrolebinding $mynamespace:crb-arc-dc-watch
kubectl delete clusterrolebinding crb-arc-webhook-job
kubectl delete clusterrolebinding $mynamespace:crb-upgrade-worker

## API services Up to May 2021 release
kubectl delete apiservice v1alpha1.arcdata.microsoft.com
kubectl delete apiservice v1alpha1.sql.arcdata.microsoft.com

## June 2021 release
kubectl delete apiservice v1beta1.arcdata.microsoft.com
kubectl delete apiservice v1beta1.sql.arcdata.microsoft.com

## GA/July 2021 release
kubectl delete apiservice v1.arcdata.microsoft.com
kubectl delete apiservice v1.sql.arcdata.microsoft.com

## Delete mutatingwebhookconfiguration
kubectl delete mutatingwebhookconfiguration arcdata.microsoft.com-webhook-$mynamespace

Opcionalmente, exclua também o namespace da seguinte maneira:

kubectl delete namespace <name of namespace>

## Example:
kubectl delete namespace arc

Verificar se todos os objetos foram excluídos

  1. Execute kubectl get crd e verifique se não há resultados que contêm *.arcdata.microsoft.com.
  2. Execute kubectl get clusterrole e verifique se não há funções de cluster no formato <namespace>:cr-*.
  3. Execute kubectl get clusterrolebindings e verifique se não há associações de função de cluster no formato <namespace>:crb-*.