内容提要
DigitalOcean的App Platform推出了专用出口功能,允许用户通过固定公共IP路由出站流量,提升安全性和可用性。该功能通过分配专用IP和配置网络路由实现。
延伸解读
专用出口如何提升安全性
在启用专用出口前,App Platform 应用的出站流量源 IP 是运行该应用的 Kubernetes 工作节点的公共 IP,该 IP 可能被多个应用共享。这给需要连接防火墙保护的外部资源的用户带来安全挑战,因为共享 IP 难以被精确加入白名单。专用出口为每个应用分配独立的固定公共 IP,使外部防火墙可以仅允许该 IP 的流量,从而提升安全性。
实现机制:网关 Droplet 与 NAT
专用出口通过创建隐藏的网关 Droplet 来实现。每个启用该功能的应用会配对 Droplet,其公共 IP 作为专用出口 IP 暴露给用户。出站数据包从容器到达 Kubernetes 工作节点后,根据路由配置被发送到网关 Droplet,再由 Droplet 通过 NAT 将源 IP 改为自己的公共 IP 后发往互联网。这一过程对用户透明,用户只需使用分配的固定 IP。
高可用设计:双网关冗余
由于应用出口依赖网关 Droplet 的可用性,单个网关故障可能导致应用失去互联网连接。为此,每个应用会创建两个 Droplet。当其中一个离线时,出口流量自动切换到健康的 Droplet,确保连接不中断。这种冗余设计也便于维护,例如在不造成出口停机的情况下为网关 Droplet 部署安全更新。因此,应用会拥有多个专用 IP。
Q&A
专用出口功能的主要作用是什么?
专用出口功能允许用户通过固定公共IP路由出站流量,从而提升安全性和可用性。
如何在App Platform上实现专用出口功能?
通过分配专用IP和配置网络路由来实现专用出口功能。
专用出口功能解决了哪些安全性问题?
它为每个应用分配独立的固定公共IP地址,解决了出站流量源IP地址的安全性问题。
App Platform是基于什么技术构建的?
App Platform运行在Kubernetes之上,Kubernetes负责调度和管理应用程序。
为什么需要创建两个Droplets来确保高可用性?
创建两个Droplets可以防止因一个网关Droplet离线而导致的连接中断,确保高可用性。
专用出口功能的技术挑战有哪些?
主要技术挑战包括分配公共IP地址和通过这些IP地址路由出站流量。