叢集管理員:如何在運算子連接點中管理叢集管理員
叢集管理員會部署在運算子的 Azure 訂用帳戶中,以管理運算子連接點基礎結構叢集的生命週期。
開始之前
請確定您有下列資訊:
- Azure 訂用帳戶識別碼 - 需要建立叢集管理員的 Azure 訂用帳戶識別碼 (應該是網路網狀架構控制器的相同訂用帳戶識別碼)。
- 網路網狀架構控制器識別碼 - 網路網狀架構控制器與叢集管理員有 1:1 關聯。 您需要網路網狀架構控制器的資源標識碼,才能與叢集管理員相關聯。
- Log Analytics 工作區識別碼 - 用於記錄收集的 Log Analytics 工作區的資源識別碼。
- Azure 區域 - 叢集管理員應與網路網狀架構控制器建立在相同的 Azure 區域中。
此 Azure 區域應該用於叢集管理員的
Location
欄位,以及所有相關聯的運算子連接點執行個體。
限制
- 命名 - 可以在此處找到命名規則。
全域引數
一些可供每個 Azure CLI 命令使用的引數
- --debug - 列印更多有關 CLI 作業的詳細資訊,用於偵錯目的。 如果您發現錯誤,可在提交錯誤報告時提供使用
--debug
旗標產生的輸出。 - --help -h - 列印有關命令及其引數的 CLI 參考資訊,並列出可用的子群組和命令。
- --only-show-errors - 只顯示錯誤,隱藏警告。
- --output -o - 指定輸出格式。 可用的輸出格式為 Json、Jsonc (以色彩標示的 JSON)、tsv (定位字元分隔值)、table (人類看得懂的 ASCII 資料表) 和 yaml。 根據預設,CLI 會輸出 Json。
- --query - 使用 JMESPath 查詢語言,篩選從 Azure 服務傳回的輸出。
- --verbose - 列印作業期間在 Azure 中建立的資源相關資訊,以及其他有用的資訊
叢集管理員屬性
屬性名稱 | 描述 |
---|---|
名稱、識別碼、位置、標籤、類型 | 名稱:使用者易記名稱 識別碼:< 資源識別碼 > 位置:建立叢集管理員的 Azure 區域。 值的來源: az account list -locations 。標籤:資源標籤 類型:Microsoft.NetworkCloud/clusterManagers |
managerExtendedLocation | 與叢集管理員相關聯的 ExtendedLocation |
managedResourceGroupConfiguration | 受控資源群組的相關資訊 |
fabricControllerId | 此叢集管理員為 1:1 的網路網狀架構控制器參考 |
analyticsWorkspaceId | Log Analytics 工作區,其中將轉寄與客戶相關的記錄。 |
clusterVersions[] | 叢集管理員支援的叢集版本清單。 它會做為叢集 clusterVersion 屬性中的輸入。 |
provisioningState | 叢集管理員上最新作業的布建狀態。 其中一個:成功、失敗、已取消、布建、已接受、更新 |
detailedStatus | 提供叢集管理員狀態的其他資訊的詳細狀態。 |
detailedStatusMessage | 目前詳細狀態的描述性訊息。 |
叢集管理員身分識別
從 2024-07-01 API 版本開始,客戶可以將受控識別指派給叢集管理員。 支援系統指派和使用者指派的受控識別。
如果使用使用者指派的受控識別建立叢集管理員,客戶必須布建 Nexus 平臺該身分識別的存取權。
具體來說, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
許可權必須新增至使用者指派的身分識別,才能 AFOI-NC-MGMT-PME-PROD
Microsoft Entra ID。 這是未來將解決之平臺的已知限制。
角色指派可以透過 Azure 入口網站 來完成:
- 開啟 Azure 入口網站 並找出有問題的使用者指派身分識別。
- 如果您預期已布建多個受控識別,則可以改為在資源群組或訂用帳戶層級新增角色。
- 在 底下
Access control (IAM)
,按兩下 [新增角色指派] - 選取 [角色]:
Managed Identity Operator
。 請參閱角色提供的許可權。 - 存取權指派對象為:使用者、群組或服務主體
- 選取成員:
AFOI-NC-MGMT-PME-PROD
應用程式 - 檢閱並指派
建立叢集管理員
使用 Azure CLI 建立叢集管理員:
使用 az networkcloud clustermanager create
命令建立叢集管理員。 此命令會建立新的叢集管理員,或在叢集管理員存在時更新其屬性。 如果您有多個 Azure 訂用帳戶,請使用 az account set 命令選取適當的訂用帳戶識別碼。
az networkcloud clustermanager create \
--name "$CLUSTER_MANAGER_NAME" \
--location "$LOCATION" \
--analytics-workspace-id "$LAW_NAME" \
--fabric-controller-id "$NFC_ID" \
--managed-resource-group-configuration name="$MRG_NAME" location="$MRG_LOCATION" \
--tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"
--resource-group "$CLUSTER_MANAGER_RG"
--subscription "$SUB_ID"
- 引數
- --name -n [必要] - 叢集管理員的名稱。
- --fabric-controller-id [必要] - 與叢集管理員相關聯的網路網狀架構控制器的資源識別碼。
- --resource-group -g [必要] - 資源群組的名稱。 您可以使用
az configure --defaults group=<name>
設定預設資源群組。 - --analytics-workspace-id - 用於記錄收集的 Log Analytics 工作區的資源識別碼
- --location -l - 位置。 建立叢集管理員的 Azure 區域。 值的來源:
az account list -locations
。 您可以使用az configure --defaults location="$LOCATION"
設定預設位置。 - --managed-resource-group-configuration - 與資源相關聯的受控資源群組設定。
- 用法:--managed-resource-group-configuration location=XX name=XX
- 位置:受控資源群組的區域。 如果未指定,則會選擇父資源的區域。
- 名稱:受控資源群組的名稱。 如果未指定,會自動產生唯一名稱。
- wait/--no-wait - 等待命令完成或不等待長時間執行的作業完成。
- --tags - 以空格分隔的標籤:key[=value] [key[=value]...].使用 '' 來清除現有的標籤
- --subscription - 訂用帳戶的名稱或識別碼。 您可以使用
az account set -s NAME_OR_ID
設定預設訂用帳戶。 - --mi-system-assigned - 啟用系統指派的受控識別。 新增之後,您目前只能透過 API 呼叫移除身分識別。
- --mi-user-assigned - 要新增之使用者指派受控識別的空間分隔資源標識符。 新增之後,您目前只能透過 API 呼叫移除身分識別。
使用 Azure Resource Manager 範本編輯器建立叢集管理員:
建立叢集管理員的另一種方法是使用 ARM 範本編輯器。
若要以這種方式建立叢集,您必須提供範本檔案 (clusterManager.jsonc) 和參數檔案 (clusterManager.parameters.jsonc)。
您可以在此處找到這兩個檔案的範例:
clusterManager.jsonc、clusterManager.parameters.jsonc
注意
若要取得正確的格式,請複製原始程式碼檔案。 clusterManager.parameters.jsonc 檔案中的值是客戶特定的值,可能不是完整清單。 請更新特定環境的值欄位。
- 在網頁瀏覽器中,移至 Azure 入口網站並且登入。
- 從 Azure 入口網站搜尋列中,搜尋 [部署自訂範本],然後從可用服務中選取它。
- 在編輯器中按一下 [建置自己的範本]。
- 按一下 [載入檔案]。 找到 clusterManager.jsonc 範本檔案並加以上傳。
- 按一下 [檔案] 。
- 按一下 [編輯參數]。
- 按一下 [載入檔案]。 找到 clusterManager.parameters.jsonc 參數檔案並加以上傳。
- 按一下 [檔案] 。
- 選取正確的訂用帳戶。
- 搜尋資源群組 (如果已存在) 或建立新資源群組。
- 請確定所有執行個體詳細資料都正確無誤。
- 按一下 [檢閱 + 建立] 。
列出/顯示叢集管理員
List 和 show 命令用來取得現有叢集管理員的清單或特定叢集管理員的屬性。
列出資源群組中的叢集管理員
此命令會列出所指定資源群組中的叢集管理員。
az networkcloud clustermanager list --resource-group "$CLUSTER_MANAGER_RG"
列出訂用帳戶中的叢集管理員
此命令會列出所指定訂用帳戶中的叢集管理員。
az networkcloud clustermanager list --subscription "$SUB_ID"
顯示叢集管理員屬性
此命令會列出所指定叢集資源的屬性。
az networkcloud clustermanager show \
--name "$CLUSTER_MANAGER_NAME" \
--resource-group "$CLUSTER_MANAGER_RG" \
--subscription "$SUB_ID"
List/show 命令引數
- --name -n - 叢集管理員的名稱。
- --IDs - 一或多個資源識別碼 (以空格分隔)。 其應該是包含 'Resource ID' 引數所有資訊的完整資源識別碼。
- --resource-group -g - 資源群組的名稱。 您可以使用
az configure --defaults group=<name>
來設定預設群組。 - --subscription - 訂用帳戶的名稱或識別碼。 您可以使用
az account set -s NAME_OR_ID
設定預設訂用帳戶。
更新叢集管理員
此命令用來修補所提供叢集管理員的屬性,或更新指派給叢集管理員的標籤。 屬性和標籤更新可以獨立完成。
az networkcloud clustermanager update \
--name "$CLUSTER_MANAGER_NAME" \
--tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2" \
--resource-group "$CLUSTER_MANAGER_RG" \
--subscription "$SUB_ID"
- 引數
- --tags - 以空格分隔的標籤:key[=value] [key[=value] ...].請使用 '' 來清除現有的標記。
- --name -n - 叢集管理員的名稱。
- --IDs - 一或多個資源識別碼 (以空格分隔)。 其應該是包含 'Resource ID' 引數所有資訊的完整資源識別碼。
- --resource-group -g - 資源群組的名稱。 您可以使用
az configure --defaults group=<name>
來設定預設群組。 - --subscription - 訂用帳戶的名稱或識別碼。 您可以使用
az account set -s NAME_OR_ID
設定預設訂用帳戶。 - --mi-system-assigned - 啟用系統指派的受控識別。 新增之後,您目前只能透過 API 呼叫移除身分識別。
- --mi-user-assigned - 要新增之使用者指派受控識別的空間分隔資源標識符。 新增之後,您目前只能透過 API 呼叫移除身分識別。
透過 API 更新叢集管理員身分識別
叢集管理員受控識別可透過 CLI 指派。 身分識別的取消指派可以透過 API 呼叫來完成。
請注意, <APIVersion>
是 API 版本 2024-07-01 或更新版本。
若要移除所有受控識別,請執行:
az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
如果已新增使用者指派和系統指派的受控識別,則可以藉由將 更新
type
為SystemAssigned
來移除使用者指派:az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
要求本文 (uai-body.json) 範例:
{ "identity": { "type": "SystemAssigned" } }
如果已新增使用者指派和系統指派的受控識別,則可以藉由將 更新
type
為UserAssigned
來移除系統指派:az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
要求本文 (uai-body.json) 範例:
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {} } } }
如果已新增多個使用者指派的受控識別,則可以執行下列其中一項來移除:
az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
要求本文 (uai-body.json) 範例:
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null } } }
刪除叢集管理員
此命令用來刪除提供的叢集管理員。
警告
具有現有相關聯網路網狀架構控制器的叢集管理員,或任何參考此叢集管理員的叢集可能無法加以刪除。
az networkcloud clustermanager delete \
--name "$CLUSTER_MANAGER_NAME" \
--resource-group "$CLUSTER_MANAGER_RG" \
--subscription "$SUB_ID"
- 引數
- --no-wait - 不等待長時間執行的作業完成。
- --yes -y - 不提示確認。
- --name -n - 叢集管理員的名稱。
- --IDs - 一或多個資源識別碼 (以空格分隔)。 其應該是包含 'Resource ID' 引數所有資訊的完整資源識別碼。
- --resource-group -g - 資源群組的名稱。 您可以使用
az configure --defaults group=<name>
來設定預設群組。 - --subscription - 訂用帳戶的名稱或識別碼。 您可以使用
az account set -s NAME_OR_ID
設定預設訂用帳戶。
下一步
成功建立網路網狀架構控制器和叢集管理員之後,下一個步驟是建立 網路網狀架構。