Azure Arc 対応データ サービスをアンインストールする

この記事では、Azure から Azure Arc 対応データ サービス リソースを削除する方法について説明します。

警告

この記事で説明されているように、リソースを削除すると、これらのアクションを元に戻すことはできません。

Azure Arc 対応データ サービスをデプロイするには、Azure Arc データ コントローラーとデータ サービスのインスタンス (Azure Arc 対応 SQL Managed Instance や Azure Arc 対応 PostgresQL サーバーなど) をデプロイする必要があります。 デプロイによって、次のような複数の成果物が作成されます。

  • カスタム リソース定義 (CRD)
  • クラスターの役割
  • クラスターの役割のバインド
  • API サービス
  • 名前空間 (前に存在していなかった場合)

直接接続モードでは、次のような追加の成果物があります。

  • クラスター拡張機能
  • カスタムの場所

以前

Azure Arc 対応 SQL Managed Instance やデータ コントローラーなどのリソースを削除する前に、まず次の操作を完了する必要があります。

  1. 間接接続のデータ コントローラーについては、Azure への課金データのアップロード (間接接続モード) に関するページに記載されている手順に従って、使用状況情報をエクスポートし、Azure にアップロードして正確な課金計算が行われるようにする必要があります。

  2. データ コントローラーに作成されているすべてのデータ サービスを、次のようにしてアンインストールしてください。

Azure Arc 対応 SQL Managed Instance または Azure Arc 対応 PostgreSQL サーバーの既存のインスタンスを削除した後で、接続モードの適切な方法のいずれかを使用してデータ コントローラーを削除します。

Note

直接接続モードでデータ コントローラーをデプロイした場合は、次の手順に従います。

間接接続モードでデータ コントローラーをデプロイした場合は、間接接続モードでのデータ コントローラーの削除に関するページの手順に従います。

Azure portal を使用して直接接続モードでデータ コントローラーを削除する

Azure portal から次を行います。

  1. リソース グループを参照し、データ コントローラーを削除します。
  2. Azure Arc 対応 Kubernetes クラスターを選択し、[概要] ページに進みます。
    • [設定] で [拡張機能] を選択します
    • [拡張機能] ページで、Azure Arc データ サービス拡張機能 (microsoft.arcdataservices 型) を選択し、[アンインストール] を選択します
  3. 必要に応じて、データ コントローラーが配置されているカスタムの場所を削除します。
  4. 必要に応じて、名前空間にほかのリソースが作成されていない場合は、Kubernetes クラスターの名前空間を削除することもできます。

Manage Azure resources by using the Azure portal (Azure portal を使用した Azure リソースの管理)」を参照してください。

Azure CLI を使用して直接接続モードでデータ コントローラーを削除する

Azure CLI を使用して直接接続モードのデータ コントローラーを削除するには、次の 3 つの手順を実行します。

  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 portal で接続されたクラスターの [概要] ページに移動し、[拡張機能] タブを参照するか、次のコマンドを使用してクラスター上のすべての拡張機能の一覧を取得します。

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 portal によって Kubernetes クラスターは認識されません。 そのため、データ コントローラーを削除するには、Azure portal だけでなく、Kubernetes クラスターでも 2 つの手順で削除する必要があります。

  1. 間接接続モードでデータ コントローラーをクラスターから削除する
  2. 間接接続モードでデータ コントローラーを Azure portal から削除する

間接接続モードでデータ コントローラーをクラスターから削除する

次のコマンドを実行して、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 portal から削除する

Azure portal から、データ コントローラーを含むリソース グループを参照し、削除します。

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-* 形式のクラスターの役割のバインディングがないことを確認します。