CLI を使用した Azure Arc データ コントローラーの作成

前提条件

概要情報については、「Azure Arc 対応データ サービスのデプロイを計画する」のトピックを参照してください。

ツールをインストールする

開始する前に、Azure (az) CLI の arcdata 拡張機能をインストールします。

Azure (az) CLI 用 (arcdata) 拡張機能をインストールする

選択するターゲット プラットフォームに関係なく、データ コントローラーの作成の前に、次の環境変数を設定する必要があります。 これらの環境変数は、データ コントローラーの作成後にメトリックとログ ダッシュボードにアクセスするために使用される資格情報になります。

環境変数を設定する

メトリックとログ ダッシュボードにアクセスするために必要な 2 つの環境変数のセットを次に示します。

環境変数には、ログおよびメトリックサービスのパスワードが含まれます。 パスワードは少なくとも 8 文字で、次の 4 つのカテゴリのうち 3 つのカテゴリの文字が含まれている必要があります。ラテン文字の大文字、ラテン文字の小文字、数字、英数字以外の文字。

## variables for Metrics and Monitoring dashboard credentials
export AZDATA_LOGSUI_USERNAME=<username for Kibana dashboard>
export AZDATA_LOGSUI_PASSWORD=<password for Kibana dashboard>
export AZDATA_METRICSUI_USERNAME=<username for Grafana dashboard>
export AZDATA_METRICSUI_PASSWORD=<password for Grafana dashboard>

Kubernetes クラスターへの接続

Kubernetes クラスターに接続して認証し、Azure Arc データ コントローラーの作成を開始する前に既存の Kubernetes コンテキストを選択します。 Kubernetes クラスターまたはサービスへの接続方法はさまざまです。 Kubernetes API サーバーへの接続方法については、使用している Kubernetes ディストリビューションまたはサービスのドキュメントを参照してください。

現在の Kubernetes 接続があること、および現在のコンテキストは、次のコマンドを使用して確認できます。

kubectl cluster-info
kubectl config current-context

Azure Arc データ コントローラーを作成する

以下のセクションでは、特定の種類の Kubernetes プラットフォームについて説明します。 プラットフォームの指示に従います。

ヒント

Kubernetes クラスターがない場合は、Azure で作成できます。 クイックスタート: Azure Arc 対応データ サービスのデプロイ - 直接接続モード - Azure portal に関するページの手順に従って、プロセス全体を実行します。

次に、Azure Kubernetes Service (AKS) での作成に関する説明に従ってください。

Azure Kubernetes Service (AKS) に作成する

既定では、AKS デプロイ プロファイルでは managed-premium ストレージ クラスが使用されます。 managed-premium ストレージ クラスは、Premium ディスクを持つ VM イメージを使用してデプロイされた VM がある場合にのみ機能します。

ストレージ クラスとして managed-premium を使用する場合は、次のコマンドを実行してデータ コントローラーをデプロイできます。 コマンドのプレースホルダーを、リソース グループ名、サブスクリプション ID、Azure の場所に置き換えます。

az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace <namespace> --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --use-k8s

#Example:
#az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace arc --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --use-k8s

どのストレージ クラスを使用するかわからない場合は、使用している VM の種類に関係なくサポートされる default ストレージ クラスを使用してください。 最速のパフォーマンスが得られなくなるだけです。

default ストレージ クラスを使用する場合は、次のコマンドを実行できます。

az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-aks-default-storage  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

コマンドを実行したら、「作成状態の監視」に進みます。

Azure Stack HCI の AKS に作成する

ストレージを構成する (Azure Stack HCI と AKS-HCI)

AKS-HCI で Azure Stack HCI を使用している場合は、fsType を使用してカスタム ストレージ クラスを作成します。

fsType: ext4

この型を使用して、データ コントローラーをデプロイします。 詳細な手順については、AKS on Azure Stack HCI ディスクのカスタム ストレージ クラスを作成するを参照してください。

既定では、デプロイ プロファイルでは default という名前のストレージ クラスとサービス タイプ LoadBalancer が使用されます。

次のコマンドを実行すると、default ストレージ クラスとサービス タイプ LoadBalancer を使用してデータ コントローラーを作成できます。

az arcdata dc create --profile-name azure-arc-aks-hci  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-aks-hci  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

コマンドを実行したら、「作成状態の監視」に進みます。

Azure Red Hat OpenShift (ARO) に作成する

カスタム デプロイ プロファイルを作成する

Azure RedHat Open Shift には、プロファイル azure-arc-azure-openshift を使用します。

az arcdata dc config init --source azure-arc-azure-openshift --path ./custom

データ コントローラーの作成

次のコマンドを実行して、データ コントローラーを作成します。

az arcdata dc create --profile-name azure-arc-azure-openshift  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example
#az arcdata dc create --profile-name azure-arc-azure-openshift  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

コマンドを実行したら、「作成状態の監視」に進みます。

Red Hat OpenShift Container Platform (OCP) に作成する

ストレージ クラスを定義する

使用するストレージ クラスを決定するには、次のコマンドを実行します。

kubectl get storageclass

カスタム デプロイ プロファイルを作成する

次のコマンドを実行して、azure-arc-openshift デプロイ プロファイルに基づいて新しいカスタムのデプロイ プロファイル ファイルを作成します。 このコマンドでは、custom というディレクトリが現在の作業ディレクトリに作成され、カスタムのデプロイ プロファイル ファイル control.json がそのディレクトリに作成されます。

OpenShift Container Platform には、プロファイル azure-arc-openshift を使用します。

az arcdata dc config init --source azure-arc-openshift --path ./custom

ストレージ クラスを設定する

次に、下記のコマンドの <storageclassname> を、(上記の kubectl get storageclass コマンドを実行して決定された) 使用するストレージ クラスの名前に置き換えることによって、目的のストレージ クラスを設定します。

az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"

#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"

LoadBalancer を設定する (省略可能)

既定では、azure-arc-openshift デプロイ プロファイルでは NodePort がサービス タイプとして使用されます。 ロード バランサーと統合された OpenShift クラスターを使用している場合は、次のコマンドを使用して、LoadBalancer サービス タイプを使用するように構成を変更できます。

az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"

データ コントローラーの作成

これで、次のコマンドを使用してデータ コントローラーを作成する準備ができました。

Note

--path パラメーターは、control.json ファイル自体ではなく、control.json ファイルを含むディレクトリを指している必要があります。

Note

OpenShift Container Platform にデプロイする場合は、--infrastructure パラメーター値を指定します。 オプションは、awsazurealibabagcponpremises です。

az arcdata dc create --path ./custom  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>

#Example:
#az arcdata dc create --path ./custom  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises

コマンドを実行したら、「作成状態の監視」に進みます。

オープンソースのアップストリーム Kubernetes (kubeadm) に作成する

既定では、kubeadm デプロイ プロファイルでは、local-storage という名前のストレージ クラスとサービス タイプ NodePort が使用されます。 これで問題ない場合は、目的のストレージ クラスとサービス タイプを設定する次の手順をスキップして、後述する az arcdata dc create コマンドをすぐに実行できます。

デプロイ プロファイルをカスタマイズして特定のストレージ クラスやサービス タイプを指定する場合は、まず次のコマンドを実行して、kubeadm デプロイ プロファイルに基づいて新しいカスタムのデプロイ プロファイル ファイルを作成します。 このコマンドでは、custom というディレクトリが現在の作業ディレクトリに作成され、カスタムのデプロイ プロファイル ファイル control.json がそのディレクトリに作成されます。

az arcdata dc config init --source azure-arc-kubeadm --path ./custom 

次のコマンドを実行して、使用可能なストレージ クラスを検索できます。

kubectl get storageclass

次に、下記のコマンドの <storageclassname> を、(上記の kubectl get storageclass コマンドを実行して決定された) 使用するストレージ クラスの名前に置き換えることによって、目的のストレージ クラスを設定します。

az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"

#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"

既定では、kubeadm デプロイ プロファイルでは NodePort がサービス タイプとして使用されます。 ロードバランサーと統合された Kubernetes クラスターを使用している場合は、次のコマンドを使用して構成を変更できます。

az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"

これで、次のコマンドを使用してデータ コントローラーを作成する準備ができました。

Note

OpenShift Container Platform にデプロイする場合は、--infrastructure パラメーター値を指定します。 オプションは、awsazurealibabagcponpremises です。

az arcdata dc create --path ./custom  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>

#Example:
#az arcdata dc create --path ./custom - --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises

コマンドを実行したら、「作成状態の監視」に進みます。

AWS Elastic Kubernetes Service (EKS) に作成する

既定では、EKS のストレージ クラスは gp2 で、サービス タイプは LoadBalancer です。

次のコマンドを実行し、提供されている EKS デプロイ プロファイルを使用してデータ コントローラーを作成します。

az arcdata dc create --profile-name azure-arc-eks  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-eks  --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

コマンドを実行したら、「作成状態の監視」に進みます。

Google Cloud Kubernetes Engine Service (GKE) に作成する

既定では、GKE のストレージ クラスは standard で、サービス タイプは LoadBalancer です。

次のコマンドを実行し、提供されている GKE デプロイ プロファイルを使用してデータ コントローラーを作成します。

az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

コマンドを実行したら、「作成状態の監視」に進みます。

作成状態の監視

コントローラーを完全に作成するには数分かかります。 次のコマンドを使用して、別のターミナル ウィンドウで進行状況を監視できます。

Note

次のコマンド例では、arc-dc という名前のデータ コントローラーと arc という名前の Kubernetes 名前空間が作成されていることを前提としています。 別の値を使用した場合は、それに応じてスクリプトを更新します。

kubectl get datacontroller/arc-dc --namespace arc
kubectl get pods --namespace arc

次のようなコマンドを実行して、特定のポッドの作成状態を確認することもできます。 これは特に、何らの問題をトラブルシューティングするのに役立ちます。

kubectl describe po/<pod name> --namespace arc

#Example:
#kubectl describe po/control-2g7bl --namespace arc

作成の問題のトラブルシューティング

作成で問題が発生した場合は、「トラブルシューティング ガイド」を参照してください。