kubernetes / cloud-provider-alibaba-cloud

CloudProvider for Alibaba Cloud
Apache License 2.0
360 stars 163 forks source link

更新slb的虚拟组时是否平滑 #335

Closed cobb-tx closed 1 year ago

cobb-tx commented 1 year ago

我看了一下中文的usage.md 里面提到

当Service对应的后端Endpoint发生变化的时候或者集群节点变化的时候都会自动的更新SLB的后端Server。

然后我就在想,pod 处于Terminating 状态时 ,Endpoint Controller 将该 Pod 的 ip 从 Endpoint 对象中删除。 监听Endpoint资源 到更新完slb 是需要时间的,但是这段时间pod已经不处理新的流量了。 是否会导致流量丢失而不够平滑呢? 是不是重试来解决这个问题的呢 排除加了健康检查和spec.ExternalTraffic = Cluster的情况

cobb-tx commented 1 year ago

测试了一下确实不是平滑的,中间会有断开的。

winewei commented 1 month ago

这种情况,其实在所有 LB 上面都存在(哪怕是公有云的 LB+k8s) ,这是TCP 链接释放及控制器更新IP信息的间隔有差距导致,可以增加 pod pre_stop 来延长 pod 被结束的时间,让pod有时间在处理完最长请求后再被控制器更新ip信息到 LB 负载组