共用方式為


使用 CLI 建立 Azure Arc 資料控制器

必要條件

如需概觀資訊,請檢閱規劃已啟用 Azure Arc 的資料服務部署主題。

安裝工具

開始之前,請先安裝適用於 Azure (az) CLI 的 arcdata 延伸模組。

安裝適用於 Azure (az) CLI 的 (arcdata) 擴充功能

無論您選擇哪一個目標平台,您都必須先設定下列環境變數,再建立資料控制器。 在建立資料控制器之後,這些環境變數會變成用於存取計量和記錄儀表板的認證。

設定環境變數

以下是要存取計量和記錄儀表板所需的兩組環境變數。

環境變數包含記錄和計量服務的密碼。 密碼長度必須至少為八個字元,且包含下列四個類別的其中三種:拉丁大寫字母、拉丁小寫字母、數字和非英數字元。

## 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 叢集並進行驗證,並選取現有的 Kubernetes 內容,然後才能開始建立 Azure Arc 資料控制器。 連線至 Kubernetes 叢集或服務的方式會有所不同。 請參閱您所用 Kubernetes 發行版本或服務的文件,以了解如何連線到 Kubernetes API 伺服器。

您可以查看目前是否有 Kubernetes 連線,並使用下列命令來確認目前的內容。

kubectl cluster-info
kubectl config current-context

建立 Azure Arc 資料控制器

下列各節會提供特定 Kubernetes 平台類型的指示。 請遵循您的平台所適用的指示。

提示

如果您沒有 Kubernetes 叢集,則可以在 Azure 上建立一個。 遵循快速入門:部署已啟用 Azure Arc 的資料服務 - 直接連線模式 - Azure 入口網站中的指示,逐步完成整個程序。

然後,遵循在 Azure Kubernetes Service (AKS) 上建立下的指示。

在 Azure Kubernetes Service (AKS) 上建立

根據預設,AKS 部署設定檔會使用 managed-premium 儲存類別。 只有在 VM 是使用具有進階磁碟的 VM 映像加以部署時,managed-premium 儲存類別才有作用。

如果您要使用 managed-premium 作為儲存類別,則可以執行下列命令來建立資料控制器。 將命令中的預留位置替換為您的資源群組名稱、訂用帳戶識別碼和 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

如果您不確定要使用哪種儲存類別,請使用受支援的 default 儲存類別 (不論您使用的 VM 類型為何)。 其只是無法提供最快效能而已。

如果您想要使用 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)

如果您搭配使用 Azure Stack HCI 與 AKS-HCI,請使用 fsType 建立自訂儲存類別。

fsType: ext4

使用此類型來部署資料控制器。 請參閱針對 Azure Stack HCI 上的 AKS 磁碟建立自訂儲存類別中的完整指示。

根據預設,部署設定檔會使用名為 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"

建立資料控制器

您現已準備好使用下列命令來建立資料控制器。

注意

--path 參數應該指向包含 control.json 檔案的「目錄」,而非指向 control.json 檔案本身。

注意

在部署至 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"

您現已準備好使用下列命令來建立資料控制器。

注意

在部署至 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

執行此命令之後,請繼續進行監視建立狀態

監視建立狀態

完全建立控制器需要幾分鐘的時間。 您可以使用下列命令,在另一個終端機視窗中監視進度:

注意

下列範例命令假設您已建立名為 arc-dc 的資料控制器,以及名為 arc 的 Kubernetes 命名空間。 如果您使用不同的值,請根據該值來更新指令碼。

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

您也可以執行以下命令,查看任何特定 Pod 的建立狀態。 這特別適合針對任何問題進行疑難排解。

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

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

針對建立問題進行疑難排解

如果您在建立時遇到任何問題,請參閱疑難排解指南