Поделиться через


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

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

Warning

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

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

  • Пользовательские определения ресурсов (CRD)
  • Cluster roles
  • Привязки ролей кластера
  • API services
  • Пространство имен, если его не существовало прежде

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

  • Cluster extensions
  • Custom locations

Before

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

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

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

После удаления всех существующих экземпляров удалите контроллер данных с помощью одного из соответствующих методов для режима подключения.

Note

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

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

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

Из портал Azure:

  1. Перейдите к группе ресурсов и удалите контроллер данных.
  2. Выберите кластер Kubernetes с поддержкой Azure Arc, перейдите на страницу обзора:
    • Select Extensions under Settings
    • In the Extensions page, select the Azure Arc data services extension (of type microsoft.arcdataservices) and select on Uninstall
  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-*.