Skip to content

出网网关设置

oilbeater edited this page Jun 27, 2022 · 5 revisions

Wiki 下的中文文档将不在维护,请访问我们最新的中文文档网站,获取最新的文档更新。

Kube-OVN 网络中的 Pod 通过网关来访问集群外的网络,Kube-OVN 目前支持两种类型的网关:分布式网关和集中式网关,用户可以在子网中对网关的类型进行调整。

分布式网关

子网的默认类型网关,每个 node 会作为当前 node 上 pod 访问外部网络的网关。数据包会通过本机的 ovn0 网卡流入主机网络栈,再根据主机的路由规则进行出网。当 natOutgoing 为 true 时,Pod 访问外部网络将会使用当前所在宿主机的 IP。

子网示例,其中gatewayType 字段为 distributed:

apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
  name: distributed
spec:
  cidrBlock: 10.166.0.0/16
  default: false
  excludeIps:
  - 10.166.0.1
  gateway: 10.166.0.1
  gatewayType: distributed
  natOutgoing: true

集中式网关

如果希望子网内流量访问外网使用固定的 IP,以便审计和白名单等安全操作,可以在子网中设置集中式网关。在集中式网关模式下,Pod 访问外网的数据包会首先被路由到特定节点的 ovn0 网卡,再通过主机的路由规则进行出网。当 natOutgoing 为 true 时,Pod 访问外部网络将会使用特定宿主机的 IP。

子网示例,其中gatewayType 字段为 centralized,gatewayNode 为特定机器在 Kubernetes 中的 node name。其中gatewayNode字段可以为逗号分隔的多台主机。

在kube-ovn v1.6.3及之前的版本中,kube-ovn 会自动按照 active-backup 的模式选择状态为 ready 的节点进行故障切换;

从kube-ovn v1.7.0版本开始,kube-ovn支持ECMP等价路由,出网流量可以通过指定的多个网关节点进行转发。

apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
  name: centralized
spec:
  cidrBlock: 10.166.0.0/16
  default: false
  excludeIps:
  - 10.166.0.1
  gateway: 10.166.0.1
  gatewayType: centralized
  gatewayNode: "node1,node2"
  natOutgoing: true
Clone this wiki locally