【发布时间】:2023-01-23 18:46:49
【问题描述】:
因为我想利用 AnyIP 并将整个 IPv6 前缀委托给一个套接字侦听器,所以我通过设置 hostNetwork: true 将此子网路由到一个 pod。
现在我希望它在更新服务时具有高可用性。 pod 套接字可以通过设置 SO_RESUSEPORT 并在杀死前一个进程之前启动一个新进程来实现高可用性。但是 kubernetes 不会允许这种情况发生,因为在使用 hostNetwork 时会自动检查主机 IP 和端口:
节点没有用于请求的 pod 端口的空闲端口
到目前为止,我发现的唯一解决方法是通过在每次推出时手动替换清单中的 hostIP 来欺骗 kubernetes。也许有更好的方法:
- 为此 pod 禁用主机 IP/端口检查
- 在不设置 hostNetwork 的情况下以某种方式将该子网路由到 pod 网络命名空间(我正在使用 Calico)
允许滚动更新此服务的最佳方法是什么?
【问题讨论】:
标签: kubernetes calico