fighterhit
fighterhit
1. 以前以为resync指的是定时从etcd拉最新的以防出错,看来我理解错了。从上面的讨论还有一些资料来看,实际是informer启动时只会从etcd list一次全量数据,后面缓存全部都只走watch来更新,resync其实也只是将本地缓存的数据再构造成事件再次同步到队列一次,这样理解对吗? 2. 疑问:因为watch是长连接,如果网络发生波动连接断了呢,本地缓存因为网络断了那段事件肯定就丢失了一部分事件导致etcd和本地数据不一致,这种情况下如果网络稳定下来或者在网络波动间隙,定时从etcd拉取的方案还能继续保持本地缓存和etcd一致,为什么不这样做呢?
> > 1. 以前以为resync指的是定时从etcd拉最新的以防出错,看来我理解错了。从上面的讨论还有一些资料来看,实际是informer启动时只会从etcd list一次全量数据,后面缓存全部都只走watch来更新,resync其实也只是将本地缓存的数据再构造成事件再次同步到队列一次,这样理解对吗? > > 2. 疑问:因为watch是长连接,如果网络发生波动连接断了呢,本地缓存因为网络断了那段事件肯定就丢失了一部分事件导致etcd和本地数据不一致,这种情况下如果网络稳定下来或者在网络波动间隙,定时从etcd拉取的方案还能继续保持本地缓存和etcd一致,为什么不这样做呢? > > 1. 对的 > 2. informer能保证通过list+watch不会丢失事件,如果网络抖动重新恢复后,watch会带着之前的resourceVersion号重连,resourceVersion是单调递增的,apiserver收到该请求后会将所有大于该resourceVersion的变更同步过来。 另外好像网络长期中断的话会导致informer重新初始化也就会重新list。 @gaorong 感谢解惑。对第2点的回答还有两个疑问: > 如果网络抖动重新恢复后,watch会带着之前的resourceVersion号重连 从这句话字面上我理解的意思是说:如果网络只是短暂波动的话,watch 长连接会存在某种重试机制吗?那么这种重试机制是informer 自身实现的吗?或者还是借助http自身就有的某种机制? > 另外好像网络长期中断的话会导致informer重新初始化也就会重新list 这句话指的是对于informer来说,整体也存在重试机制?也就是再重新执行一开始的list+watch的完整过程:先执行一次list,后面都还走watch跟原来一样,跟重启了一样吗?
> > 传递给`oldObj`是从`indexer`取到的 > > 传递给`newObj`是从`deltaFIFO`pop出来的 > > 所以不是同一个 > > 注意,是 Resync 机制触发的回调,不是通过 Watch apiserver 的 update 事件触发的回调。Resync 机制会将 Indexer 本地缓存重新同步到 Delta FIFO 队列中,如果此时队列存在该对象的 key,则忽略不入队,最后才去触发 update 的回调。 所以如果队列里不存在该对象的 `key`...
k8s调度器有没有对外的接口或者api呢?比如我想把一个pod提前跑一下那些过滤算法大概了解下会不会有节点可以被调度
那现在推荐哪种呢?
> on schedule could we support RabbitMQ?
> https://www.usenix.org/conference/osdi20/presentation/xiao 在框架层面也是可以做一些工作的 嗯,但这种方式对用户不太友好
看 [字节 GTC 2022](https://www.nvidia.com/gtc/session-catalog/?search=Maximizing%20GPU%20Utilza&tab.catalogallsessionstab=16566177511100015Kus#/session/1657041497952001Pamw) 介绍用了 vcuda+MPS,[百度](https://mp.weixin.qq.com/s/oyHGMcua_CRPfo1f5hvB0g)也在 MPS 上做了挺多,看起来如果能解决 MPS 故障隔离问题性能应该比其它时分复用好点
> Hi @jayavanth , > > Thanks for your question. No we are not planning any GPU support in Firecracker at the moment. Once we will consider again this task...
> 我看了client-go 1.26版本代码,代码如下(tools/cache/Reflector.go/Run): > > ```go > // Run repeatedly uses the reflector's ListAndWatch to fetch all the > // objects and subsequent deltas. > // Run will exit when...