第 23 章 OVN-Kubernetes 默认 CNI 网络供应商


OpenShift Container Platform 集群在 pod 和服务网络中使用虚拟网络。OVN-Kubernetes Container Network Interface (CNI) 插件是默认集群网络的一个网络供应商。OVN-Kubernetes 基于 Open Virtual Network(OVN),它提供了一个基于 overlay 的网络实现。使用 OVN-Kubernetes 网络供应商的集群还在每个节点上运行 Open vSwitch(OVS)。OVN 在每个节点上配置 OVS 来实现声明的网络配置。

OVN-Kubernetes 是单节点 OpenShift 部署的默认网络解决方案。

23.1.1. OVN-Kubernetes 特性

OVN-Kubernetes Container Network Interface (CNI) 集群网络供应商实现以下功能:

  • 使用 OVN(开源虚拟网络)管理网络流量。OVN 是一个社区开发、与供应商无关的网络虚拟化解决方案。
  • 实现 Kubernetes 网络策略支持,包括入口和出口规则。
  • 使用 Geneve(通用网络虚拟化封装)协议而不是 VXLAN 在节点间创建覆盖网络。

23.1.2. 支持的默认 CNI 网络供应商功能列表

OpenShift Container Platform 为默认的 Container Network Interface (CNI) 网络供应商提供两个支持的选择:OpenShift SDN 和 OVN-Kubernetes。下表总结了这两个网络供应商当前支持的功能:

Expand
表 23.1. 默认 CNI 网络供应商功能比较
功能OVN-KubernetesOpenShift SDN

出口 IP

支持

支持

Egress 防火墙 [1]

支持

支持

出口路由器

支持 [2]

支持

混合网络

支持

不支持

集群内通信的 IPsec 加密

支持

不支持

IPv6

支持 [3] [4]

不支持

Kubernetes 网络策略

支持

支持

Kubernetes 网络策略日志

支持

不支持

硬件卸载

支持

不支持

多播

支持

支持

  1. 在 OpenShift SDN 中,出口防火墙也称为出口网络策略。这和网络策略出口不同。
  2. OVN-Kubernetes 的出口路由器仅支持重定向模式。
  3. IPv6 只在裸机集群中被支持。
  4. IPv6 单堆栈不支持 Kubernetes NMState

23.1.3. OVN-Kubernetes 限制

OVN-Kubernetes Container Network Interface(CNI)集群网络供应商有以下限制:

  • sessionAffinityConfig.clientIP.timeoutSeconds 服务在 OpenShift OVN 环境中无效,但在 OpenShift SDN 环境中不起作用。这种不兼容可能会导致用户难以从 OpenShift SDN 迁移到 OVN。
  • 对于为双栈网络配置的集群,IPv4 和 IPv6 流量都必须使用与默认网关相同的网络接口。如果不满足此要求,则 ovnkube-node 守护进程集中的主机上的容器集进入 CrashLoopBackOff 状态。如果您使用 oc get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -o yaml 等命令显示 pod,则 status 字段包含多个有关默认网关的消息,如以下输出所示:

    I1006 16:09:50.985852   60651 helper_linux.go:73] Found default gateway interface br-ex 192.168.127.1
    I1006 16:09:50.985923   60651 helper_linux.go:73] Found default gateway interface ens4 fe80::5054:ff:febe:bcd4
    F1006 16:09:50.985939   60651 ovnkube.go:130] multiple gateway interfaces detected: br-ex ens4
    Copy to Clipboard Toggle word wrap

    唯一的解析是重新配置主机网络,以便两个 IP 系列都针对默认网关使用相同的网络接口。

  • 对于为双栈网络配置的集群,IPv4 和 IPv6 路由表必须包含默认网关。如果不满足此要求,则 ovnkube-node 守护进程集中的主机上的容器集进入 CrashLoopBackOff 状态。如果您使用 oc get pod -n openshift-ovn-kubernetes -l app=ovnkube-node -o yaml 等命令显示 pod,则 status 字段包含多个有关默认网关的消息,如以下输出所示:

    I0512 19:07:17.589083  108432 helper_linux.go:74] Found default gateway interface br-ex 192.168.123.1
    F0512 19:07:17.589141  108432 ovnkube.go:133] failed to get default gateway interface
    Copy to Clipboard Toggle word wrap

    唯一的解析是重新配置主机网络,以便两个 IP 系列都包含默认网关。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat