一个转换网关后面的三个代理副本仍可能只暴露一个公共出口。容器的私有地址并不决定目标处可见的身份。

client → published service → proxy replica → egress/NAT → destination

分两部分看这张图。已发布的服务决定客户端如何到达某个副本。出口路由和 NAT 决定该副本后续连接的源地址。

Docker Swarm 的路由网格在已发布的服务端口上接收流量,并将其发送到活动任务。这支持入口分发和任务位置变更;它并不会为每个副本分配独立的公共出口。

如果需要不同的出口,请设计它们真实的路由和地址,例如单独路由的主机或指定的出口网关,然后统计观察到的对外身份。

替换副本也会替换其活动流

已建立的 CONNECT 隧道属于某一个代理进程。当另一个任务替换该进程时,它无法透明地重建目标的 TCP 和 TLS 状态。请规划重连,并在维护时排空长连接。

还要把客户端认证和目标策略传递到各个副本。负载均衡器端口检查成功,比一个被允许的客户端协商所需代理协议要窄。容量、出口身份和连接存活是需要分别评估的要求。

相关文章