群集管理器:如何在操作员 Nexus 中管理群集管理器

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

在您开始之前

确保你具有以下信息:

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

局限性

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

容量要求

群集管理器支持以下 VM SKU:

  • Standard_D4_v2 (默认值)
  • Standard_D8s_v3

有关每个 SKU 要求,请参阅 Azure 虚拟机大小概述

群集管理器需要 3 个 VM,并使用所有 3 个可用性区域创建。 如果所选 SKU 在所有区域中不可用,客户可以切换到 2 个可用性区域。 在这种情况下,这 3 个虚拟机将被跨提供的区域重新分配。

计算需求在升级期间增加,可能会根据升级的类型增加一倍。 例如,AKS 升级需要更多容量,而常规网络云维护需要一个额外的 VM。 此缩放是临时的,在升级完成后还原为三个 VM。 在同一订阅中部署多个群集管理器时,客户无需为所有实例保留双重容量,因为并非所有升级都同时发生。

群集管理器属性

属性名称 Description
名称、ID、位置、标记、类型 名称:用户友好名称
ID:资源 ID
位置:创建群集管理器的 Azure 区域。 az account list -locations 中的值。
标签:资源标签
类型:Microsoft.NetworkCloud/clusterManagers
扩展位置管理器 与群集管理器关联的 ExtendedLocation
managedResourceGroupConfiguration 为群集管理器创建托管资源组的详细信息,用于托管其内部使用的资源。
fabricControllerId 的 与此群集管理器具有 1:1 映射的网络结构控制器的关联
clusterVersions[] 群集管理器支持的群集版本列表。 它用作 Cluster clusterVersion 属性中的输入。
userAssignedIdentity 分配给群集管理器的用户分配托管标识的详细信息。
标识 分配给群集管理器的标识类型的详细信息。 其中一个:UserAssigned 或 SystemAssigned。
provisioningState 群集管理器上最新操作的配置状态。 其中一个:成功、失败、配置、接受、更新。
详细状态 提供有关群集管理器状态的其他信息的详细状态。
详细状态信息 有关当前详细状态的描述性消息。

群集管理器标识

客户可以将托管标识分配给群集管理器。 从 2024-07-01 API 版本开始,支持系统分配的和用户分配的托管身份。

如果使用用户分配的托管标识创建群集管理器,则需要客户为 Nexus 平台预配对该标识的访问权限。 具体而言,Microsoft.ManagedIdentity/userAssignedIdentities/assign/action 需要为 Microsoft Entra ID 的用户分配标识 AFOI-NC-MGMT-PME-PROD 添加权限。 这是该平台的一个已知限制,将在未来解决。

可以通过 Azure 门户完成角色分配:

  • 打开 Azure 门户并找到有问题的用户分配标识。
    • 如果预计会预配多个托管标识,可以选择在资源组或订阅级别添加角色。
  • Access control (IAM)下,单击“添加新角色分配”
  • 选择角色: Managed Identity Operator。 查看角色提供的 权限
  • 分配访问权限:用户、组或服务主体
  • 选择成员: AFOI-NC-MGMT-PME-PROD 应用程序
  • 审核和分配

创建群集管理器

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

使用系统分配的托管标识创建群集管理器:

az networkcloud clustermanager create \
    --name "<CLUSTER_MANAGER_NAME>" \
    --location "<LOCATION>" \
    --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>" \
    --mi-system-assigned \
    --subscription "<SUB_ID>"

使用用户分配的托管标识创建群集管理器:

az networkcloud clustermanager create \
    --name "<CLUSTER_MANAGER_NAME>" \
    --location "<LOCATION>" \
    --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>" \
    --mi-user-assigned "<UAMI_RID>" \
    --subscription "<SUB_ID>"

参数:

  • --name-n [必需] - 群集管理器的名称。
  • --resource-group-g [必需] - 资源组的名称。 可以使用az configure --defaults group=<name>配置默认资源组。
  • --fabric-controller-id [必需] - 与群集管理器关联的网络结构控制器的资源 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--mi-system-assigned之一。
  • --mi-user-assigned - 要添加的用户分配托管身份的资源 ID。 一次只能使用--mi-user-assigned--mi-system-assigned之一。 群集管理器仅支持一个用户分配的托管标识。
  • --if-match / if-none-match - 指定最后看到的 ETag 值以防止意外覆盖并发更改。 创建资源后,ETag 将作为资源属性返回,可用于更新作。

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

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

列出/显示群集管理器

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

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

az networkcloud clustermanager list --resource-group "<CLUSTER_MANAGER_RG>" --subscription "<SUB_ID>"

此命令列出指定订阅中的群集管理器。

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>"

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

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

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 "<UAMI_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 "<UAMI_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>"

注释

最佳做法是,在删除群集管理器后等待 20 分钟,然后再尝试创建具有相同名称的新群集管理器。

后续步骤

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