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 プラットフォームについて説明します。 プラットフォームの指示に従います。
- Azure Kubernetes Service (AKS)
- Azure Stack HCI 上の AKS
- Azure Red Hat OpenShift (ARO)
- Red Hat OpenShift Container Platform (OCP)
- オープンソースのアップストリーム Kubernetes (kubeadm)
- AWS Elastic Kubernetes Service (EKS)
- Google Cloud Kubernetes Engine Service (GKE)
ヒント
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
パラメーター値を指定します。 オプションは、aws
、azure
、alibaba
、gcp
、onpremises
です。
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
パラメーター値を指定します。 オプションは、aws
、azure
、alibaba
、gcp
、onpremises
です。
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
作成の問題のトラブルシューティング
作成で問題が発生した場合は、「トラブルシューティング ガイド」を参照してください。