proxy/iptables: don't sync proxy rules if services map didn't change
This commit is contained in:
parent
433f6830f8
commit
6aa784e6f2
@ -556,8 +556,6 @@ func (proxier *Proxier) OnServiceUpdate(allServices []api.Service) {
|
|||||||
proxier.haveReceivedServiceUpdate = true
|
proxier.haveReceivedServiceUpdate = true
|
||||||
|
|
||||||
newServiceMap, hcAdd, hcDel, staleUDPServices := buildServiceMap(allServices, proxier.serviceMap)
|
newServiceMap, hcAdd, hcDel, staleUDPServices := buildServiceMap(allServices, proxier.serviceMap)
|
||||||
proxier.serviceMap = newServiceMap
|
|
||||||
|
|
||||||
for _, hc := range hcAdd {
|
for _, hc := range hcAdd {
|
||||||
glog.V(4).Infof("Adding health check for %+v, port %v", hc.namespace, hc.nodeport)
|
glog.V(4).Infof("Adding health check for %+v, port %v", hc.namespace, hc.nodeport)
|
||||||
// Turn on healthcheck responder to listen on the health check nodePort
|
// Turn on healthcheck responder to listen on the health check nodePort
|
||||||
@ -572,7 +570,13 @@ func (proxier *Proxier) OnServiceUpdate(allServices []api.Service) {
|
|||||||
healthcheck.DeleteServiceListener(hc.namespace, hc.nodeport)
|
healthcheck.DeleteServiceListener(hc.namespace, hc.nodeport)
|
||||||
}
|
}
|
||||||
|
|
||||||
proxier.syncProxyRules()
|
if len(newServiceMap) != len(proxier.serviceMap) || !reflect.DeepEqual(newServiceMap, proxier.serviceMap) {
|
||||||
|
proxier.serviceMap = newServiceMap
|
||||||
|
proxier.syncProxyRules()
|
||||||
|
} else {
|
||||||
|
glog.V(4).Infof("Skipping proxy iptables rule sync on service update because nothing changed")
|
||||||
|
}
|
||||||
|
|
||||||
proxier.deleteServiceConnections(staleUDPServices.List())
|
proxier.deleteServiceConnections(staleUDPServices.List())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user