Удаление служб данных с поддержкой Azure Arc

В этой статье описывается удаление ресурсов службы данных с поддержкой Azure Arc из Azure.

Предупреждение

Приведенные в этой статье действия по удалению ресурсов являются необратимыми.

Развертывание служб данных с поддержкой Azure Arc включает развертывание контроллера данных Azure Arc и экземпляров служб данных, Управляемый экземпляр SQL включенных сервером PostgresQL с поддержкой Azure Arc или Azure Arc. Развертывание создает несколько артефактов, таких как:

  • Пользовательские определения ресурсов (CRD)
  • Роли кластера
  • Привязки роли кластера
  • Службы API
  • Пространство имен, если оно не существовало раньше

В режиме непосредственного подключения существуют дополнительные артефакты, такие как:

  • Расширения кластера
  • Настраиваемые расположения

Перед

Прежде чем удалить ресурс, например Управляемый экземпляр SQL включен azure Arc или контроллером данных, сначала выполните следующие действия:

  1. Для косвенно подключенного контроллера данных экспортируйте и отправьте сведения об использовании в Azure для точного вычисления выставления счетов, следуя инструкциям, описанным в разделе "Отправка данных о выставлении счетов в Azure" — косвенно подключенный режим.

  2. Убедитесь, что все службы данных, создаваемые на контроллере данных, удаляются, как описано ниже.

После удаления всех существующих экземпляров Управляемый экземпляр SQL, включенных сервером PostgreSQL с поддержкой Azure Arc и (или) с поддержкой Azure Arc, удалите контроллер данных с помощью одного из соответствующих методов для режима подключения.

Примечание.

Если вы развернули контроллер данных непосредственно в подключенном режиме, выполните следующие действия.

Если вы развернули контроллер данных в косвенно подключенном режиме, выполните действия по удалению контроллера данных в косвенно подключенном режиме.

Удаление контроллера данных в режиме прямого подключения с помощью портал Azure

Из портал Azure:

  1. Перейдите к группе ресурсов и удалите контроллер данных.
  2. Выберите кластер Kubernetes с поддержкой Azure Arc, перейдите на страницу обзора:
    • Выберите расширения в Параметры
    • На странице "Расширения" выберите расширение служб данных Azure Arc (типаmicrosoft.arcdataservices) и нажмите кнопку "Удалить"
  3. При необходимости удалите пользовательское расположение, в которое развернут контроллер данных.
  4. При необходимости можно также удалить пространство имен в кластере Kubernetes, если в пространстве имен отсутствуют другие ресурсы.

См. статью Управление ресурсами Azure с помощью портала Azure.

Удаление контроллера данных в режиме прямого подключения с помощью Azure CLI

Чтобы удалить контроллер данных в режиме непосредственного подключения к Azure CLI, выполните три действия.

  1. Удаление контроллера данных
  2. Удаление расширения контроллера данных
  3. Удаление настраиваемого расположения

Удаление контроллера данных

После подключения к кластеру Kubernetes выполните следующую команду, чтобы удалить контроллер данных:

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

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

Удаление расширения контроллера данных

После удаления контроллера данных удалите расширение контроллера данных, как описано ниже. Чтобы получить имя расширения контроллера данных Arc, можно перейти на страницу обзора подключенного кластера в портал Azure и просмотреть на вкладке "Расширения" или воспользоваться следующей командой, чтобы получить список всех расширений в кластере:

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

Получив имя расширения контроллера данных Arc, удалите его, выполнив следующую команду:

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 

Подождите несколько минут до завершения указанных выше действий. Убедитесь, что контроллер данных удален, выполнив следующую команду, чтобы проверить состояние:

kubectl get datacontrollers -A

Удаление настраиваемого расположения

Если с этим пользовательским расположением нет других расширений, перейдите к удалению настраиваемого расположения следующим образом:

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

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

Удаление контроллера данных в косвенно подключенном режиме

По определению, при косвенном развертывании контроллера данных портал Azure не знает о кластере Kubernetes. Поэтому для удаления контроллера данных необходимо удалить его в кластере Kubernetes, а также портал Azure в двух шагах.

  1. Удаление контроллера данных в косвенно подключенном режиме из кластера
  2. Удаление контроллера данных в косвенно подключенном режиме из портал Azure

Удаление контроллера данных в косвенно подключенном режиме из кластера

Удалите контроллер данных из кластера Kubernetes, выполнив следующую команду:

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

Удаление контроллера данных в косвенно подключенном режиме из портал Azure

В портал Azure перейдите к группе ресурсов, содержащей контроллер данных, и удалите ее.

Удаление артефактов кластера Kubernetes

После удаления контроллера данных, как описано выше, выполните приведенные ниже действия, чтобы полностью удалить все артефакты, связанные с службами данных с поддержкой Azure Arc. Удаление всех артефактов может потребоваться в ситуациях, когда у вас есть частичное или неудачное развертывание или просто требуется переустановить службы данных с поддержкой 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

При необходимости удалите пространство имен следующим образом:

kubectl delete namespace <name of namespace>

## Example:
kubectl delete namespace arc

Проверка удаления всех объектов

  1. Запустите kubectl get crd и убедитесь, что результаты не содержатся *.arcdata.microsoft.com.
  2. Запустите kubectl get clusterrole и убедитесь, что в формате <namespace>:cr-*нет ролей кластера.
  3. Запустите kubectl get clusterrolebindings и убедитесь, что привязки роли кластера отсутствуют в формате <namespace>:crb-*.