使用 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 平台類型的指示。 請遵循您的平台所適用的指示。
- 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 入口網站中的指示,逐步完成整個程序。
然後,遵循在 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
參數值。 選項有: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"
您現已準備好使用下列命令來建立資料控制器。
注意
在部署至 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
執行此命令之後,請繼續進行監視建立狀態。
監視建立狀態
完全建立控制器需要幾分鐘的時間。 您可以使用下列命令,在另一個終端機視窗中監視進度:
注意
下列範例命令假設您已建立名為 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
針對建立問題進行疑難排解
如果您在建立時遇到任何問題,請參閱疑難排解指南。