第 7 章 配置网关


作为集群管理员,您可以配置 gatewayConfig 对象来管理外部流量离开集群的方式。为此,您可以将 routingViaHost 参数设置为以下值之一:

  • true 表示出口流量通过托管 pod 的节点上的特定本地网关路由。通过主机的出口流量路由,此流量适用于主机的路由表。
  • false 表示出口流量通过专用节点路由,但一组节点共享同一网关。出口流量不会通过主机路由。Open vSwitch (OVS)将流量直接输出到节点 IP 接口。

7.1. 配置出口路由策略

作为集群管理员,您可以使用 Cluster Network Operator (CNO)中的 gatewayConfig 规格配置出口路由策略。您可以使用以下步骤将 routingViaHost 字段设置为 truefalse

如果需要节点的主机网络充当与 OVN-Kubernetes 不相关的流量的路由器,按照流程中的可选步骤启用 IP 转发和 routingViaHost=true 配置。例如,将本地网关与 IP 转发相结合的可能用例包括:

  • 配置通过节点的 IP 转发所有 pod 出口流量
  • 将 OVN-Kubernetes CNI 与外部网络地址转换(NAT)设备集成
  • 将 OVN-Kubernetes CNI 配置为使用内核路由表

先决条件

  • 您以具有 admin 权限的用户身份登录。

流程

  1. 运行以下命令备份现有网络配置:

    $ oc get network.operator cluster -o yaml > network-config-backup.yaml
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令,将 routingViaHost 参数设置为 true。然后,出口流量会根据您在节点上配置的路由通过特定的网关进行路由。

    $ oc patch networks.operator.openshift.io cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"routingViaHost": true}}}}}'
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令,验证 routingViaHost=true 配置的正确应用程序:

    $ oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"
    Copy to Clipboard Toggle word wrap

    输出示例

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    # ...
    gatewayConfig:
            ipv4: {}
            ipv6: {}
            routingViaHost: true 
    1
    
          genevePort: 6081
          ipsecConfig:
    # ...
    Copy to Clipboard Toggle word wrap

    1
    值为 true 表示出口流量通过托管 pod 的节点上的特定本地网关路由。参数的 false 值表示一组节点共享单个网关,因此流量不会通过单个主机路由。
  4. 可选:运行以下命令来全局启用 IP 转发:

    $ oc patch network.operator cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}'
    Copy to Clipboard Toggle word wrap
    1. 运行以下命令,验证 ipForwarding spec 是否已设置为 Global

      $ oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"
      Copy to Clipboard Toggle word wrap

      输出示例

      apiVersion: operator.openshift.io/v1
      kind: Network
      metadata:
        name: cluster
      # ...
      gatewayConfig:
              ipForwarding: Global
              ipv4: {}
              ipv6: {}
              routingViaHost: true
            genevePort: 6081
      # ...
      Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat