diff --git a/pkg/controller/service/servicecontroller.go b/pkg/controller/service/servicecontroller.go
index <HASH>..<HASH> 100644
--- a/pkg/controller/service/servicecontroller.go
+++ b/pkg/controller/service/servicecontroller.go
@@ -498,6 +498,11 @@ func (s *ServiceController) needsUpdate(oldService *api.Service, newService *api
 	if !reflect.DeepEqual(oldService.Annotations, newService.Annotations) {
 		return true
 	}
+	if oldService.UID != newService.UID {
+		s.eventRecorder.Eventf(newService, api.EventTypeNormal, "UID", "%v -> %v",
+			oldService.UID, newService.UID)
+		return true
+	}
 
 	return false
 }
A load balancer should be updated if a service's UID has changed.

The load balancer's name is determined by the service's UID. If the
service's UID has changed (presumably due to a delete and recreate),
then we need to recreate the load balancer as well to avoid eventually
leaking the old one.