当您决定使用 AKS 类型的 Horizon Edge 网关部署迁移第一代容器时,此页面及其子部分中的信息将适用于您。

简介

以下部分介绍了运行迁移向导之前必须满足的特定 AKS 相关要求。

此处的信息假设您已阅读确定您的部署类型并满足其要求一节,回答了其中的问题并决定使用 AKS 类型进行容器迁移。

重要说明: 在您计划使用 AKS 部署类型时,除了满足以下几节中所述的必备条件以外,您还必须确保满足 迁移第一代 Horizon Cloud 容器的必备条件页面的小节中所述的必备条件。

特殊情况 - 如果您确定容器的 VNet(包括其他连接的网络)包含 AKS 限制的 IP

正如确定容器的 VNet 或连接的网络是否包含 AKS 限制的 IP 地址一节中所述,如果要使用 AKS 类型进行部署,但第一代容器的 VNet 或连接到该 VNet 的内部部署网络包含 AKS 限制的 IP 范围中的 IP 地址,对于 AKS 部署类型,您必须:

  1. 在容器订阅中设置另一个 VNet,该 VNet 不包含 AKS 限制范围内的 IP 地址。
  2. 在该 VNet 中创建一个新的管理子网,该子网的最小 CIDR 为 /26
  3. 根据页面,确保新的 VNet 和管理子网允许与其所需端口和协议的下一代服务所需端点进行网络通信:
  4. 将该新 VNet 与容器的现有 VNet 对等互连。

然后,在完成上述四个步骤后,在满足以下各节中所述的要求时,可以使用该新的管理子网和 VNet。

注:

要避免的 AKS 受限 IP 范围包括:

  • 169.254.0.0/16
  • 172.30.0.0./16
  • 172.31.0.0/16
  • 192.0.2.0/24

除了避免在新的 VNet 中使用上述范围以外,您还应避免使用您和您的团队决定用于部署虚拟 IP 范围的 CIDR,如AKS 类型 - 保留所需的虚拟 IP 范围以防止与 AKS 冲突中所述。

AKS 类型 - 确认 Azure 资源提供程序并注册新的所需资源提供程序

AKS 类型的 Horizon Edge 网关部署要求在 Microsoft Azure 订阅中具有一组特定的资源提供程序。

在第一代容器的订阅中,确认以下资源提供程序均处于Registered状态。

其中的一些资源提供程序与第一代容器部署所需的资源提供程序相同。该表指出了还需要为 AKS 部署类型注册哪些资源提供程序。

资源提供程序
Additional new ones to register for next-gen AKS deployment type
  • Microsoft.ContainerService
  • Microsoft.ManagedIdentity
Needed by next-gen which would've been previously registered for your first-gen pod
  • Microsoft.Authorization
  • Microsoft.Compute
  • Microsoft.KeyVault
  • Microsoft.MarketplaceOrdering
  • Microsoft.ResourceGraph
  • Microsoft.Network
  • Microsoft.Resources
  • Microsoft.Security
  • Microsoft.Storage

要验证第一代容器的 Microsoft Azure 订阅中的资源提供程序,请执行以下操作:

  1. 登录到 Azure 门户并搜索该容器的订阅。
  2. 单击相应订阅名称,并向下滚动直到看到 “订阅”设置菜单中的“资源提供程序”菜单选项资源提供程序)。
  3. 查找上表中的资源提供程序,并确认它们均显示 Azure 门户中的资源提供程序的已注册状态图标已注册)状态。

    使用 Azure 门户注册表中处于NotRegistered状态的任何资源提供程序。

重要说明: 不要取消注册已注册的资源提供程序。

您可能会看到,容器的订阅具有下一代 Edge 网关所需的资源提供程序并且已处于Registered状态。您可能还会看到,注册的资源提供程序(例如 Microsoft.Billing)与 Horizon Cloud Service 所需的资源提供程序无关。这种潜在的状态差异是标准 Microsoft Azure 行为所产生的结果,Microsoft Azure 通常会为所有 Azure 订阅注册一组资源提供程序。

AKS 类型 - 配置 NAT 网关或路由表并关联到管理子网

要实现与云控制平面的出站通信,AKS 类型的 Horizon Edge 网关部署要求在其管理子网上关联以下项之一:NAT 网关或路由表。

在容器的 Microsoft Azure 订阅中,创建要使用的订阅,并将其与容器的管理子网相关联。

  • NAT 网关
  • 路由表 (这是一个更高级的选择,通常仅在容器的 VNet 已将路由表用于第一代容器时使用)
重要说明: 无论您创建哪个管理子网,请确保将其与相应的管理子网(容器的现有管理子网或新的管理子网)相关联(如果必须创建一个新管理子网以临时解决具有 AKS 限制 IP 地址的 VNet)。

使用 NAT 网关 - 创建并将其关联到管理子网

根据 Microsoft Azure 文档,创建 NAT 网关需要具有公用 IP 地址和/或公用 IP 前缀,您可以选择使用哪个地址。

Azure 门户的“创建 NAT 网关”向导将要求您做出选择。在以下步骤中,我们选择创建一个新的公用 IP 以用于 NAT 网关。

  1. 登录到 Azure 门户,使用搜索栏搜索 NAT 网关并选择该类别。
    在 Azure 门户中搜索 NAT 网关的屏幕截图
  2. 单击 + 创建以启动“创建 NAT 网关”向导。
  3. 在“创建 NAT 网关”向导的第一步中,确保已选择容器的订阅,并为 NAT 网关选择一个资源组以驻留该网关。
  4. 为 NAT 网关命名,并确保所选区域是容器的 Azure 区域。在填写后,单击出站 IP 步骤。

    以下屏幕截图是我们将 NAT 网关命名为 first-pod-migration 的示例。它位于 Azure 区域 West US 2 中。


    Azure 门户的“创建 NAT 网关”向导的第一步的屏幕截图
  5. 出站 IP 步骤中,按照屏幕上的说明选择是将公用 IP 地址还是公用 IP 前缀用于该 NAT 网关。

    以下屏幕截图说明该步骤,我们选择创建新的公用 IP 以供该 NAT 网关使用,并将其命名为 first-pod-NAT-gtway

    在填写该步骤后,单击以转到下一个向导步骤(子网)。


    “创建 NAT 网关”向导的“出站 IP”步骤的屏幕截图
  6. 在向导的子网步骤中,执行以下任一操作:
    • 如果您未在 VNet 中使用 AKS 限制的 IP 地址,请选择容器的 VNet 及其管理子网。
    • 否则,如果您创建了一个新的 VNet 和管理子网,以处理具有 AKS 限制 IP 地址的容器 VNet,请选择新的 VNet 和新的管理子网。

    以下屏幕截图显示了选择容器的 VNet 及其管理子网,并将子网与此 NAT 网关相关联的步骤。


    “创建 NAT 网关”向导的“子网”步骤的屏幕截图
  7. 单击查看 + 创建

    如果验证通过,请单击创建以最终创建该 NAT 网关。

现在,NAT 网关已与管理子网相关联,并准备好在迁移向导中选择该网关。

如果选择路由表 - 创建路由表并将其关联到管理子网

为该路由表配置指向Virtual applianceVirtual network gateway类型的下一跃点的默认路由 0.0.0.0/0

  1. 登录到 Azure 门户,使用搜索栏搜索路由表并选择该类别。
    在 Azure 门户中搜索路由表的屏幕截图
  2. 单击 + 创建以启动“创建路由表”向导。
  3. 在“创建路由表”向导的第一步中,确保已选择容器的订阅,然后选择要驻留的路由表的资源组。
    注: 请记住,如果您决定让路由表位于与 VNet 资源组不同的资源组中,并且第一代容器的服务主体使用自定义角色,则自定义角色需要具有该路由表的资源组的 Network Contributor权限。对第一代部署使用自定义角色是非典型性的。需要对路由表的资源组具有该权限的原因是,AKS 部署类型需要向与管理子网关联的路由表添加条目。这些条目用于在 AKS 类型的 Horizon Edge 网关部署中对 Kubernetes Pod 进行内部路由。
  4. 为路由表命名,并确保所选区域是容器的 Azure 区域。

    对于传播网关路由,选择

    以下屏幕截图是我们将路由表命名为 first-pod-migration 的示例。它位于 Azure 区域 West US 2 中。


    “创建路由表”向导的屏幕截图
  5. 在填写“创建路由表”表单后,单击查看 + 创建

    如果验证通过,请单击创建以最终创建该路由表。

  6. 现在,导航到新创建的路由表,为其配置指向Virtual network gatewayVirtual appliance类型的下一跃点的默认路由 0.0.0.0/0

    由于 AKS 仅支持这两种下一跃点类型,因此,AKS 类型的 Horizon Edge 网关部署专门支持这两种类型。

    在您具有控制容器的 VNet 和公共 Internet 之间的出站流量的 Azure 网络虚拟设备 (NVA) 时,通常使用Virtual Appliance。在 添加路由 表单中,您需要提供可提供出站 Internet 连接的 NVA 的 IP 地址。您应该确保可以从管理子网(将部署 Horizon Edge 网关的子网)访问 IP 地址。该 NVA 必须允许流量到达下一代环境的 AKS 部署类型所需的端点

  7. 单击路由,然后单击 + 添加以添加该默认路由。

    以下屏幕截图展示了此步骤。在该图中展开了下一个跃点类型菜单,以显示支持的Virtual network gatewayVirtual appliance选项的出现位置。此外,我们还键入了路由名称和 0.0.0.0/0 目标 IP 地址。


    路由表的“路由”和“添加路由”UI 的屏幕截图

    以下屏幕截图说明填写的“添加路由”表单,下一跃点为Virtual Network Gateway


    “添加路由”表单的屏幕截图。
  8. 单击添加以将该路由添加到路由表中。
  9. 现在,单击子网+ 关联,以将新路由表与管理子网相关联。

    以下屏幕截图展示了此步骤。根据以下内容选择相应的 VNet 和管理子网:

    • 如果您未在 VNet 中使用 AKS 限制的 IP 地址,请选择容器的 VNet 及其管理子网。
    • 否则,如果您创建了一个新的 VNet 和管理子网,以处理具有 AKS 限制 IP 地址的容器 VNet,请选择新的 VNet 和新的管理子网。

    用于说明“关联子网”步骤的屏幕截图
  10. 在选择子网后,单击确定

现在,路由表已与管理子网相关联,并准备好在迁移向导中选择路由表。

AKS 类型 - 创建用户分配的受管身份并分配所需的角色权限

使用 AKS 类型的 Horizon Edge 网关部署时,容器的 Microsoft Azure 订阅必须具有用户分配的受管身份。

您或 IT 团队可以使用 Azure 门户创建和配置该身份。

必须为该用户分配的受管身份配置以下特性:

  • VNet 的资源组范围内的Network Contributor角色。适用的 VNet 是:
    • 如果您未在 VNet(即容器的 VNet)中处理 AKS 限制的 IP 地址。
    • 否则,如果您创建了一个新的 VNet 来临时解决该容器具有 AKS 限制 IP 地址的 VNet,该 VNet。
  • 容器的 Microsoft Azure 订阅范围内的Managed Identity Operator角色。

AKS 部署类型需要此受管身份的原因是,部署的网关中的 Azure Kubernetes 服务 (AKS) 集群需要身份才能访问 Azure 资源。因此,迁移工作流需要此身份才能部署此类型。

创建用户分配的受管身份

  1. 登录到 Azure 门户并使用搜索栏搜索用户分配的,然后选择用户分配的受管身份结果。

    以下屏幕截图显示了在 门户中搜索的这一步骤。


    在 Azure 门户中搜索用户分配的受管身份的屏幕截图。
  2. 在您单击用户分配的受管身份搜索结果时,将启动“创建用户分配的受管身份”向导。

    选择要在创建此标识资源后用于存储该标识资源的容器订阅和资源组。

    选择容器的 Azure 区域,然后键入此用户分配的受管身份的名称。

    以下屏幕截图显示了此步骤,其中部分内容针对隐私进行了编辑。此处,我们将用户分配的受管身份命名为 AKS-Edge-identity


    Azure 门户中的“创建用户分配的受管身份”向导的屏幕截图。
  3. 单击查看 + 创建以移动到最终的向导步骤。
  4. 查看信息并单击创建以完成向导,并创建用户分配的受管身份。

    该屏幕截图说明单击创建之前的该最终步骤。


    创建用户分配的受管身份的最终步骤的屏幕截图。
  5. 然后,将角色权限添加到新创建的身份,如下一节中所述。

分配所需的角色权限 - Azure 预览方法

本节的步骤说明了使用 Azure 预览步骤将角色分配给受管身份的方法。如果执行以下步骤,但在查看用户分配的受管身份的 Azure 角色分配区域时没有看到 + 添加角色分配 (预览) 按钮,您可以使用下一节中的替代方法分配角色权限。

要添加到用户分配的受管身份的权限包括:

角色权限 范围
Managed Identity Operator角色 容器的 Microsoft Azure 订阅
Network Contributor角色 VNet 的资源组。适用的 VNet 是:
  • 如果您没有解决 VNet 中存在 AKS 限制的 IP 地址的问题,则为容器的 VNet 资源组。
  • 否则,如果您创建了新的 VNet 以解决容器 VNet 具有 AKS 限制的 IP 地址的问题,则为该 VNet 的资源组。
注: 根据 Microsoft RBAC 文档,您必须具有 Microsoft.Authorization/roleAssignments/write 权限才能分配 Azure 角色。
  1. 在 Azure 门户中,导航到新创建的用户分配的受管身份,然后单击 Azure 角色分配添加角色分配 (预览),直至您看到添加角色分配 (预览) 表单。

    以下屏幕截图显示了该步骤。


    转到该受管身份的“添加角色分配”表单的屏幕截图。
  2. 添加角色分配 (预览) 表单中,选择订阅以作为范围,选择容器的订阅,然后选择Managed Identity Operator以作为角色
    “添加角色分配”表单的屏幕截图,范围是“订阅”,角色是“受管身份操作员”
  3. 单击保存以将该Managed Identity Operator角色分配保存到该身份中。
  4. 单击刷新以查看列出的新添加的角色。
    列表中的新添加的角色的屏幕截图。
  5. 单击添加角色分配 (预览) 以重新打开添加角色分配 (预览) 表单。
  6. 这次,选择资源组以作为范围,选择适用的 VNet 资源组,然后选择Network Contributor以作为角色
    “添加角色分配”的屏幕截图,范围是“资源组”,角色是“网络参与者”。
  7. 单击保存以将该Network Contributor角色分配保存到该身份中。
  8. 单击刷新以查看新添加的角色。现在应列出这两个角色。
    该身份的 Azure 角色分配的屏幕截图。

现在,所需的用户分配的受管身份存在,并具有 AKS 部署类型所需的角色权限。

分配所需角色权限的替代方法

如果在查看用户分配的受管身份的 Azure 角色分配区域时没有看到 + 添加角色分配 (预览) 按钮,您可以使用该替代方法分配角色权限。

要添加到用户分配的受管身份的权限包括:

角色权限 范围
Managed Identity Operator角色 容器的 Microsoft Azure 订阅
Network Contributor角色 VNet 的资源组。适用的 VNet 是:
  • 如果您没有解决 VNet 中存在 AKS 限制的 IP 地址的问题,则为容器的 VNet 资源组。
  • 否则,如果您创建了新的 VNet 以解决容器 VNet 具有 AKS 限制的 IP 地址的问题,则为该 VNet 的资源组。
注: 根据 Microsoft RBAC 文档,您在 Azure 中的用户 ID 必须具有 Microsoft.Authorization/roleAssignments/write 权限才能分配 Azure 角色。
  1. 先将Managed Identity Operator权限添加到容器的订阅范围中:
    1. 在 Azure 门户中,导航到订阅。
    2. 在该订阅的页面中,单击访问控制 (IAM),然后单击角色分配选项卡。
      IAM 和“角色分配”选项卡位置的屏幕截图。
    3. 单击 + 添加 > 添加角色分配
      “添加”>“添加角色分配”选项的屏幕截图。

      将显示添加角色分配向导。

    4. 在该向导中的角色选项卡上,搜索并选择Managed Identity Operator角色。在单击下一步之前,请确保选择了该行。
      搜索受管身份操作员后显示的“角色”选项卡的屏幕截图
    5. 单击下一步以移动到成员选项卡。
    6. 成员选项卡上,选择受管身份,然后选择 + 选择成员,这会显示选择受管身份表单。

      此处的下一步具有示例屏幕截图。

    7. 选择受管身份表单中的受管身份菜单上,选择用户分配的受管身份
      说明文本中描述的选项的屏幕截图。
    8. 接下来,选择您创建的用户分配的受管身份,然后单击选择按钮以将其添加到成员选项卡中。
      选择成员表单的屏幕截图,其中选择了用户分配的受管身份。
    9. 现在单击查看 + 分配以移动到向导的查看 + 分配选项卡。
      移动到“查看 + 分配”选项卡之前的向导“成员”选项卡的屏幕截图。
    10. 查看 + 分配选项卡上,单击最终的查看 + 分配按钮,以完成将该角色分配给订阅范围内的身份的过程。
      最终的“查看 + 分配”选项卡和按钮的屏幕截图。
  2. 现在,将Network Contributor权限添加到 VNet 的资源组范围内:
    1. 在 Azure 门户中,导航到适用的 VNet 资源组。适用的 VNet 是:
      • 如果您没有解决 VNet 中存在 AKS 限制的 IP 地址的问题,则为容器的 VNet 资源组。
      • 否则,如果您创建了新的 VNet 以解决容器 VNet 具有 AKS 限制的 IP 地址的问题,则为该 VNet 的资源组。
    2. 在该资源组的页面中,使用与上面为订阅权限执行的操作类似的步骤。

      您单击访问控制 (IAM),然后单击角色分配选项卡。

      该屏幕截图说明对名为 hcsvnet-RG 的 VNet 资源组执行的该步骤。


      该资源组的“角色分配”选项卡位置的屏幕截图
    3. 单击 + 添加 > 添加角色分配。将显示添加角色分配向导。
    4. 在该向导中的角色选项卡上,搜索并选择Network Contributor角色。在单击下一步之前,请确保选择了该行。
      “角色”选项卡的屏幕截图,并选择了网络参与者角色。
    5. (另一个权限与以前相同)单击下一步以移动到成员选项卡,选择受管身份,然后选择 + 选择成员,这会显示选择受管身份表单。
      向导“成员”步骤和“选择受管身份”表单的屏幕截图
    6. 选择受管身份表单中的受管身份菜单上,选择用户分配的受管身份
    7. 接下来,选择您创建的用户分配的受管身份,然后单击选择按钮以将其添加到成员选项卡中。
      选择成员表单的屏幕截图,其中选择了用户分配的受管身份。
    8. 现在,移动到向导的查看 + 分配选项卡,然后单击查看 + 分配按钮,以完成将该角色分配给 VNet 资源组范围内的身份的过程。

      该屏幕截图说明对名为 hcsvnet-RG 的 VNet 资源组执行的该步骤。


      网络参与者角色的“查看 + 分配”步骤的屏幕截图

现在,所需的用户分配的受管身份存在,并具有 AKS 部署类型所需的角色权限。

要确认用户分配的受管身份具有两个角色,请在 Azure 门户中导航到该身份并显示其 Azure 角色分配页面。

以下屏幕截图说明我们的用户分配的受管身份,并在其 Azure 角色分配中列出该身份的两个角色。


用户分配的受管身份上的一组 Azure 角色分配的屏幕截图。

AKS 类型 - 保留所需的虚拟 IP 范围以防止与 AKS 冲突

当您决定对 Horizon Edge 网关部署使用 AKS 类型的容器迁移容器时,此信息适用。AKS 部署类型要求在您选择的 IP 管理方法 IPAM 系统(IP 地址管理系统)中预留某些虚拟 IP 范围。

简介

这些范围是为仅使用 AKS 类型的 Horizon Edge 网关而预留的虚拟 IP 范围

按照设计,Kubernetes 会在 Horizon Edge 网关内的 Kubernetes 集群内创建虚拟网络。

这些虚拟网络托管集群内运行的容器。

如果这些范围在 Edge 内部,为什么必须保留这些范围?

保留这些范围的目的是防止网络空间中的任何其他计算机获取分配给这些 IP 地址并使用这些 IP 地址。

即使 Edge 的 Kubernetes 集群的虚拟网络位于 Horizon Edge 网关内部,并且实际上并不位于管理网络上,集群的虚拟网络也会连接到 Azure VNet 中的管理子网。

在 AKS 集群外部运行的服务将流量路由到 AKS-cluster-internal 网络。例如,VDI 桌面中的 Horizon Agent 需要将数据发送到在该 AKS 集群中运行的服务。

因此,如果未预留范围,并且您网络上的另一台计算机碰巧从这些范围中分配了 IP 地址,则可能会影响路由并导致到 AKS-cluster-internal 网络的必要服务流量发生冲突。

通过在容器迁移之前在 IP 地址管理系统中预留 IP 范围,可以避免此类潜在冲突。

是否需要创建这些范围的子网?

否,您无需创建这些范围的子网。

在迁移过程中部署 Horizon Edge 时,这些虚拟 IP 范围将位于 Horizon Edge 网关的 AKS 集群虚拟网络中。

对于容器迁移,是否需要知道预留范围是什么?

是。当您计划选择 AKS 部署类型时,您需要知道您和您的团队为该部署目的预留的范围。

迁移向导 UI 要求您在名为服务 CIDR容器 CIDR 的字段中输入两个 IP 范围 (CIDR)。

因此,在运行迁移向导之前,您必须确定您和团队选择预留的范围。

我必须预留哪些类型的范围?

AKS 类型的 Horizon Edge 网关需要预留两个虚拟 IP 范围以供使用。

  • 对于所谓的服务 CIDR,CIDR 范围最小为 /27
  • 对于所谓的容器 CIDR,CIDR 范围最小为 /21

这两个 IP 范围不得重叠或相互冲突。

重要说明: 根据 Azure 文档,这些 CIDR 不得使用以下受 AKS 限制的范围:
  • 169.254.0.0/16
  • 172.30.0.0/16
  • 172.31.0.0/16
  • 192.0.2.0/24
要预留的 IP 范围 详细信息
服务 CIDR 确定服务 CIDR 的 IP 范围并在 IPAM 中保留该 IP 空间,以使其他计算机无法使用该范围内的 IP 地址。

最小范围为 /27 是必填字段。

切记: 如上所述,这是一个虚拟 IP 范围,您无需创建具有此范围的子网。您只需确保网络中的其他计算机均未分配这些地址。

在决定 IP 范围时,请记住以下几点:

  • 确保您为该范围决定的 IP 地址尚未由其他计算机或项目在该网络中使用。

    由于 AKS 集群的虚拟网络将连接到管理网络,如果其他计算机正在使用这些地址,则可能会导致冲突。

  • 确保此 CIDR 范围内的地址不会与您在网络中的其他关键 IP 地址冲突,例如 DNS 服务器 IP、AD 服务器 IP 或连接到管理子网的第一代部署Unified Access Gateway 实例使用的 IP。

对于 Horizon Edge 的 AKS 类型,此 CIDR 的用途是将该虚拟 IP 范围内的地址分配给在 Edge 的 AKS 集群内运行的服务。

容器 CIDR 确定服务 CIDR 的 IP 范围并在 IPAM 中保留该 IP 空间,以使其他计算机无法使用该范围内的 IP 地址。

最小范围为 /21。

切记: 如上所述,这是一个虚拟 IP 范围,您无需创建具有此范围的子网。您只需确保网络中的其他计算机均未分配这些地址。

在决定 IP 范围时,请记住以下几点:

  • 确保您为该范围决定的 IP 地址尚未由其他计算机或项目在该网络中使用。

    由于 AKS 集群的虚拟网络将连接到管理网络,如果其他计算机正在使用这些地址,则可能会导致冲突。

  • 确保此 CIDR 范围内的地址不会与您在网络中的其他关键 IP 地址冲突,例如 DNS 服务器 IP、AD 服务器 IP 或连接到管理子网的第一代部署Unified Access Gateway 实例使用的 IP。

在 Horizon Edge 的 AKS 类型中,此 CIDR 的用途是将该虚拟 IP 范围内的地址分配给在 Edge 的 AKS 集群内运行的服务。

需要使用 /21 范围大小,因为它与 AKS 集群具有的节点数相关。为每个 AKS 集群节点预分配此范围内的 256 个 IP 地址。