@@ -117,7 +117,7 @@ ListWatch 的 `List()` 和 `Watch()` 方法是直接调用内部的 `ListFunc()`
117117
118118### 使用 ListWatch 的 Informer
119119
120- 后文会介绍,各资源类型都有自己特定的 Informer(codegen 工具会自动生成 ),如 [ DeploymentInformer] ( k8s.io/client-go/informers/extensions/v1beta1/deployment.go ) ,它们使用自己资源类型的 ClientSet 来初始化 ListWatch,所以只返回对应的资源类型。
120+ 后文会介绍,各资源类型都有自己特定的 Informer(codegen 工具自动生成 ),如 [ DeploymentInformer] ( k8s.io/client-go/informers/extensions/v1beta1/deployment.go ) ,它们使用自己资源类型的 ClientSet 来初始化 ListWatch,只返回对应类型的对象:
121121
122122``` go
123123// 来源于 k8s.io/client-go/informers/extensions/v1beta1/deployment.go
@@ -596,7 +596,8 @@ type InformerSynced func() bool
596596
597597### 自定义 Controller 使用 HasSynced() 方法的场景
598598
599- 在开发 K8S Controller 的时候,
599+ 在开发 K8S Controller 的时候,一个惯例是调用 cache.WaitForCacheSync,等待所有 Informer Cache 都同步后才启动消费 workqueue 的 worker:
600+ 600601``` go
601602// 来源于:https://github.com/kubernetes/sample-controller/blob/master/controller.go
602603
@@ -618,7 +619,7 @@ func NewController(
618619 kubeclientset: kubeclientset,
619620 sampleclientset: sampleclientset,
620621 deploymentsLister: deploymentInformer.Lister (),
621- deploymentsSynced: deploymentInformer.Informer ().HasSynced , // Infomer 的 HasSynced() 方法赋值
622+ deploymentsSynced: deploymentInformer.Informer ().HasSynced , // Infomer 的 HasSynced() 方法
622623 }
623624 ...
624625}
0 commit comments