背景
istio的ambient mesh下,流量路径经由节点级的ztunnel
如果ztunnel优雅更新处理不当会导致业务流量有损
原理
流程
新ztunnel启动设置SO_REUSEPORT
新ztunnel就绪后,开始停止旧ztunnel
旧ztunnel等待请求处理结束,期间新旧ztunnel都会会共存
旧ztunnel请求处理结束或者超时,停止
至此只有新ztunnel服务请求,更新结束
ztunnel启动时候会设置SO_REUSEPORT
linux socket的一个选项,控制tcp端口可以被多个进程绑定,开启后多个进程都会收到新连接
相关配置
默认5s
通过设置环境变量CONNECTION_TERMINATION_DEADLINE(优先)或者TERMINATION_GRACE_PERIOD_SECONDS调整