第 11 章 配置出口服务
作为集群管理员,您可以使用 egress 服务为负载均衡器服务后面的 pod 配置出口流量。
出口服务只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
您可以使用以下方法使用 EgressService
自定义资源(CR)管理出口流量:
将负载均衡器服务 IP 地址分配为负载均衡器服务后面的 pod 的源 IP 地址。
将负载均衡器 IP 地址分配在这个上下文中的源 IP 地址对于显示单个出口和入口点很有用。例如,在某些情况下,与负载均衡器服务后面的应用程序通信的外部系统可能会预期应用程序的源和目标 IP 地址相同。
注意当您将负载均衡器服务 IP 地址分配给服务后面的 pod 的出口流量时,OVN-Kubernetes 会将入口和出口点限制为单一节点。这限制了 MetalLB 通常提供的流量的负载均衡。
将负载均衡器后面的 pod 的出口流量分配给与默认节点网络不同的网络。
这可用于将负载均衡器后面的应用程序的出口流量分配给与默认网络不同的网络。通常,不同的网络通过使用与网络接口关联的 VRF 实例来实施。
11.1. 出口服务自定义资源 复制链接链接已复制到粘贴板!
在 EgressService
自定义资源中定义出口服务的配置。以下 YAML 描述了配置出口服务的字段:
- 1
- 指定出口服务的名称。
EgressService
资源的名称必须与您要修改的负载均衡器服务的名称匹配。 - 2
- 指定出口服务的命名空间。
EgressService
的命名空间必须与您要修改的负载均衡器服务的命名空间匹配。egress 服务是命名空间范围的。 - 3
- 为服务后面的 pod 指定出口流量的源 IP 地址。有效值为
LoadBalancerIP
或Network
。使用LoadBalancerIP
值将LoadBalancer
服务入口 IP 地址分配为出口流量的源 IP 地址。指定Network
将网络接口 IP 地址分配为出口流量的源 IP 地址。 - 4
- 可选: 如果您将
LoadBalancerIP
值用于sourceIPBy
规格,则单一节点处理LoadBalancer
服务流量。使用nodeSelector
字段来限制哪些节点可以被分配。当选择节点来处理服务流量时,OVN-Kubernetes 以以下格式标记节点:egress-service.k8s.ovn.org/<svc-namespace>-<svc-name>: ""
。如果没有指定nodeSelector
字段,任何节点都可以管理LoadBalancer
服务流量。 - 5
- 可选:指定出口流量的路由表 ID。确保值与
NodeNetworkConfigurationPolicy
资源中定义的route-table-id
ID 匹配。如果没有network
规格,egress 服务将使用默认主机网络。
出口服务规格示例