6.7. 配置网关模式
作为集群管理员,您可以配置 gatewayConfig
对象来管理外部流量离开集群的方式。为此,对于本地模式将 routingViaHost
spec 设置为 true
,对于共享模式将 false
设置为 false。
在本地网关模式中,流量通过主机路由,因此应用于主机的路由表。在共享网关模式中,流量不会通过主机路由。相反,Open vSwitch (OVS) 流量直接将流量输出到节点 IP 接口。
6.7.1. 设置本地和共享网关模式 复制链接链接已复制到粘贴板!
作为集群管理员,您可以使用 Cluster Network Operator 中的 gatewayConfig
spec 配置网关模式。以下流程可用于将本地模式的 routingViaHost
字段设置为 true
,对于共享模式,使用 false
。
如果需要主机网络作为与 OVN-Kubernetes 相关的流量的路由器,按照可选步骤 4 启用 IP 转发和本地网关模式。例如,将本地网关模式与 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 运行以下命令验证本地网关模式是否已设置:
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
会设置本地网关模式,值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