Share via


使用 Azure CLI 建立及布建叢集

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

必要條件

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

API 指南和計量

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

從記錄數據產生的計量可在 Azure 監視器計量中使用

建立叢集

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

您應該已成功為此內部部署部署建立網路網狀架構。 每個操作員 Nexus 內部部署實例都有一對一與網路網狀架構的關聯。

建立叢集:

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 "$NFC_ID" \
  --cluster-service-principal application-id="$SP_APP_ID" \
    password="$SP_PASS" principal-id="$SP_ID" tenant-id="$TENANT_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"

您可以改為在 ARM 樣本編輯器中使用 ARM 樣本/參數檔案建立叢集:

叢集作業的參數

參數名稱 描述
CLUSTER_NAME 叢集的資源名稱
LOCATION 部署叢集的 Azure 區域
CL_NAME 來自 Azure 入口網站 的叢集管理員自定義位置
CLUSTER_RG 叢集資源組名
LAW_ID 叢集的Log Analytics工作區標識碼
CLUSTER_LOCATION 叢集的本機名稱
AGGR_RACK_RESOURCE_ID Aggregator Rack 的 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,針對電腦架定義中的每個機架重複
COMPX_RACK_SKU CompX Rack 的機架 SKU,針對電腦架定義中的每個機架重複
COMPX_RACK_SN CompX Rack 的機架序號,針對電腦架定義中的每個機架重複
COMPX_RACK_LOCATION CompX Rack 的機架實體位置,針對電腦架定義中的每個機架重複
COMPX_SVRY_BMC_PASS CompX Rack ServerY BMC 密碼、針對電腦架定義中的每個機架重複,以及針對機架中的每個伺服器重複
COMPX_SVRY_BMC_USER CompX Rack ServerY BMC 使用者,針對電腦架定義中的每個機架重複,並針對機架中的每個伺服器重複
COMPX_SVRY_BMC_MAC CompX Rack ServerY BMC MAC 位址、針對電腦架定義中的每個機架重複,以及針對機架中的每個伺服器重複
COMPX_SVRY_BOOT_MAC CompX Rack ServerY 開機 NIC MAC 位址、針對電腦架定義中的每個機架重複,以及針對機架中的每個伺服器重複
COMPX_SVRY_SERVER_DETAILS CompX Rack ServerY 詳細數據,針對電腦架定義中的每個機架重複,以及針對機架中的每個伺服器重複
COMPX_SVRY_SERVER_NAME CompX Rack ServerY 名稱、針對電腦架定義中的每個機架重複,以及針對機架中的每個伺服器重複
MRG_NAME 叢集受控資源組名
MRG_LOCATION 叢集 Azure 區域
NFC_ID 網路網狀架構控制器的參考
SP_APP_ID 服務主體應用程式識別碼
SP_PASS 服務主體密碼
SP_ID 服務主體標識碼
TENANT_ID 訂用帳戶租用戶標識碼
KV_RESOURCE_ID 金鑰保存庫識別碼
CLUSTER_TYPE 叢集類型、單一或 MultiRack
CLUSTER_VERSION NC 版本的叢集
TAG_KEY1 要傳遞至叢集建立的選擇性 tag1
TAG_VALUE1 要傳遞至叢集建立的選擇性 tag1 值
TAG_KEY2 要傳遞至叢集建立的選擇性 tag2
TAG_VALUE2 要傳遞至叢集建立的選擇性 tag2 值

叢集驗證

成功建立操作員 Nexus 叢集會導致在訂用帳戶內建立 AKS 叢集。 叢集標識碼、叢集布建狀態和部署狀態會因為成功 cluster create而傳回。

檢視叢集的狀態:

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

當資源的 顯示時 provisioningState ,就會完成叢集建立: "provisioningState": "Succeeded"

叢集記錄

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

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

部署叢集

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

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

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

部署內部部署叢集:

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

提示

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

使用硬體驗證部署叢集

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

重要

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

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

在提供的 Cluster 物件的 Log Analytics 工作區中,應該會出現新的自定義數據表,其名稱為前置詞,且後綴 *_CL 應會出現。 在 LAW 資源的 [ 記錄 ] 區段中,您可以針對新的 *_CL 自訂記錄資料表執行查詢。

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

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

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

叢集部署失敗

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

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" \
  --resource-name "$CLUSTER_RESOURCE_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> --resource-group "$MANAGED_CLUSTER_RG" --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 入口網站 Resource/ResourceGroup 活動記錄。
  2. --debug 命令行上傳遞旗標的 Azure CLI。

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