8.5. 控制出口流量
作为集群管理员,您可以在主机级别上为特定节点分配多个静态 IP 地址。如果应用开发人员需要其应用服务的专用 IP 地址,可以在他们用于询问防火墙访问的过程中请求一个 IP 地址。然后,他们可以从开发人员的项目部署出口路由器,在部署配置中使用 nodeSelector
来确保 pod 驻留在带有预分配的静态 IP 地址的主机上。
egress pod 的部署声明了其中一个源 IP、受保护服务的目标 IP,以及用于到达目的地的网关 IP。部署 pod 后,您可以创建一个服务来访问出口路由器 pod,然后将该源 IP 添加到公司防火墙中。然后,开发人员具有访问在其项目中创建的出口路由器服务的信息,如 service.project.cluster.domainname.com
。
当开发人员需要访问外部的防火墙化服务时,他们可以调用其应用(例如 JDBC 连接信息)中的出口路由器 pod服务(service.project.cluster.domainname.com
),而不是实际受保护的服务 URL。
您还可以为项目分配静态 IP 地址,确保来自指定项目的所有传出外部连接都具有可识别的来源。这与默认出口路由器不同,后者用于将流量发送到特定目的地。
如需更多信息,请参阅 为外部项目流量启用修复 IP 部分。
作为 OpenShift Container Platform 集群管理员,您可以使用以下方法控制出口流量:
- firewall
- 通过利用出口防火墙,您可以强制执行可接受的出站流量策略,以便特定端点或 IP 范围(子网)成为 OpenShift Container Platform 中可以与之通信的动态端点(pod)的唯一可接受目标。
- 路由器
- 通过使用出口路由器,您可以创建可识别的服务将流量发送到某些目的地,确保流量被视为来自已知来源的流量。这有助于提高安全性,因为它允许您保护外部数据库,以便只有命名空间中的特定 pod 可以与将流量代理到数据库的服务(出口路由器)进行通信。
- iptables
- 除了上述 OpenShift Container Platform 内部解决方案外,还可以创建应用于传出流量的 iptables 规则。这些规则允许比出口防火墙更多的可能性,但不能限制为特定的项目。