你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

群集管理器:如何在 Operator Nexus 中管理群集管理器

群集管理器部署在操作员的 Azure 订阅中,用于管理操作员 Nexus 基础结构群集的生命周期。

开始之前

确保你有以下信息:

  • Azure 订阅 ID - 需要在其中创建群集管理器的 Azure 订阅 ID(应为网络结构控制器的相同订阅 ID)。
  • Network Fabric 控制器 ID - Network Fabric 控制器和群集管理器具有 1:1 关联。 需要将网络结构控制器的资源 ID 与群集管理器相关联。
  • Log Analytics 工作区 ID - 用于日志收集的 Log Analytics 工作区的资源 ID。
  • Azure 区域 - 应在网络结构控制器所在的同一 Azure 区域中创建群集管理器。 此 Azure 区域应在群集管理器和所有关联的操作员 Nexus 实例的 Location 字段中使用。

限制

  • 命名 - 可在此处找到命名规则。

群集管理器属性

属性名称 说明
名称、ID、位置、标记、类型 名称:用户易记名称
ID:资源 ID
位置:创建群集管理器的 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 应用程序
  • 查看并分配

创建群集管理器

使用以下命令创建群集管理器。

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 [必需] - 群集管理器的名称。
  • --resource-group-g [必需] - 资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认资源组。
  • --fabric-controller-id [必需] - 与群集管理器关联的网络结构控制器的资源 ID。
  • --analytics-workspace-id - 用于日志收集的 Log Analytics 工作区的资源 ID
  • --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 - 订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。
  • --mi-system-assigned - 启用系统分配的托管标识。
  • --mi-user-assigned - 要添加的用户分配的托管标识的空格分隔的资源 ID。
  • --if-match / if-none-match - 指定最后看到的 ETag 值以防止意外覆盖并发更改。 创建资源后,ETag 将作为资源属性返回,并可用于更新操作。

每个 Azure CLI 命令可用的常用参数:

  • --debug - 打印有关用于调试目的的 CLI 执行的详细信息。 如果发现了 bug,在提交 bug 报告时,请提供启用 --debug 标志生成的输出。
  • --output-o - 指定输出格式。 可用的输出格式为 Json、Jsonc(彩色 JSON)、tsv(制表分隔值)、表(人可读 ASCII 表)和 yaml。 默认情况下,CLI 输出 Json。
  • --query - 使用 JMESPath 查询语言筛选从 Azure 服务返回的输出。

列出/显示群集管理器

列出和显示命令用于获取现有群集管理器的列表或特定群集管理器的属性。

此命令列出指定资源组中的群集管理器。

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"

更新群集管理器

此命令用于修补提供的群集管理器的属性,或更新分配给群集管理器的标记。 属性和标记更新可以独立完成。

此命令更新指定资源组中的群集管理器。

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"

可以通过 CLI 使用 az networkcloud clustermanager identity 子命令管理群集管理器标识。

此命令显示当前分配的标识。

az networkcloud clustermanager identity show \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"

此命令添加新的用户分配的标识。

az networkcloud clustermanager identity assign \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
    --mi-user-assigned "$UAI_RESOURCE_ID"

此命令添加系统分配的标识。

az networkcloud clustermanager identity assign \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
    --mi-system-assigned

此命令移除现有的用户分配的标识。

az networkcloud clustermanager identity remove \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
    --mi-user-assigned "$UAI_RESOURCE_ID"

此命令移除现有的系统分配的标识。

az networkcloud clustermanager identity remove \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
    --mi-system-assigned

删除群集管理器

此命令用于删除提供的群集管理器。

警告

具有现有关联的网络结构控制器的群集管理器,或者引用此群集管理器的任何群集可能无法删除。

az networkcloud clustermanager delete \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"

注意

建议在删除 clustermanager 后等待 20 分钟,然后再尝试使用相同名称创建一个新的 clustermanager。

后续步骤

成功创建网络结构控制器和群集管理器后,下一步是创建网络结构