From 93952fb39ebb7a479ae82c0dd874e93c2097d774 Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Thu, 28 Dec 2017 11:47:27 +0800 Subject: [PATCH] create ipvs clusterIP rules in onlyNodeLocalEndpoints mode --- pkg/proxy/ipvs/proxier.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/proxy/ipvs/proxier.go b/pkg/proxy/ipvs/proxier.go index 9f0def1e1d..621d7a96f2 100644 --- a/pkg/proxy/ipvs/proxier.go +++ b/pkg/proxy/ipvs/proxier.go @@ -1158,7 +1158,9 @@ func (proxier *Proxier) syncProxyRules() { // We need to bind ClusterIP to dummy interface, so set `bindAddr` parameter to `true` in syncService() if err := proxier.syncService(svcNameString, serv, true); err == nil { activeIPVSServices[serv.String()] = true - if err := proxier.syncEndpoint(svcName, svcInfo.onlyNodeLocalEndpoints, serv); err != nil { + // ExternalTrafficPolicy only works for NodePort and external LB traffic, does not affect ClusterIP + // So we still need clusterIP rules in onlyNodeLocalEndpoints mode. + if err := proxier.syncEndpoint(svcName, false, serv); err != nil { glog.Errorf("Failed to sync endpoint for service: %v, err: %v", serv, err) } } else {