第 2 章 对节点网络配置进行故障排除


如果节点网络配置遇到问题,则策略会自动回滚,且报告失败。这包括如下问题:

  • 配置没有在主机上应用。
  • 主机丢失了到默认网关的连接。
  • 断开了与 API 服务器的连接。

您可以通过应用节点网络配置策略,对整个集群中的节点网络配置应用更改。

如果应用了不正确的配置,您可以使用以下示例进行故障排除并修正失败的节点网络策略。这个示例尝试将 Linux 网桥策略应用到具有三个 control plane 节点和三个计算节点的集群。策略不会被应用,因为策略会引用错误的接口。

要查找错误,您需要调查可用的 NMState 资源。然后您可以使用正确配置来更新策略。

先决条件

  • 您确保 Linux 系统上不存在 ens01 接口。

流程

  1. 在集群中创建策略。以下示例创建了一个简单的网桥 br1,它具有 ens01 作为其成员:

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
      name: ens01-bridge-testfail
    spec:
      desiredState:
        interfaces:
          - name: br1
            description: Linux bridge with the wrong port
            type: linux-bridge
            state: up
            ipv4:
              dhcp: true
              enabled: true
            bridge:
              options:
                stp:
                  enabled: false
              port:
                - name: ens01
    # ...
    Copy to Clipboard Toggle word wrap
  2. 将策略应用到您的网络接口:

    $ oc apply -f ens01-bridge-testfail.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    nodenetworkconfigurationpolicy.nmstate.io/ens01-bridge-testfail created
    Copy to Clipboard Toggle word wrap

  3. 运行以下命令,验证策略的状态:

    $ oc get nncp
    Copy to Clipboard Toggle word wrap

    输出显示策略失败:

    输出示例

    NAME                    STATUS
    ens01-bridge-testfail   FailedToConfigure
    Copy to Clipboard Toggle word wrap

    仅有策略状态并不表示它在所有节点或某个节点子集中是否失败。

  4. 列出节点网络配置以查看策略在任意节点上是否成功。如果策略只在一组节点中失败,输出表示问题在于特定的节点配置。如果策略在所有节点上都失败,输出会认为问题在于策略。

    $ oc get nnce
    Copy to Clipboard Toggle word wrap

    输出显示策略在所有节点上都失败:

    输出示例

    NAME                                         STATUS
    control-plane-1.ens01-bridge-testfail        FailedToConfigure
    control-plane-2.ens01-bridge-testfail        FailedToConfigure
    control-plane-3.ens01-bridge-testfail        FailedToConfigure
    compute-1.ens01-bridge-testfail              FailedToConfigure
    compute-2.ens01-bridge-testfail              FailedToConfigure
    compute-3.ens01-bridge-testfail              FailedToConfigure
    Copy to Clipboard Toggle word wrap

  5. 查看失败的原因之一。以下命令使用输出工具 jsonpath 来过滤输出结果:

    $ oc get nnce compute-1.ens01-bridge-testfail -o jsonpath='{.status.conditions[?(@.type=="Failing")].message}'
    Copy to Clipboard Toggle word wrap

    输出示例

    [2024-10-10T08:40:46Z INFO  nmstatectl] Nmstate version: 2.2.37
    NmstateError: InvalidArgument: Controller interface br1 is holding unknown port ens01
    Copy to Clipboard Toggle word wrap

    上例显示 InvalidArgument 错误的输出,这表示 ens01 是一个未知端口。在本例中,您可能需要更改策略配置文件中的端口配置。

  6. 要确保正确配置了策略,请求 NodeNetworkState 来查看一个或多个节点的网络配置。以下命令返回 control-plane-1 节点的网络配置:

    $ oc get nns control-plane-1 -o yaml
    Copy to Clipboard Toggle word wrap

    输出显示节点上的接口名称为 ens1,但失败的策略使用了 ens01:

    输出示例

       - ipv4:
    # ...
          name: ens1
          state: up
          type: ethernet
    Copy to Clipboard Toggle word wrap

  7. 通过编辑现有策略修正错误:

    $ oc edit nncp ens01-bridge-testfail
    Copy to Clipboard Toggle word wrap
    # ...
              port:
                - name: ens1
    Copy to Clipboard Toggle word wrap

    保存策略以应用更正。

  8. 检查策略的状态,以确保它被成功更新:

    $ oc get nncp
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                    STATUS
    ens01-bridge-testfail   SuccessfullyConfigured
    Copy to Clipboard Toggle word wrap

    在集群中的所有节点上都成功配置了更新的策略。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat