您可以使用 NSX 中的“支持包”功能从 Antrea Kubernetes 集群节点收集日志文件,以便进行详细的故障排除和诊断。

NSX 可以将支持包上载到从中触发了支持包收集请求的 NSX Manager 节点,也可以将支持包上载到您在请求中指定的远程文件服务器。如果已将支持包上载到 NSX Manager 节点,您可以将它们下载到本地计算机中。

注: 本文档使用术语“Antrea Kubernetes 集群”来表示具有 Antrea CNI 的 Kubernetes 集群。术语“Kubernetes 集群”是一个通用术语,它表示具有 Antrea CNI 的 Tanzu Kubernetes Grid (TKG) 集群、具有 Antrea CNI 的 OpenShift 集群或具有 Antrea CNI 的自助式 (Do It Yourself, DIY) Kubernetes 集群。

对于少数 UI 字段或标签,UI 使用术语“Antrea 容器集群”。在本文档的过程部分中,这些 UI 字段或标签保留“Antrea 容器集群”一词。对于所有自由格式文本,将使用术语“Antrea Kubernetes 集群”。

Antrea Kubernetes 集群的支持包中包含以下组件的日志文件:
  • Antrea 控制器
  • Antrea 代理
  • 管理平面适配器
  • 中央控制平面适配器
  • Open vSwitch
支持和不支持的功能
  • NSX Manager 节点中,您只能启动单个支持包收集请求。但是,您可以通过单个收集请求收集多个 Antrea Kubernetes 集群的支持包。
  • 如果使用的 NSX Manager 集群包含三个管理节点,则可以从各个 NSX Manager 节点同时启动单独的支持包收集请求。不过,您在每个收集请求中选择的 Antrea Kubernetes 集群必须是不同的。

    例如,假设您在 NSX Manager 节点 A 上启动了一个支持包收集请求。在该收集请求中,您从 Antrea Kubernetes 集群 X 中选择了集群节点 1 和 2。同时,如果您在 NSX Manager 节点 B 上为 Antrea Kubernetes 集群 X 中的集群节点 3 和 4 启动了第二个收集请求,这两个收集请求之一将失败。您必须等待第一个收集请求完成,然后再为同一 Antrea Kubernetes 集群触发第二个请求。

  • Antrea Kubernetes 集群当前不支持通过 NSX Manager 中央 CLI 收集支持包。

前提条件

已向 NSX 注册 Antrea Kubernetes 集群。

过程

  1. 从浏览器中,通过 https://nsx-manager-ip-address 登录到 NSX Manager
  2. 导航到系统 > 支持包
    此时将打开 请求包页面。
    重要说明: 在浏览器中启动 NSX Manager 应用程序时, NSX Manager UI 会获取有关已注册的 Antrea Kubernetes 集群的信息。如果该应用程序 UI 已打开,则不会自动获取 Antrea Kubernetes 集群注册信息。根据当前 UI 设计,这是预期行为。如果在打开 NSX Manager 应用程序后注册了首个 Antrea Kubernetes 集群,请确保在导航到 请求支持包页面后刷新浏览器。手动刷新可确保您能够在此过程的下一步中选择 Antrea Kubernetes 集群作为目标节点。

    此手动浏览器刷新只需执行一次,而无需在每次将新的 Antrea Kubernetes 集群注册到 NSX 后都执行。

  3. 选择要包含在支持包请求中的目标节点。
    可用的节点类型包括:
    • Antrea 容器集群
    • 管理节点
    • Edge
    • 主机

    单个支持包请求可以包含 NSX 环境中不同类型的节点。例如,在同一收集请求中,您可以选择 Antrea Kubernetes 集群中的节点、NSX Manager 节点和 NSX Edge 节点。不过,该过程仅用于说明为 Antrea Kubernetes 集群创建支持包收集请求的工作流。

  4. 类型下拉菜单中,选择 Antrea 容器集群
  5. 容器集群列表中,选择集群的名称。
    如果该列表包含一些可供选择的集群,请输入集群名称的前几个字符。系统将筛选列表,并仅显示与您输入的字符匹配的集群名称。
    将在 可用列表中显示选定的集群中的所有节点。
  6. 从集群中选择一个或多个节点,然后单击向右箭头以将其移到选定列表中。
    要在单个收集请求中从多个集群中选择节点,请对每个集群重复步骤 4 和 5。
  7. (可选) 日志期限 (天) 文本框中,保留默认值,或者输入所需的特定天数以在支持包中包括这些天的日志。将日志期限指定为特定天数。
  8. (可选) 要将支持包上载到远程文件服务器,请指定文件服务器设置。
    1. 输入远程文件服务器的 IP 地址或主机名。
    2. 输入文件传输协议和端口号。默认端口号为 22。
    3. 输入用于访问远程文件服务器的用户名和密码。
    4. 输入要上载的支持包文件所在的目标文件夹的路径。
    如果未指定远程文件服务器设置,则会将支持包上载到 NSX Manager 节点,您可以从中触发支持包收集请求。
  9. 单击开始收集支持包
    收集请求的运行时详细信息将显示在 状态页面上。收集过程需要几分钟时间才会完成。创建支持包所需的时间取决于要从容器集群中的每个节点收集的日志文件数量。
  10. 收集过程完成后,单击下载
    支持包文件将保存在本地计算机上。如果您已指定远程文件服务器设置,则不会在 UI 中显示 下载按钮。

结果

支持包收集请求使用以下文件命名约定生成单个磁带存档 (TAR) 文件:nsx_support_archive_datestamp_timestamp.tar

在以下情况下,支持包收集请求可能会失败:
  • 如果在处理支持包请求期间,Kubernetes 集群上的 Antrea NSX 适配器 失败,则该 Kubernetes 集群的日志收集将失败。
  • 如果在处理支持包请求期间,NSX Manager 设备失败或无法访问,则日志收集将失败。在解决与 NSX Manager 的连接问题之前,您可以使用 Antrea 的本机命令行工具 (antctl) 从 Antrea Kubernetes 集群收集日志文件。
部分成功场景
假设您从单个 Antrea Kubernetes 集群中选择了 10 个节点以收集支持包。在收集过程中,从该 Antrea Kubernetes 集群的五个节点中成功收集了日志文件,但未从其余五个节点中收集到日志文件。换句话说,部分成功完成了收集请求。在这种情况下,收集请求状态为 成功,并且支持包文件 (TAR) 包含 5 个成功节点的日志。

下一步做什么

  1. 提取 TAR 文件。此时将显示以下文件。
    文件名 描述
    manifest.json

    此文件包含收集请求结果的摘要以及收集请求的属性。

    例如,它包含有关以下内容的信息:
    • 已成功收集的节点。
    • 收集失败的节点。
    • 收集请求中使用的集群 ID 和节点 ID。
    nsx_antrea_cluster-id.tgz

    在支持包中,将为每个 Antrea Kubernetes 集群创建一个 .tgz 存档文件。

  2. 提取 nsx_antrea_cluster-id.tgz 文件。此时将显示以下文件。
    文件名 描述
    adapters.tar.gz

    此存档文件包含管理平面适配器中央控制平面适配器的日志文件。

    agent_node_name.tar.gz

    此存档文件包含 Antrea 代理和 Open vSwitch 的日志文件。在收集请求中,将为每个 Antrea Kubernetes 集群节点生成一个存档文件。

    提取此存档文件时,可以查看以下文件:
    • agentinfo 文件
    • 位于 /logs/agent 中的代理日志
    • 位于 /logs/ovs 中的 Open vSwitch 日志
    • OpenFlow 转储
    • IPtables
    • 路由转储
    clusterinfo
    将为支持包请求中的每个 Antrea Kubernetes 集群生成该文件。该文件包含有关从 Kubernetes API 服务器收集的以下 Kubernetes 资源的信息:
    • 容器
    • 节点
    • 部署
    • ReplicaSets
    • DaemonSets
    controller.tar.gz

    此存档文件包含 Antrea 控制器 的日志文件。

    提取此存档文件时,可以查看以下文件:
    • controllerinfo 文件
    • 位于 /logs/controller 中的控制器日志