@@ -200,10 +200,10 @@ func (qc *QingCloud) EnsureLoadBalancer(ctx context.Context, _ string, service *
200200 }
201201
202202 // filter nodes by service externalTrafficPolicy
203- nodes , err = qc .filterNodes (ctx , service , nodes , conf )
204- if err != nil {
205- klog .Errorf ("filterNodes for service %s with externalTrafficPolicy %s error: %v" , service .Name , service .Spec .ExternalTrafficPolicy , err )
206- return nil , err
203+ nodes , e : = qc .filterNodes (ctx , service , nodes , conf )
204+ if e != nil {
205+ klog .Errorf ("filterNodes for service %s/%s with externalTrafficPolicy %s error: %v" , service .Namespace , service . Name , service .Spec .ExternalTrafficPolicy , e )
206+ return nil , e
207207 }
208208
209209 //1. ensure & update lb
@@ -262,7 +262,7 @@ func (qc *QingCloud) EnsureLoadBalancer(ctx context.Context, _ string, service *
262262 toDelete , toAdd := diffBackend (listener , nodes )
263263
264264 if len (toDelete ) > 0 {
265- klog .Infof ("backend %s will be deleted for listener %s(%s) of lb %s" ,
265+ klog .Infof ("backends %s will be deleted for listener %s(%s) of lb %s" ,
266266 spew .Sdump (toDelete ), * listener .Spec .LoadBalancerListenerName , * listener .Spec .LoadBalancerListenerID , * lb .Status .LoadBalancerID )
267267 err = qc .Client .DeleteBackends (toDelete )
268268 if err != nil {
@@ -273,7 +273,7 @@ func (qc *QingCloud) EnsureLoadBalancer(ctx context.Context, _ string, service *
273273
274274 toAddBackends := generateLoadBalancerBackends (toAdd , listener , service .Spec .Ports )
275275 if len (toAddBackends ) > 0 {
276- klog .Infof ("backend %s will be added for listener %s(%s) of lb %s" ,
276+ klog .Infof ("backends %s will be added for listener %s(%s) of lb %s" ,
277277 spew .Sdump (toAddBackends ), * listener .Spec .LoadBalancerListenerName , * listener .Spec .LoadBalancerListenerID , * lb .Status .LoadBalancerID )
278278 _ , err = qc .Client .CreateBackends (toAddBackends )
279279 if err != nil {
@@ -414,7 +414,7 @@ func (qc *QingCloud) UpdateLoadBalancer(ctx context.Context, _ string, service *
414414 toDelete , toAdd := diffBackend (listener , nodes )
415415
416416 if len (toDelete ) > 0 {
417- klog .Infof ("backend %s will be deleted for listener %s(%s) of lb %s" ,
417+ klog .Infof ("backends %s will be deleted for listener %s(%s) of lb %s" ,
418418 spew .Sdump (toDelete ), * listener .Spec .LoadBalancerListenerName , * listener .Spec .LoadBalancerListenerID , * lb .Status .LoadBalancerID )
419419 err = qc .Client .DeleteBackends (toDelete )
420420 if err != nil {
@@ -425,7 +425,7 @@ func (qc *QingCloud) UpdateLoadBalancer(ctx context.Context, _ string, service *
425425
426426 toAddBackends := generateLoadBalancerBackends (toAdd , listener , service .Spec .Ports )
427427 if len (toAddBackends ) > 0 {
428- klog .Infof ("backend %s will be added for listener %s(%s) of lb %s" ,
428+ klog .Infof ("backends %s will be added for listener %s(%s) of lb %s" ,
429429 spew .Sdump (toAddBackends ), * listener .Spec .LoadBalancerListenerName , * listener .Spec .LoadBalancerListenerID , * lb .Status .LoadBalancerID )
430430 _ , err = qc .Client .CreateBackends (toAddBackends )
431431 if err != nil {
@@ -567,6 +567,11 @@ func (qc *QingCloud) filterNodes(ctx context.Context, svc *v1.Service, nodes []*
567567 newNodes = append (newNodes , nodes [i ])
568568 }
569569 }
570+ // if there are no available nodes , use all nodes
571+ if len (newNodes ) == 0 {
572+ klog .Infof ("there are no available nodes for service %s/%s, use all nodes!" , svc .Namespace , svc .Name )
573+ newNodes = nodes
574+ }
570575 } else {
571576 // no need to filter
572577 newNodes = nodes
0 commit comments