在您决定使用 AKS 类型的 Horizon Edge Gateway 部署迁移第一代 Pod 时,本页面及其小节中包含的信息将适用于您。
简介
以下各节介绍了运行迁移向导之前必须满足的特定 AKS 相关要求。
此处的信息假设您已阅读确定您的部署类型并满足其要求一节,回答了其中的问题并决定使用 AKS 类型进行 Pod 迁移。
**重要信息:**在您计划使用 AKS 部署类型时,除了满足以下几节中所述的必备条件以外,您还必须确保满足迁移第一代 Horizon Cloud Pod 的必备条件页面的各章节中所述的必备条件。
特殊情况 - 如果您确定 Pod 的 VNet(包括其他连接的网络)包含受 AKS 限制的 IP
正如确定 Pod 的 VNet 或连接的网络是否包含受 AKS 限制的 IP 地址一节中所述,如果要使用 AKS 类型进行部署,但第一代 Pod 的 VNet 或连接到该 VNet 的内部部署网络包含受 AKS 限制的 IP 范围中的 IP 地址,则对于 AKS 部署类型,您必须:
- 在 Pod 订阅中设置另一个 VNet,该 VNet 不包含受 AKS 限制范围内的 IP 地址。
- 在该 VNet 中创建一个新的管理子网,该子网的最小 CIDR 为
/26。 - 根据以下页面,确保新的 VNet 和管理子网允许与 Horizon Cloud Service 所需的端点使用其所需的端口和协议进行网络通信:
- 将该新 VNet 与 Pod 的现有 VNet 对等互连。
然后,在完成上述四个步骤后,当满足以下后续各节中所述的要求时,可以使用该新的管理子网和 VNet。
注意:
要避免使用的受 AKS 限制的 IP 范围包括:
169.254.0.0/16172.30.0.0./16172.31.0.0/16192.0.2.0/24
除了避免在新的 VNet 中使用上述范围以外,您还应避免使用您和您的团队决定用于部署的虚拟 IP 范围的 CIDR,如 AKS 类型 - 预留所需的虚拟 IP 范围以防止与 AKS 冲突中所述。
AKS 类型 - 确认 Azure 资源提供程序并注册新的所需资源提供程序
AKS 类型的 Horizon Edge Gateway 部署要求在 Microsoft Azure 订阅中具有一组特定的资源提供程序。
在第一代 Pod 的订阅中,确认以下资源提供程序均处于 Registered 状态。
其中的一些资源提供程序与第一代 Pod 部署所需的资源提供程序相同。该表指出了还需要为 AKS 部署类型注册哪些资源提供程序。
| 资源提供程序 | |
|---|---|
| 要为 Horizon Cloud AKS 部署类型注册的其他新资源提供程序 |
|
| 之前已为第一代 Pod 注册的 Horizon Cloud 所需的资源提供程序 |
|
要验证第一代 Pod 的 Microsoft Azure 订阅中的资源提供程序,请执行以下操作:
-
登录到 Azure 门户并搜索该 Pod 的订阅。
-
单击相应订阅名称,并向下滚动直到看到
(资源提供程序)。 -
查找上表中的资源提供程序,并确认它们均显示
(已注册)状态。使用 Azure 门户注册表中处于
NotRegistered状态的任何资源提供程序。
**重要信息:**请勿取消注册已注册的资源提供程序。
您可能会看到,Pod 的订阅具有 Horizon Cloud Edge Gateway 所需的资源提供程序,并且这些资源提供程序已处于 Registered 状态。您可能还会看到一些已注册的资源提供程序,例如 Microsoft.Billing,这些资源提供程序与 Horizon Cloud Service 所需的资源提供程序无关。这种潜在的状态差异是标准 Microsoft Azure 行为所产生的结果,Microsoft Azure 通常会为所有 Azure 订阅注册一组资源提供程序。
AKS 类型 - 配置 NAT 网关或路由表并关联到管理子网
要实现与云控制平面的出站通信,AKS 类型的 Horizon Edge Gateway 部署要求在其管理子网上关联以下项之一:NAT 网关或路由表。
在 Pod 的 Microsoft Azure 订阅中,创建要使用的订阅,并将其与 Pod 的管理子网相关联。
- NAT 网关
- 路由表(这是一个更高级的选择,通常仅在 Pod 的 VNet 已将路由表用于第一代 Pod 时使用)
**重要信息:**无论您创建哪一项,都请确保将其与相应的管理子网相关联,包括 Pod 的现有管理子网或新的管理子网(如果必须创建一个新的管理子网以解决 VNet 具有受 AKS 限制的 IP 地址的问题)。
使用 NAT 网关 - 创建 NAT 网关并将其关联到管理子网
根据 Microsoft Azure 文档,创建 NAT 网关需要具有公用 IP 地址和/或公用 IP 前缀,您可以自行选择使用哪一个。
Azure 门户的“创建 NAT 网关”向导将要求您做出选择。在以下步骤中,我们选择创建一个新的公用 IP 以用于 NAT 网关。
-
登录到 Azure 门户,然后使用搜索栏搜索 NAT 网关并选择该类别。

-
单击 + 创建以启动“创建 NAT 网关”向导。
-
在“创建 NAT 网关”向导的第一步中,确保已选择 Pod 的订阅,并为该 NAT 网关选择一个要驻留的资源组。
-
为 NAT 网关命名,并确保所选区域是 Pod 的 Azure 区域。在填写后,单击出站 IP 步骤。
以下屏幕截图显示了我们将 NAT 网关命名为
first-pod-migration的示例。它驻留在 Azure 区域West US 2中。
-
在出站 IP 步骤中,按照屏幕上的说明选择是将公用 IP 地址还是公用 IP 前缀用于该 NAT 网关。
以下屏幕截图显示了该步骤,我们选择创建新的公用 IP 以供该 NAT 网关使用,并将其命名为
first-pod-NAT-gtway。在填写该步骤后,单击以转到下一个向导步骤子网。

-
在向导的子网步骤中,执行以下任一操作:
- 如果您没有解决 VNet 中使用受 AKS 限制的 IP 地址的问题,请选择 Pod 的 VNet 及其管理子网。
- 否则,如果您创建了一个新的 VNet 和管理子网,以解决 Pod 的 VNet 具有受 AKS 限制的 IP 地址的问题,请选择新的 VNet 和新的管理子网。 以下屏幕截图显示了选择 Pod 的 VNet 及其管理子网,并将子网与此 NAT 网关相关联的步骤。

-
单击查看 + 创建。
如果验证通过,请单击创建以最终创建该 NAT 网关。
现在,NAT 网关已与管理子网相关联,并准备好供您在迁移向导中选择该网关。
如果选择路由表 - 创建路由表并将其关联到管理子网
为该路由表配置指向 Virtual appliance 或 Virtual network gateway 类型的下一跃点的默认路由 0.0.0.0/0。
-
登录到 Azure 门户,然后使用搜索栏搜索路由表并选择该类别。

-
单击 + 创建以启动“创建路由表”向导。
-
在“创建路由表”向导的第一步中,确保已选择 Pod 的订阅,并为该路由表选择一个要驻留的资源组。
**注意:**请记住,如果您决定让路由表驻留在与 VNet 资源组不同的资源组中,并且第一代 Pod 的服务主体使用自定义角色,则自定义角色需要具有该路由表的资源组的
Network Contributor权限。对第一代部署使用自定义角色是不常见的。需要对路由表的资源组具有该权限的原因是,AKS 部署类型需要向与管理子网关联的路由表添加条目。这些条目用于在 AKS 类型的 Horizon Edge Gateway 部署中对 Kubernetes Pod 进行内部路由。 -
为路由表命名,并确保所选区域是 Pod 的 Azure 区域。
对于传播网关路由,选择否。
以下屏幕截图显示了我们将路由表命名为
first-pod-migration的示例。它驻留在 Azure 区域West US 2中。
-
在填写“创建路由表”表单后,单击查看 + 创建。
如果验证通过,请单击创建以最终创建该路由表。
-
现在,导航到新创建的路由表,为其配置指向
Virtual network gateway或Virtual appliance类型的下一跃点的默认路由0.0.0.0/0。由于 AKS 仅支持这两种下一跃点类型,因此,AKS 类型的 Horizon Edge Gateway 部署专门支持这两种类型。
在您具有可控制 Pod 的 VNet 和公共 Internet 之间出站流量的 Azure 网络虚拟设备 (Network Virtual Appliance, NVA) 时,通常使用
Virtual Appliance。在“添加路由”表单中,您需要提供可提供出站 Internet 连接的 NVA 的 IP 地址。
您应该确保可以从管理子网(将部署 Horizon Edge Gateway 的子网)访问该 IP 地址。该 NVA 必须允许流量到达 Horizon Cloud 环境的 AKS 部署类型所需的端点。
-
单击路由,然后单击 + 添加以添加该默认路由。
以下屏幕截图显示了此步骤。在该图中展开了下一跃点类型菜单,以显示支持的
Virtual network gateway和Virtual appliance选项的出现位置。此外,我们还键入了路由名称和0.0.0.0/0目标 IP 地址。
以下屏幕截图显示了填写的“添加路由”表单,其中下一跃点为
Virtual Network Gateway。
-
单击添加以将该路由添加到路由表中。
-
现在,单击子网和 + 关联,以将新路由表与管理子网相关联。
以下屏幕截图显示了此步骤。根据以下内容选择相应的 VNet 和管理子网:
- 如果您没有解决 VNet 中使用受 AKS 限制的 IP 地址的问题,请选择 Pod 的 VNet 及其管理子网。
- 否则,如果您创建了一个新的 VNet 和管理子网,以解决 Pod 的 VNet 具有受 AKS 限制的 IP 地址的问题,请选择新的 VNet 和新的管理子网。

-
在选择子网后,单击确定。
现在,路由表已与管理子网相关联,并准备好供您在迁移向导中选择该路由表。
AKS 类型 - 创建用户分配的受管身份并分配所需的角色权限
使用 AKS 类型的 Horizon Edge Gateway 部署时,Pod 的 Microsoft Azure 订阅必须具有用户分配的受管身份。
您或 IT 团队可以使用 Azure 门户创建和配置该身份。
必须为该用户分配的受管身份配置以下特性:
- VNet 的资源组范围内的
Network Contributor角色。适用的 VNet 是:- 如果您没有解决 VNet(即 Pod 的 VNet)中使用受 AKS 限制的 IP 地址的问题,则 Pod 的 VNet 适用。
- 否则,如果您创建了一个新的 VNet 来解决 Pod 的 VNet 具有受 AKS 限制的 IP 地址的问题,则该 VNet 适用。
- Pod 的 Microsoft Azure 订阅范围内的
Managed Identity Operator角色。
AKS 部署类型需要此受管身份的原因是,部署的网关中的 Azure Kubernetes 服务 (AKS) 集群需要身份才能访问 Azure 资源。因此,迁移工作流需要此身份才能部署此类型。
创建用户分配的受管身份
-
登录到 Azure 门户并使用搜索栏搜索用户分配的,然后选择用户分配的受管身份结果。
以下屏幕截图显示了在该门户中进行搜索的这一步骤。

-
在您单击用户分配的受管身份搜索结果时,将启动“创建用户分配的受管身份”向导。
选择 Pod 的订阅以及要在创建此标识资源后用于存储该标识资源的资源组。
选择 Pod 的 Azure 区域,然后键入此用户分配的受管身份的名称。
以下屏幕截图显示了此步骤,其中为保护隐私而屏蔽了部分内容。此处,我们将用户分配的受管身份命名为
AKS-Edge-identity。
-
单击查看 + 创建以转到向导的最后一步。
-
查看信息并单击创建以完成向导,并创建用户分配的受管身份。
该屏幕截图显示了单击创建之前的最后一步。

-
然后,将角色权限添加到新创建的身份,如下一节中所述。
分配所需的角色权限 - Azure 预览功能方法
本节的步骤说明了使用 Azure 预览功能步骤将角色分配给受管身份的方法。如果执行以下步骤,但在查看用户分配的受管身份的 Azure 角色分配区域时没有看到 + 添加角色分配 (预览) 按钮,您可以使用下一节中的替代方法分配角色权限。
要添加到用户分配的受管身份的权限包括:
| 角色权限 | 范围 |
|---|---|
| “受管身份操作员”角色 | Pod 的 Microsoft Azure 订阅 |
| “网络参与者”角色 | VNet 的资源组。适用的 VNet 是:
|
**注意:**根据 Microsoft RBAC 文档,您必须具有 Microsoft.Authorization/roleAssignments/write 权限才能分配 Azure 角色。
-
在 Azure 门户中,导航到新创建的用户分配的受管身份,然后单击 Azure 角色分配和添加角色分配 (预览),直至您看到添加角色分配 (预览) 表单。
以下屏幕截图显示了该步骤。

-
在添加角色分配 (预览) 表单中,选择订阅作为范围,选择 Pod 的订阅,然后选择
Managed Identity Operator作为角色。
-
单击保存以将该
Managed Identity Operator角色分配保存到该身份中。 -
单击刷新以查看列出的新添加的角色。

-
单击添加角色分配 (预览) 以重新打开添加角色分配 (预览) 表单。
-
这次,选择资源组作为范围,选择适用的 VNet 资源组,然后选择
Network Contributor作为角色。
-
单击保存以将该
Network Contributor角色分配保存到该身份中。 -
单击刷新以查看新添加的角色。现在应列出这两个角色。

现在,所需的用户分配的受管身份已存在,并具有 AKS 部署类型所需的角色权限。
分配所需角色权限的替代方法
如果在查看用户分配的受管身份的 Azure 角色分配区域时没有看到 + 添加角色分配 (预览) 按钮,您可以使用该替代方法分配角色权限。
要添加到用户分配的受管身份的权限包括:
| 角色权限 | 范围 |
|---|---|
| “受管身份操作员”角色 | Pod 的 Microsoft Azure 订阅 |
| “网络参与者”角色 | VNet 的资源组。适用的 VNet 是:
|
**注意:**根据 Microsoft RBAC 文档,您在 Azure 中的 userID 必须具有 Microsoft.Authorization/roleAssignments/write 权限才能分配 Azure 角色。
-
先将
Managed Identity Operator权限添加到 Pod 的订阅范围中:-
在 Azure 门户中,导航到订阅。
-
在该订阅的页面中,单击访问控制 (IAM),然后单击角色分配选项卡。

-
单击 + 添加 > 添加角色分配。

将显示添加角色分配向导。
-
在该向导中的角色选项卡上,搜索并选择
Managed Identity Operator角色。在单击下一步之前,请确保选择了该角色对应的行。
-
单击下一步以转到成员选项卡。
-
在成员选项卡上,选择受管身份,然后选择 + 选择成员,这会显示选择受管身份表单。
此处的下一步具有示例屏幕截图。
-
在选择受管身份表单中的受管身份菜单上,选择用户分配的受管身份。

-
接下来,选择您创建的用户分配的受管身份,然后单击选择按钮以将其添加到成员选项卡中。

-
现在单击查看 + 分配以转到向导的查看 + 分配选项卡。

-
在查看 + 分配选项卡上,单击最后的查看 + 分配按钮,以完成将该角色分配给订阅范围内的身份的过程。

-
-
现在,将
Network Contributor权限添加到 VNet 的资源组范围内:-
在 Azure 门户中,导航到适用的 VNet 资源组。适用的 VNet 是:
- 如果您没有解决 VNet 中使用受 AKS 限制的 IP 地址的问题,则 Pod 的 VNet 资源组适用。
- 否则,如果您创建了新的 VNet 以解决 Pod 的 VNet 使用受 AKS 限制的 IP 地址的问题,则该 VNet 的资源组适用。
-
在该资源组的页面中,使用与上面为订阅权限执行的操作类似的步骤。
您单击访问控制 (IAM),然后单击角色分配选项卡。
该屏幕截图显示了对名为
hcsvnet-RG的 VNet 资源组执行的该步骤。
-
单击 + 添加 > 添加角色分配。将显示添加角色分配向导。
-
在该向导中的角色选项卡上,搜索并选择
Network Contributor角色。在单击下一步之前,请确保选择了该角色对应的行。
-
接下来,与之前的另一个权限一样,单击下一步以转到成员选项卡,选择受管身份,然后选择 + 选择成员,这会显示选择受管身份表单。

-
在选择受管身份表单中的受管身份菜单上,选择用户分配的受管身份。
-
接下来,选择您创建的用户分配的受管身份,然后单击选择按钮以将其添加到成员选项卡中。

-
现在,转到向导的查看 + 分配选项卡,然后单击查看 + 分配按钮,以完成将该角色分配给 VNet 资源组范围内的身份的过程。
该屏幕截图显示了对名为
hcsvnet-RG的 VNet 资源组执行的该步骤。
-
现在,所需的用户分配的受管身份已存在,并具有 AKS 部署类型所需的角色权限。
要确认用户分配的受管身份具有两个角色,请在 Azure 门户中导航到该身份并显示其 Azure 角色分配页面。
以下屏幕截图显示了我们的用户分配的受管身份,并在其 Azure 角色分配中列出了两个角色。

AKS 类型 - 预留所需的虚拟 IP 范围以防止与 AKS 冲突
当您决定使用 AKS 类型的 Horizon Edge Gateway 部署迁移 Pod 时,此信息将适用。AKS 部署类型要求在您选择的 IP 管理方法 IPAM 系统(IP 地址管理系统)中预留某些虚拟 IP 范围。
简介
这些范围是为仅使用 AKS 类型的 Horizon Edge Gateway 而预留的虚拟 IP 范围
按照设计,Kubernetes 会在 Horizon Edge Gateway 内的 Kubernetes 集群内创建虚拟网络。
这些虚拟网络托管集群内运行的容器。
如果这些范围在 Edge 内部,为什么必须预留这些范围?
预留这些范围的目的是,防止网络空间中的任何其他计算机向自身分配这些 IP 地址并使用这些 IP 地址。
即使 Edge 的 Kubernetes 集群的虚拟网络位于 Horizon Edge Gateway 内部,并且实际上并不位于管理网络上,集群的虚拟网络也会连接到 Azure VNet 中的管理子网。
在 AKS 集群外部运行的服务会将流量路由到 AKS-cluster-internal 网络。例如,VDI 桌面中的 Horizon Agent 需要将数据发送到在该 AKS 集群中运行的服务。
因此,如果未预留范围,并且您网络上的另一台计算机碰巧从这些范围中分配了 IP 地址,则可能会影响路由并导致到 AKS-cluster-internal 网络的必要服务流量发生冲突。
通过在 Pod 迁移之前在 IP 地址管理系统中预留 IP 范围,可以避免此类潜在冲突。
是否需要创建这些范围的子网?
否,您无需创建这些范围的子网。
在迁移过程中部署 Horizon Edge 时,这些虚拟 IP 范围将位于 Horizon Edge Gateway 的 AKS 集群虚拟网络中。
对于 Pod 迁移,是否需要知道预留范围是什么?
是。当您计划选择 AKS 部署类型时,您需要知道您和您的团队为该部署目的预留的范围。
迁移向导 UI 要求您在名为服务 CIDR 和 Pod CIDR 的字段中输入两个 IP 范围 (CIDR)。
因此,在运行迁移向导之前,您必须确定您和您的团队选择预留的范围。
我必须预留哪些类型的范围?
AKS 类型的 Horizon Edge Gateway 需要预留两个虚拟 IP 范围以供使用。
- 对于所谓的服务 CIDR,CIDR 范围最小为
/27 - 对于所谓的 Pod 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 范围时,请记住以下几点:
|
| Pod CIDR | 确定 Pod CIDR 的 IP 范围并在 IPAM 中预留该 IP 空间,以使其他计算机无法使用该范围内的 IP 地址。最少需要 /21 范围。
切记:如上所述,这是一个虚拟 IP 范围,您无需创建具有此范围的子网。您只需确保网络中的其他计算机均未分配这些地址。
在确定 IP 范围时,请记住以下几点:
|
此页面对您有帮助吗?