解除安裝已啟用 Azure Arc 的資料服務
本文描述如何從 Azure 刪除已啟用 Azure Arc 的資料服務資源。
警告
當您如本文所述刪除資源時,這些動作是無法復原的。
部署已啟用 Azure Arc 的資料服務牽涉到部署 Azure Arc 資料控制器,以及已啟用 Azure Arc 的 SQL 受控執行個體或已啟用 Azure Arc 的 PostgresQL 伺服器的資料服務執行個體。 部署會建立數個成品,例如:
- 自訂資源定義 (CRD)
- 叢集角色
- 叢集角色繫結
- API 服務
- 命名空間,如果之前不存在
在直接連線模式中,還有其他成品,例如:
- 叢集擴充功能
- 自訂位置
之前
刪除已啟用 Azure Arc 的 SQL 受控執行個體或資料控制器等資源之前,請確保先完成下列動作:
針對間接連線的資料控制器,請依照將計費資料上傳至 Azure - 間接連接模式中所述的指示,將使用量資訊匯出並上傳至 Azure 以進行精確的計費計算。
確保已在資料控制器上建立的所有資料服務都會解除安裝,如下所述:
刪除已啟用 Azure Arc 的 SQL 受控執行個體和/或已啟用 Azure Arc 的 PostgreSQL 伺服器的任何現有執行個體之後,請對連線模式使用其中一個適當方法刪除資料控制器。
注意
如果您以直接連線模式部署資料控制器,請遵循下列步驟,以便:
- 使用 Azure 入口網站在直接連線模式中刪除資料控制器或
- 使用 Azure CLI 在直接連線模式中刪除資料控制器,然後從 Azure 入口網站或 CLI 刪除資料控制器,然後 (2) 刪除 Kubernetes 叢集成品。
如果您以間接連線模式部署資料控制器,請遵循步驟,在間接連線模式中刪除資料控制器。
使用 Azure 入口網站在直接連線模式中刪除資料控制器
從 Azure 入口網站:
- 瀏覽至資源群組並刪除資料控制器。
- 選取已啟用 Azure Arc 的 Kubernetes 叢集,移至 [概觀] 頁面:
- 選取 [設定] 底下的 [延伸模組]
- 在 [延伸模組] 頁面中,選取 Azure Arc 資料服務延伸模組 (類型為
microsoft.arcdataservices
),然後選取 [解除安裝]
- 選擇性刪除資料控制器部署所在的自訂位置。
- 如果命名空間中沒有建立其他資源,您也可以選擇性刪除 Kubernetes 叢集上的命名空間。
使用 Azure CLI 在直接連線模式中刪除資料控制器
若要使用 Azure CLI 於直接連線模式中刪除資料控制器,有三個步驟:
刪除資料控制器
連線到 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 入口網站中刪除,使用兩個步驟。
在間接連線模式中從叢集刪除資料控制器
執行下列命令,從 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
驗證已刪除所有物件
- 執行
kubectl get crd
並確保沒有包含*.arcdata.microsoft.com
的任何結果。 - 執行
kubectl get clusterrole
並確保沒有格式<namespace>:cr-*
的任何叢集角色。 - 執行
kubectl get clusterrolebindings
並確保沒有格式<namespace>:crb-*
的任何叢集角色繫結。