共用方式為


叢集管理員:如何在運算子連接點中管理叢集管理員

叢集管理員會部署在運算子的 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.jsoncclusterManager.parameters.jsonc

注意

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

  1. 在網頁瀏覽器中,移至 Azure 入口網站並且登入。
  2. 從 Azure 入口網站搜尋列中,搜尋 [部署自訂範本],然後從可用服務中選取它。
  3. 在編輯器中按一下 [建置自己的範本]。
  4. 按一下 [載入檔案]。 找到 clusterManager.jsonc 範本檔案並加以上傳。
  5. 按一下 [檔案] 。
  6. 按一下 [編輯參數]。
  7. 按一下 [載入檔案]。 找到 clusterManager.parameters.jsonc 參數檔案並加以上傳。
  8. 按一下 [檔案] 。
  9. 選取正確的訂用帳戶。
  10. 搜尋資源群組 (如果已存在) 或建立新資源群組。
  11. 請確定所有執行個體詳細資料都正確無誤。
  12. 按一下 [檢閱 + 建立] 。

列出/顯示叢集管理員

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\"}}"
    
  • 如果已新增使用者指派和系統指派的受控識別,則可以藉由將 更新 typeSystemAssigned來移除使用者指派:

    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"
      }
    }
    
  • 如果已新增使用者指派和系統指派的受控識別,則可以藉由將 更新 typeUserAssigned來移除系統指派:

    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 設定預設訂用帳戶。

下一步

成功建立網路網狀架構控制器和叢集管理員之後,下一個步驟是建立 網路網狀架構