don't watch headless services on kubelet
The kubelet watches services only to generate the environment variables inside a pod, but headless services are not needed for this. Change-Id: I22ee2b3352f8fe71cddfafa6f09b768c0a0e26b4
This commit is contained in:
		@@ -451,7 +451,11 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
 | 
				
			|||||||
	var serviceLister corelisters.ServiceLister
 | 
						var serviceLister corelisters.ServiceLister
 | 
				
			||||||
	var serviceHasSynced cache.InformerSynced
 | 
						var serviceHasSynced cache.InformerSynced
 | 
				
			||||||
	if kubeDeps.KubeClient != nil {
 | 
						if kubeDeps.KubeClient != nil {
 | 
				
			||||||
		kubeInformers := informers.NewSharedInformerFactoryWithOptions(kubeDeps.KubeClient, 0)
 | 
							// don't watch headless services, they are not needed since this informer is only used to create the environment variables for pods.
 | 
				
			||||||
 | 
							// See https://issues.k8s.io/122394
 | 
				
			||||||
 | 
							kubeInformers := informers.NewSharedInformerFactoryWithOptions(kubeDeps.KubeClient, 0, informers.WithTweakListOptions(func(options *metav1.ListOptions) {
 | 
				
			||||||
 | 
								options.FieldSelector = fields.OneTermNotEqualSelector("spec.clusterIP", v1.ClusterIPNone).String()
 | 
				
			||||||
 | 
							}))
 | 
				
			||||||
		serviceLister = kubeInformers.Core().V1().Services().Lister()
 | 
							serviceLister = kubeInformers.Core().V1().Services().Lister()
 | 
				
			||||||
		serviceHasSynced = kubeInformers.Core().V1().Services().Informer().HasSynced
 | 
							serviceHasSynced = kubeInformers.Core().V1().Services().Informer().HasSynced
 | 
				
			||||||
		kubeInformers.Start(wait.NeverStop)
 | 
							kubeInformers.Start(wait.NeverStop)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user