共用方式為


解除安裝已啟用 Azure Arc 的資料服務

本文描述如何從 Azure 刪除已啟用 Azure Arc 的資料服務資源。

警告

當您如本文所述刪除資源時,這些動作是無法復原的。

部署已啟用 Azure Arc 的資料服務牽涉到部署 Azure Arc 資料控制器,以及已啟用 Azure Arc 的 SQL 受控執行個體或已啟用 Azure Arc 的 PostgresQL 伺服器的資料服務執行個體。 部署會建立數個成品,例如:

  • 自訂資源定義 (CRD)
  • 叢集角色
  • 叢集角色繫結
  • API 服務
  • 命名空間,如果之前不存在

在直接連線模式中,還有其他成品,例如:

  • 叢集擴充功能
  • 自訂位置

之前

刪除已啟用 Azure Arc 的 SQL 受控執行個體或資料控制器等資源之前,請確保先完成下列動作:

  1. 針對間接連線的資料控制器,請依照將計費資料上傳至 Azure - 間接連接模式中所述的指示,將使用量資訊匯出並上傳至 Azure 以進行精確的計費計算。

  2. 確保已在資料控制器上建立的所有資料服務都會解除安裝,如下所述:

刪除已啟用 Azure Arc 的 SQL 受控執行個體和/或已啟用 Azure Arc 的 PostgreSQL 伺服器的任何現有執行個體之後,請對連線模式使用其中一個適當方法刪除資料控制器。

注意

如果您以直接連線模式部署資料控制器,請遵循下列步驟,以便:

如果您以間接連線模式部署資料控制器,請遵循步驟,在間接連線模式中刪除資料控制器

使用 Azure 入口網站在直接連線模式中刪除資料控制器

從 Azure 入口網站:

  1. 瀏覽至資源群組並刪除資料控制器。
  2. 選取已啟用 Azure Arc 的 Kubernetes 叢集,移至 [概觀] 頁面:
    • 選取 [設定] 底下的 [延伸模組]
    • 在 [延伸模組] 頁面中,選取 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-* 的任何叢集角色繫結。