第 7 章 配置网关
作为集群管理员,您可以配置 gatewayConfig
对象来管理外部流量离开集群的方式。为此,您可以将 routingViaHost
参数设置为以下值之一:
-
true
表示出口流量通过托管 pod 的节点上的特定本地网关路由。通过主机的出口流量路由,此流量适用于主机的路由表。 -
false
表示出口流量通过专用节点路由,但一组节点共享同一网关。出口流量不会通过主机路由。Open vSwitch (OVS)将流量直接输出到节点 IP 接口。
7.1. 配置出口路由策略 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 Cluster Network Operator (CNO)中的 gatewayConfig
规格配置出口路由策略。您可以使用以下步骤将 routingViaHost
字段设置为 true
或 false
。
如果需要节点的主机网络充当与 OVN-Kubernetes 不相关的流量的路由器,按照流程中的可选步骤启用 IP 转发和 routingViaHost=true
配置。例如,将本地网关与 IP 转发相结合的可能用例包括:
- 配置通过节点的 IP 转发所有 pod 出口流量
- 将 OVN-Kubernetes CNI 与外部网络地址转换(NAT)设备集成
- 将 OVN-Kubernetes CNI 配置为使用内核路由表
先决条件
- 您以具有 admin 权限的用户身份登录。
流程
运行以下命令备份现有网络配置:
oc get network.operator cluster -o yaml > network-config-backup.yaml
$ oc get network.operator cluster -o yaml > network-config-backup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令,将
routingViaHost
参数设置为true
。然后,出口流量会根据您在节点上配置的路由通过特定的网关进行路由。oc patch networks.operator.openshift.io cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"routingViaHost": true}}}}}'
$ oc patch networks.operator.openshift.io cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"routingViaHost": true}}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证
routingViaHost=true
配置的正确应用程序:oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"
$ oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 值为
true
表示出口流量通过托管 pod 的节点上的特定本地网关路由。参数的false
值表示一组节点共享单个网关,因此流量不会通过单个主机路由。
可选:运行以下命令来全局启用 IP 转发:
oc patch network.operator cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}'
$ oc patch network.operator cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证
ipForwarding
spec 是否已设置为Global
:oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"
$ oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow