2019
08-04
listVal.Set(reflect.Append(listVal, reflect.ValueOf(object).Elem()))
2019
08-04
storage是连接etcd的,也就是背后的裸存储
2019
08-04
组件向apiserver发起的watch请求是可以带条件的,例如,scheduler想要watch的是所有未被调度的Pod,也就是满足Pod.destNode=””的Pod来进行调度操作;而kubelet只关心自己节点上的Pod列表。apiserver向etcd发起的watch是没有条件的,只能知道某个数据发生了变化或创建、删除,但不能过滤具体的值。也就是说对象数据的条件过滤必须在apiserver端而不是etcd端完成。
2019
08-04
doc = "list " + subresource + " of objects of kind " + kind
2019
08-04
2019
08-04
这里的逻辑就比较清晰,首先从watchCache中拿到从某个resourceVersion以来的所有数据——initEvents,然后用这个数据创建了一个watcher返回出去为某个客户端提供服务。