Menu Close

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

15.1. 关于 OVN-Kubernetes 默认 Container Network Interface (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 来实现声明的网络配置。

15.1.1. OVN-Kubernetes 特性

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

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

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

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

表 15.1. 默认 CNI 网络供应商功能比较

功能OVN-KubernetesOpenShift SDN

出口 IP

支持

支持

Egress 防火墙 [1]

支持

支持

出口路由器

支持 [2]

支持

IPsec 加密

支持

不支持

IPv6

支持 [3]

不支持

Kubernetes 网络策略

支持

部分支持 [4]

Kubernetes 网络策略日志

支持

不支持

多播

支持

支持

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

15.1.3. OVN-Kubernetes 限制

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

  • OVN-Kubernetes 不支持将 Kubernetes 服务的外部流量策略或内部流量策略设置为 本地。两个参数都支持默认值 cluster。当您添加类型为 LoadBalancerNodePort 的服务或使用外部 IP 添加服务时,这个限制可能会影响您。
  • 对于为双栈网络配置的集群,IPv4 和 IPv6 流量必须使用与默认网关相同的网络接口。如果没有满足此要求,ovnkube-node 守护进程集中主机上的 pod 进入 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

    唯一的解决方法是重新配置主机网络,以便两个 IP 系列将同一个网络接口用于默认网关。