-
Notifications
You must be signed in to change notification settings - Fork 452
出网网关设置
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