![从 LVS 连接表中删除/丢弃跟踪的 UDP“连接”(`ipvsadm -Lc`)](https://linux22.com/image/793886/%E4%BB%8E%20LVS%20%E8%BF%9E%E6%8E%A5%E8%A1%A8%E4%B8%AD%E5%88%A0%E9%99%A4%2F%E4%B8%A2%E5%BC%83%E8%B7%9F%E8%B8%AA%E7%9A%84%20UDP%E2%80%9C%E8%BF%9E%E6%8E%A5%E2%80%9D%EF%BC%88%60ipvsadm%20-Lc%60%EF%BC%89.png)
是否可以从输出的 LVS 连接表中明确删除或丢弃跟踪的 UDP“连接” ipvsadm -Lc
?
我在 Docker Swarm 部署环境中使用 LVS,当我重新启动公开 UDP 服务器的给定容器时,Docker 似乎会从实际服务器池中删除以前的容器并添加新容器,但连接表中指向旧容器的任何条目都会保留,并且必须在数据包开始重新路由到新服务器之前超时。默认超时为 300 秒,这实际上会导致连接到已停止容器的所有客户端的服务中断 5 分钟。
一个数据包调度(--ops
)在理论上可能会有所帮助,但由于实现的协议不是完全无状态我希望来自同一套接字对的数据包在正常运行期间发送到同一真实服务器,但是一旦旧服务器从池中删除,就尽快重新路由到不同的真实服务器。
我似乎找不到任何方法来指示 LVS 删除或更改连接表中的任何特定条目。这不可能吗?
注意:这是一个后续问题容器重启后,Docker Swarm 路由网格不会转发 UDP 流量