使用 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"
叢集記錄
您可以在下列位置檢視叢集建立記錄:
- Azure 入口網站 Resource/ResourceGroup 活動記錄。
- 在
--debug
命令行上傳遞旗標的 Azure CLI。
部署叢集
建立叢集之後,就可以觸發部署叢集動作。 部署叢集動作會建立啟動程式映像並部署叢集。
部署叢集會起始叢集管理員中要發生的事件序列
- 驗證叢集/機架屬性
- 產生暫時啟動程式叢集的可開機映像(基礎結構驗證)。
- 與目標啟動程式電腦的IPMI介面互動。
- 執行硬體驗證檢查
- 監視叢集部署程式。
部署內部部署叢集:
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_NAME
COMP1_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
等。
當 detailedStatus 設定為 Running
且 detailedStatusMessage 顯示訊息 Cluster is up and running
時,叢集部署就會完成。
檢視叢集的管理版本:
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"
叢集部署記錄
您可以在下列位置檢視叢集建立記錄:
- Azure 入口網站 Resource/ResourceGroup 活動記錄。
- 在
--debug
命令行上傳遞旗標的 Azure CLI。