如果未正确配置您的环境的网络连接以用于 Microsoft Azure 中的第一代 Horizon Cloud 容器,构建该容器的过程可能会停滞在挂起状态,或者将域绑定到您的 Active Directory 环境的部署后操作可能会失败。两个最常见的网络相关原因是,无法打开所需的出站端口以及无法启用 DNS 以解析内部和外部地址。通过执行此处的故障排除步骤,您可以运行一些测试以验证是否打开所需的出站端口以及 DNS 是否可以解析内部和外部地址。
必备条件检查表以及第一代租户 - 配置将用于 Microsoft Azure 中的 Horizon Cloud 容器的 VNet 拓扑所需的 DNS 服务器设置和 第一代租户 - Horizon Cloud on Microsoft Azure 部署 - 主机名解析要求、DNS 名称中说明了成功部署容器的总体网络连接要求。如果您的环境的网络不符合这些要求,将会遇到下面的一个或两个问题:
问题 | 常见的原因 |
---|---|
|
如果没有为 VNet 提供外部计算机名称的 DNS 解析,则可能会出现挂起状态问题和域绑定问题。例如,如果 DNS 无法解析为域控制器上的 Active Directory,域绑定步骤将失败。有关 VNet DNS 配置的详细信息,请参阅第一代租户 - 配置将用于 Microsoft Azure 中的 Horizon Cloud 容器的 VNet 拓扑所需的 DNS 服务器设置。 |
要运行一些测试以检查 DNS 配置是否可以解析内部和外部名称以及是否打开了所需的出站端口,可以在您的 Microsoft Azure 订阅中部署一个小测试虚拟机 (VM),然后使用该虚拟机运行这些网络测试。简要故障排除步骤顺序如下所示:
- 创建一个 SSH 密钥对。
- 在您的 Microsoft Azure 订阅中创建测试虚拟机。
- 连接到该测试虚拟机。
- 运行网络测试。
- 在完成测试后,请删除在您的 Microsoft Azure 环境中创建的测试虚拟机和所有测试相关项目以执行该故障排除。
有关运行故障排除测试的详细信息,请参阅以下几节。
Horizon Cloud 容器部署故障排除 - 创建 SSH 密钥对
在此故障排除过程中,将在您的 Microsoft Azure 订阅中部署一个测试 Linux 虚拟机。要向该测试 Linux 虚拟机进行身份验证,您需要一个 SSH 密钥对。您可以在用于通过 SSH 连接到测试虚拟机的系统上创建该密钥对。如果在该系统上已具有一个密钥对,则该步骤是可选的。
要创建该 SSH 密钥对,您可以使用 Microsoft Windows 或 Linux 系统。下面介绍了适用于这两种类型的系统的步骤。选择最适合您的情况的步骤。
在 Microsoft Windows 系统上创建 SSH 密钥对
在使用 Microsoft Windows 系统通过 SSH 连接到将部署到您的 Microsoft Azure 订阅的测试 Linux 虚拟机时,请使用这些步骤。
在 Microsoft Azure 中创建测试虚拟机时,您将使用生成的公钥文件的内容。如果在用于连接到测试虚拟机的 Microsoft Windows 系统上已具有一个 SSH 密钥对,您可以跳过该步骤并继续创建测试虚拟机,如在您的 Microsoft Azure 订阅中创建测试虚拟机中所述。
通过执行这些步骤,您可以生成 SSH 密钥对,复制公钥文件内容以便在创建测试虚拟机时使用,以及将私钥加载到 PuTTY Pageant 工具中。Pageant 是一个 SSH 身份验证代理,它可以在内存中保留私钥。通过在内存中保留私钥,将针对该 Microsoft Windows 系统中的任何 SSH 会话自动应用私钥,以使其更易于使用。
前提条件
默认情况下,不会在 Microsoft Windows 系统上安装 SSH 密钥对软件。确认在打算使用的系统上安装了 SSH 密钥对生成软件。您可以使用任何 SSH 密钥对生成软件。以下步骤介绍了如何在 Microsoft Windows 上使用 PuTTY 软件创建 SSH 密钥对。您可以从 www.putty.org 中获取 PuTTY 软件。在安装后,即可使用 PuTTY 工具套件。以下屏幕截图显示了“开始”菜单中的 PuTTY 工具示例。
过程
结果
下一步做什么
按照在您的 Microsoft Azure 订阅中创建测试虚拟机中的步骤创建测试虚拟机。
在 Linux 系统上创建 SSH 密钥对
在使用 Linux 系统通过 SSH 连接到将部署到您的 Microsoft Azure 订阅的测试 Linux 虚拟机时,请使用这些步骤。
在 Microsoft Azure 中创建测试虚拟机的步骤中,您将使用生成的公钥文件的内容。如果在用于连接到测试虚拟机的 Linux 系统上已具有一个 SSH 密钥对,您可以跳过该步骤并继续创建测试虚拟机,如在您的 Microsoft Azure 订阅中创建测试虚拟机中所述。
前提条件
在执行这些步骤之前,请确保不会覆盖要保留以用于其他用途的现有 SSH 密钥对。在 Linux 系统上,默认情况下,将在 Linux ~/.ssh/id_rsa
目录中创建 SSH 公钥和私钥文件。如果在该目录中具有一个 SSH 密钥对,并且在运行该命令时使用相同的文件名,或者在该命令中指定不同的位置,并在该位置中已具有一个 SSH 密钥对,则会覆盖该现有密钥对。
过程
下一步做什么
按照在您的 Microsoft Azure 订阅中创建测试虚拟机中的步骤创建测试虚拟机。
在您的 Microsoft Azure 订阅中创建测试虚拟机
您将使用 Microsoft Azure 环境中的测试 Linux 虚拟机 (VM) 运行测试,以检查为您的 Horizon Cloud 容器配置的网络连接。
前提条件
确认您具有按照Horizon Cloud 容器部署故障排除 - 创建 SSH 密钥对中所述创建的 SSH 公钥。您将在虚拟机创建向导中提供该公钥,以便虚拟机将信任来自具有相应私钥的系统的 SSH 连接。
确认您的虚拟网络 (VNet) 名称与用于部署您的容器的虚拟网络相同,如第一代 Horizon Cloud - 在 Microsoft Azure 中配置必需的虚拟网络中所述。
如果您没有使用“添加容器”向导的选项为容器使用您自己命名的子网,而是输入子网的 CIDR,则容器部署程序会创建容器的管理子网。部署过程失败时,该过程可能已在 VNet 中创建容器的管理子网。
- 如果部署程序已经创建该管理子网,建议您将测试虚拟机部署到该子网。要确定 VNet 上是否存在容器的管理子网,请登录到 Microsoft Azure 门户,导航到该 VNet,然后检查它具有的子网列表。如果您让容器部署程序自动创建容器的子网(未通过相应选项为容器使用您自己命名的子网),容器的管理子网将具有
vmw-hcs-podID-net-management
模式的名称,其中 podID 是容器的 UUID。否则,容器的管理子网就是您为容器部署创建的子网。 - 如果部署过程失败而未在 VNet 上创建容器的管理子网,您可以选择 VNet 上的任何可用子网,或者创建新的子网以供测试虚拟机使用。
过程
使用 SSH 连接到测试虚拟机
建立到测试虚拟机的 SSH(安全 Shell)连接,以便在您的 Microsoft Azure 环境中运行网络连接测试。
通过 SSH 从 Microsoft Windows 系统连接到测试虚拟机
您可以从具有与创建测试虚拟机时指定的公钥对应的私钥的 Microsoft Windows 系统中建立该连接。
前提条件
确认您知道在创建测试虚拟机时指定的虚拟机 IP 地址和用户名。
在 Microsoft Windows 系统上,通常使用 PuTTY。为了在启动 SSH 会话时便于 PuTTY 加载私钥,请在启动 PuTTY 之前按照在 Microsoft Windows 系统上创建 SSH 密钥对中所述启动 Pageant,并将 SSH 私钥添加到 Pageant 密钥列表中。SSH 私钥必须与在创建测试虚拟机时指定的公钥匹配。在将私钥加载到 Pageant 后,PuTTY SSH 会话将自动使用该私钥。
过程
结果
下一步做什么
您现在已连接到测试虚拟机,您可以运行测试以检查您的 Microsoft Azure 环境中的网络连接。请按照运行测试以检查您的 Microsoft Azure 环境中的网络中所述的步骤进行操作。
通过 SSH 从 Linux 系统连接到测试虚拟机
您可以从具有与创建测试虚拟机时指定的公钥对应的私钥的 Linux 系统中建立该连接。
前提条件
确认您知道在创建测试虚拟机时指定的虚拟机 IP 地址和用户名。
过程
结果
下一步做什么
您现在已连接到测试虚拟机,您可以运行测试以检查您的 Microsoft Azure 环境中的网络连接。请按照运行测试以检查您的 Microsoft Azure 环境中的网络中所述的步骤进行操作。
运行测试以检查您的 Microsoft Azure 环境中的网络
您可以运行这些测试以验证是否正确配置了以下两个与网络相关的设置:DNS 可以解析内部和外部地址以及打开了所需的出站端口。您可以使用测试虚拟机运行这些测试。
容器依靠 DNS 解析内部和外部地址。此处的前两个测试检查在您的网络环境中配置的 DNS 是否可以解析内部和外部地址的已知 FQDN。
前提条件
在运行这些测试之前,确认在您的 Microsoft Azure 订阅中创建了一个测试虚拟机并建立到该虚拟机的 SSH 连接,如在您的 Microsoft Azure 订阅中创建测试虚拟机和使用 SSH 连接到测试虚拟机中所述。
获取您希望能够从 VNet 中访问的网络内部服务器(如 Active Directory 域控制器)的 IP 地址和完全限定域名 (Fully Qualified Domain Name, FQDN)。您将在 DNS 验证测试中使用该信息。
过程
结果
如果上述测试成功,则可以成功部署您的容器。
下一步做什么
在完成测试时,应该从您的 Microsoft Azure 环境中删除测试虚拟机及其所有相关项目,例如,其虚拟机磁盘、IP 地址和网卡。理想情况下,您为测试虚拟机创建一个资源组,并直接删除该资源组以删除虚拟机的所有项目。按照在完成测试后删除测试虚拟机中的步骤操作。
在完成测试后删除测试虚拟机
在完成测试以检查 Microsoft Azure 网络配置并且不再需要使用测试虚拟机时,您应该从 Microsoft Azure 环境中删除该虚拟机及其所有相关的项目。
过程
- 登录到 Microsoft Azure 门户。
- 使用以下方法之一删除测试虚拟机,具体取决于部署该虚拟机的方式。
- 如果将测试虚拟机部署到其自己的资源组中,并且未将该组用于任何其他用途,您可以删除整个资源组。
小心: 要避免误删除其他项目,请确保资源组仅包含测试虚拟机及其关联的对象(如其磁盘和网络适配器),然后再删除资源组。
- 如果您需要删除测试虚拟机而不删除整个资源组,您可以使用门户的搜索框搜索测试虚拟机的名称。此搜索的结果将列出该虚拟机及其所有关联的对象(磁盘、网络接口、公共 IP 地址等)。然后,分别删除每个对象。
- 如果将测试虚拟机部署到其自己的资源组中,并且未将该组用于任何其他用途,您可以删除整个资源组。