共用方式為


使用 Azure CLI 建立和佈建叢集

本文說明如何使用 Azure 命令列介面 (AzCLI) 來建立叢集。 本文也會示範如何檢查狀態、更新或刪除叢集。

必要條件

  • 確認您的 Azure 區域中有網路網狀架構控制器和叢集管理員
  • 確認網路網狀架構已成功佈建

API 指南和計量

API 指南提供資源提供者和資源模型以及 API 的相關資訊。

從記錄資料產生的計量可在 Azure 監視器計量取得。

建立叢集

基礎結構叢集資源代表叢集管理員內平台的內部部署。 所有其他平台特定資源都相依於其生命週期。

您應該在此內部部署之前建立網路網狀架構。 每個運算子連接點內部部署執行個體都有與網路網狀架構的一對一關聯。

使用 AZ CLI 建立叢集:

az networkcloud cluster create --name "$CLUSTER_NAME" --location "$LOCATION" \
  --extended-location name="$CL_NAME" type="CustomLocation" \
  --resource-group "$CLUSTER_RG" \
  --analytics-workspace-id "$LAW_ID" \
  --cluster-location "$CLUSTER_LOCATION" \
  --network-rack-id "$AGGR_RACK_RESOURCE_ID" \
  --rack-sku-id "$AGGR_RACK_SKU"\
  --rack-serial-number "$AGGR_RACK_SN" \
  --rack-location "$AGGR_RACK_LOCATION" \
  --bare-metal-machine-configuration-data "["$AGGR_RACK_BMM"]" \
  --storage-appliance-configuration-data '[{"adminCredentials":{"password":"$SA_PASS","username":"$SA_USER"},"rackSlot":1,"serialNumber":"$SA_SN","storageApplianceName":"$SA_NAME"}]' \
  --compute-rack-definitions '[{"networkRackId": "$COMPX_RACK_RESOURCE_ID", "rackSkuId": "$COMPX_RACK_SKU", "rackSerialNumber": "$COMPX_RACK_SN", "rackLocation": "$COMPX_RACK_LOCATION", "storageApplianceConfigurationData": [], "bareMetalMachineConfigurationData":[{"bmcCredentials": {"password":"$COMPX_SVRY_BMC_PASS", "username":"$COMPX_SVRY_BMC_USER"}, "bmcMacAddress":"$COMPX_SVRY_BMC_MAC", "bootMacAddress":"$COMPX_SVRY_BOOT_MAC", "machineDetails":"$COMPX_SVRY_SERVER_DETAILS", "machineName":"$COMPX_SVRY_SERVER_NAME"}]}]'\
  --managed-resource-group-configuration name="$MRG_NAME" location="$MRG_LOCATION" \
  --network fabric-id "$NF_ID" \
  --cluster-service-principal application-id="$SP_APP_ID" \
    password="$SP_PASS" principal-id="$SP_ID" tenant-id="$TENANT_ID" \
  --subscription "$SUBSCRIPTION_ID" \
  --secret-archive "{key-vault-id:$KVRESOURCE_ID, use-key-vault:true}" \
  --cluster-type "$CLUSTER_TYPE" --cluster-version "$CLUSTER_VERSION" \
  --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"

叢集作業的參數

參數名稱 描述
CLUSTER_NAME 叢集的資源名稱
LOCATION 部署叢集的 Azure 區域
CL_NAME 來自 Azure 入口網站的叢集管理員自訂位置
CLUSTER_RG 叢集資源群組名稱
LAW_ID 叢集的 Log Analytics 工作區識別碼
CLUSTER_LOCATION 叢集的本機名稱
AGGR_RACK_RESOURCE_ID 彙總工具機架的 RackID
AGGR_RACK_SKU 彙總工具機架的機架 SKU
AGGR_RACK_SN 彙總工具機架的機架序號
AGGR_RACK_LOCATION 彙總工具機架的機架實體位置
AGGR_RACK_BMM 僅用於單一機架部署,針對多機架為空白
SA_NAME 儲存體設備裝置名稱
SA_PASS 儲存體設備管理員密碼
SA_USER 儲存體設備管理使用者
SA_SN 儲存體設備序號
COMPX_RACK_RESOURCE_ID CompX Rack 的 RackID;針對 compute-rack-definitions 中的每個機架重複
COMPX_RACK_SKU CompX Rack 的機架 SKU;針對 compute-rack-definitions 中的每個機架重複
COMPX_RACK_SN CompX Rack 的機架序號;針對 compute-rack-definitions 中的每個機架重複
COMPX_RACK_LOCATION CompX Rack 的機架實體位置;針對 compute-rack-definitions 中的每個機架重複
COMPX_SVRY_BMC_PASS CompX Rack ServerY BMC 密碼,針對 compute-rack-definitions 中的每個機架以及機架中的每個伺服器重複
COMPX_SVRY_BMC_USER CompX Rack ServerY BMC 使用者,針對 compute-rack-definitions 中的每個機架以及機架中的每個伺服器重複
COMPX_SVRY_BMC_MAC CompX Rack ServerY BMC MAC 位址,針對 compute-rack-definitions 中的每個機架以及機架中的每個伺服器重複
COMPX_SVRY_BOOT_MAC CompX Rack ServerY 開機 NIC MAC 位址,針對 compute-rack-definitions 中的每個機架以及機架中的每個伺服器重複
COMPX_SVRY_SERVER_DETAILS CompX Rack ServerY 詳細資料,針對 compute-rack-definitions 中的每個機架以及機架中的每個伺服器重複
COMPX_SVRY_SERVER_NAME CompX Rack ServerY 名稱,針對 compute-rack-definitions 中的每個機架以及機架中的每個伺服器重複
MRG_NAME 叢集受控資源群組名稱
MRG_LOCATION 叢集 Azure 區域
NF_ID 網路網狀架構的參考
SP_APP_ID 服務主體應用程式識別碼
SP_PASS 服務主體密碼
SP_ID 服務主體識別碼
TENANT_ID 訂用帳戶租用戶識別碼
SUBSCRIPTION_ID 訂用帳戶識別碼
KV_RESOURCE_ID 金鑰保存庫識別碼
CLUSTER_TYPE 叢集、單一或 MultiRack 的類型
CLUSTER_VERSION 叢集的 NC 版本
TAG_KEY1 要傳遞至叢集建立的選擇性 tag1
TAG_VALUE1 要傳遞至叢集建立的選擇性 tag1 值
TAG_KEY2 要傳遞至叢集建立的選擇性 tag2
TAG_VALUE2 要傳遞至叢集建立的選擇性 tag2 值

使用 Azure Resource Manager 樣本編輯器建立叢集

建立叢集的替代方式是使用ARM樣本編輯器。

若要以這種方式建立叢集,您必須提供範本檔案 (cluster.jsonc) 和參數檔案 (cluster.parameters.jsonc)。
您可以使用這兩個檔案,找到 8 機架 2M16C SKU 叢集的範例:

cluster.jsonccluster.parameters.jsonc

注意

若要取得正確的格式設定,請複製原始程式碼檔案。 cluster.parameters.jsonc 檔案中的值是客戶特定的值,可能不是完整的清單。 更新特定環境的值欄位。

  1. 在網頁瀏覽器中,移至 Azure 入口網站並且登入。
  2. 從 Azure 入口網站 搜尋列中,搜尋「部署自定義範本」,然後從可用的服務中選取它。
  3. 按兩下編輯器中的 [建置您自己的範本]。
  4. 按兩下 [載入檔案]。 找出您的 cluster.jsonc 範本檔案並加以上傳。
  5. 按一下 [檔案] 。
  6. 按兩下 [編輯參數]。
  7. 按兩下 [載入檔案]。 找出您的 cluster.parameters.jsonc 參數檔案並加以上傳。
  8. 按一下 [檔案] 。
  9. 選取正確的訂用帳戶。
  10. 搜尋資源群組,以查看資源群組是否已存在。 如果沒有,請建立新的資源群組。
  11. 請確定所有實例詳細數據都正確無誤。
  12. 按一下 [檢閱 + 建立] 。

叢集驗證

成功建立運算子連接點叢集會導致在訂用帳戶內建立 AKS 叢集。 叢集標識碼、叢集布建狀態和部署狀態會因為成功 cluster create而傳回。

檢視叢集的狀態:

az networkcloud cluster show --resource-group "$CLUSTER_RG" \
  --cluster-name "$CLUSTER_RESOURCE_NAME"

當資源的 provisioningState 顯示為下列項目時,叢集建立即完成:"provisioningState": "Succeeded"

叢集記錄檔

叢集建立記錄可以在下列位置檢視:

  1. Azure 入口網站資源/ResourceGroup 活動記錄。
  2. 在命令列上傳遞 --debug 旗標的 Azure CLI。

部署叢集

建立叢集之後,可以觸發部署叢集動作。 部署叢集動作會建立啟動程序映像並部署叢集。

部署叢集會起始叢集管理員中發生的事件序列。

  1. 驗證叢集/機架屬性
  2. 產生暫時性啟動程序叢集的可開機映像 (基礎結構驗證)。
  3. 與目標啟動程序電腦的 IPMI 介面互動。
  4. 執行硬體驗證檢查
  5. 監視叢集部署程序。

部署內部部署叢集:

az networkcloud cluster deploy \
  --name "$CLUSTER_NAME" \
  --resource-group "$CLUSTER_RG" \
  --subscription "$SUBSCRIPTION_ID" \
  --no-wait --debug

提示

若要檢查 az networkcloud cluster deploy 命令的狀態,可以使用 --debug 旗標來執行。 這可讓您取得用來查詢 operationStatuses 資源的 Azure-AsyncOperationLocation 標頭。 如需詳細步驟,請參閱叢集部署失敗一節。 或者,命令可以使用 --no-wait 旗標以非同步方式執行。

使用硬體驗證部署叢集

在叢集部署程序期間,執行的其中一個步驟是硬體驗證。 硬體驗證程序會針對透過叢集機架定義所提供的電腦執行各種測試和檢查。 根據這些檢查的結果和任何使用者略過的電腦,判斷是否有足夠的節點通過和/或可用,以符合部署所需的閾值以便繼續作業。

重要

硬體驗證程序會將結果寫入叢集建立時指定的 analyticsWorkspaceId。 此外,叢集物件中提供的服務主體會用於針對 Log Analytics 工作區資料收集 API 進行驗證。 這項功能只有在新的部署期間才會顯示 (綠色欄位);現有的叢集不會有可追溯的記錄。

根據預設,硬體驗證程序會將結果寫入已設定的叢集 analyticsWorkspaceId。 不過,由於 Log Analytics 工作區資料收集和結構描述評估的性質,可能會有幾分鐘或更多時間的擷取延遲。 因此,即使無法將結果寫入 Log Analytics 工作區,叢集部署仍會繼續。 為了協助解決這個可能的事件,結果也會記錄在叢集管理員內作為備援。

在提供的叢集物件的 Log Analytics 工作區中,應該會出現具有叢集名稱作為前置詞和後置詞的新自訂資料表 *_CL。 在 LAW 資源的 [記錄] 區段中,您可以針對新的 *_CL 自訂記錄資料表執行查詢。

使用略過特定裸機電腦的叢集部署動作

參數可以傳入部署命令,此命令代表硬體驗證期間叢集中應略過的裸機電腦名稱。 略過的節點不會進行驗證,也不會新增至節點集區。 此外,略過的節點不會計入閾值計算所使用的總計。

az networkcloud cluster deploy \
  --name "$CLUSTER_NAME" \
  --resource-group "$CLUSTER_RG" \
  --subscription "$SUBSCRIPTION_ID" \
  --skip-validations-for-machines "$COMPX_SVRY_SERVER_NAME"

失敗的叢集部署

若要追蹤非同步作業的狀態,請使用已啟用 --debug 旗標執行。 指定 --debug 時,可以監視要求的進度。 檢查偵錯輸出以尋找建立要求的 HTTP 回應上的 Azure-AsyncOperationLocation 標頭,即可找到作業狀態 URL。 標頭可以提供 HTTP API 呼叫中使用的 OPERATION_ID 欄位。

OPERATION_ID="12312312-1231-1231-1231-123123123123*99399E995..."
az rest -m GET -u "https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/providers/Microsoft.NetworkCloud/locations/${LOCATION}/operationStatuses/${OPERATION_ID}?api-version=2022-12-12-preview"

輸出類似 JSON 結構範例。 當錯誤碼為 HardwareValidationThresholdFailed時,錯誤訊息會包含一份裸機電腦清單,這些機器未透過硬體驗證(例如 , 。 COMP0_SVR0_SERVER_NAMECOMP1_SVR1_SERVER_NAME 這些名稱可用來剖析記錄以取得進一步的詳細資料。

{
  "endTime": "2023-03-24T14:56:59.0510455Z",
  "error": {
    "code": "HardwareValidationThresholdFailed",
    "message": "HardwareValidationThresholdFailed error hardware validation threshold for cluster layout plan is not met for cluster $CLUSTER_NAME in namespace nc-system with listed failed devices $COMP0_SVR0_SERVER_NAME, $COMP1_SVR1_SERVER_NAME"
  },
  "id": "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.NetworkCloud/locations/$LOCATION/operationStatuses/12312312-1231-1231-1231-123123123123*99399E995...",
  "name": "12312312-1231-1231-1231-123123123123*99399E995...",
  "resourceId": "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$CLUSTER_RESOURCE_GROUP/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME",
  "startTime": "2023-03-24T14:56:26.6442125Z",
  "status": "Failed"
}

如需其他範例,請參閱使用 Azure CLI 追蹤非同步作業一文。

叢集部署驗證

檢視入口網站上叢集的狀態,或透過 Azure CLI:

az networkcloud cluster show --resource-group "$CLUSTER_RG" \
  --name "$CLUSTER_NAME"

當 detailedStatus 設定為 Deploying 時,叢集部署正在進行中,而 detailedStatusMessage 會顯示部署的進度。 詳細StatusMessage Hardware validation is in progress. 中顯示的一些部署進度範例為 (如果叢集是以硬體驗證部署)、Cluster is bootstrapping.KCP initialization in progress.、、、Management plane deployment in progress.Cluster extension deployment in progress.waiting for "<rack-ids>" to be ready等。

Azure 入口網站 螢幕快照,其中顯示叢集部署進度 kcp init。

顯示叢集部署進度延伸應用程式的 Azure 入口網站 螢幕快照。

當 detailedStatus 設定為 Running 且 detailedStatusMessage 顯示訊息 Cluster is up and running 時,叢集部署就會完成。

顯示叢集部署完成之 Azure 入口網站的螢幕快照。

檢視叢集的管理版本:

az k8s-extension list --cluster-name "$CLUSTER_NAME" --resource-group "$MRG_NAME" --cluster-type connectedClusters --query "[?name=='nc-platform-extension'].{name:name, extensionType:extensionType, releaseNamespace:scope.cluster.releaseNamespace,provisioningState:provisioningState,version:version}" -o table --subscription "$SUBSCRIPTION_ID"

叢集部署記錄

叢集建立記錄可以在下列位置檢視:

  1. Azure 入口網站資源/ResourceGroup 活動記錄。
  2. 在命令列上傳遞 --debug 旗標的 Azure CLI。

顯示叢集部署進度活動記錄的 Azure 入口網站 螢幕快照。