在informer中:

  1. 先创建一个indexer : NewIndexer
  2. 再创建DeltaFIFO: NewDeltaFIFO(MetaNamespaceKeyFunc, s.indexer)。indexer同时作为DeltaFIFO的knownObjects属性,用于:在调用Replace、Delete的时候,确认是否已经被删除了;Resync的时候,根据knownObjects来做Resync。

DeltaFIFO 既作为 controller的queue,也作为controller/reflector的store

reflector

—> store.Add
——> queueActionLocked 写入队列

controller

从队列中获取,调用 informer的HandleDeltas方法,更新indexer

image.png