就这个单一场景来说,你的描述有些模糊的地方需要澄清:
1、服务因何“主动”,是指计划内的重启,还是意外崩溃?如果指前者,k8s的流程是,通过先在pod上修改状态,然后才会向下影响到容器,如果你所谓立即生效仅指作为一致性存储的zk/etcd感知到这个事情,那么都是立即生效。
2、如果所谓生效是指负载均衡器感知到,那么依赖于具体的负载均衡器策略,这恐怕不能算做zk或者etcd的差别,或者说类似的策略下,效果是几乎一样的。
3、如果是指重新调度,同样的,取决于你的调度器策略,zk本身恐怕没有调度能力,etcd也一样。k8s默认的调度器确实是基于轮询的,但更多是因为它要照顾到通用场景,而且可以通过调优来平衡调度的延迟和公平。也许你基于zk实现的调度方案对延迟更加重视,那么在k8s中你完全可以通过自定义调度器来实现类似的效果。
【 在 lushan5436 (密如) 的大作中提到: 】
: 你确信么?,我不清楚,k8s管理的是pod,不是服务本身,zk管理的是服务本身,如果服务主动退出,zk是立即生效。服务退出,pod退出,etcd监控到,怎么也谈不上快。而且etcd监控不知道是不是轮询,如果是更慢
--
FROM 221.220.225.*