Log event when removing unregistered node

This commit is contained in:
Maciej Pytel 2017-09-22 17:47:54 +02:00
parent 32c4a7ba5c
commit 098ebbee09
3 changed files with 7 additions and 4 deletions

View File

@ -147,7 +147,7 @@ func (a *StaticAutoscaler) RunOnce(currentTime time.Time) errors.AutoscalerError
unregisteredNodes := a.ClusterStateRegistry.GetUnregisteredNodes()
if len(unregisteredNodes) > 0 {
glog.V(1).Infof("%d unregistered nodes present", len(unregisteredNodes))
removedAny, err := removeOldUnregisteredNodes(unregisteredNodes, autoscalingContext, currentTime)
removedAny, err := removeOldUnregisteredNodes(unregisteredNodes, autoscalingContext, currentTime, autoscalingContext.LogRecorder)
// There was a problem with removing unregistered nodes. Retry in the next loop.
if err != nil {
if removedAny {

View File

@ -25,6 +25,7 @@ import (
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
"k8s.io/autoscaler/cluster-autoscaler/clusterstate"
"k8s.io/autoscaler/cluster-autoscaler/clusterstate/utils"
"k8s.io/autoscaler/cluster-autoscaler/metrics"
"k8s.io/autoscaler/cluster-autoscaler/simulator"
"k8s.io/autoscaler/cluster-autoscaler/utils/daemonset"
@ -313,7 +314,7 @@ func sanitizeTemplateNode(node *apiv1.Node, nodeGroup string) (*apiv1.Node, erro
// Removes unregistered nodes if needed. Returns true if anything was removed and error if such occurred.
func removeOldUnregisteredNodes(unregisteredNodes []clusterstate.UnregisteredNode, context *AutoscalingContext,
currentTime time.Time) (bool, error) {
currentTime time.Time, logRecorder *utils.LogEventRecorder) (bool, error) {
removedAny := false
for _, unregisteredNode := range unregisteredNodes {
if unregisteredNode.UnregisteredSince.Add(context.UnregisteredNodeRemovalTime).Before(currentTime) {
@ -327,6 +328,8 @@ func removeOldUnregisteredNodes(unregisteredNodes []clusterstate.UnregisteredNod
glog.Warningf("No node group for node %s, skipping", unregisteredNode.Node.Name)
continue
}
logRecorder.Eventf(apiv1.EventTypeNormal, "DeleteUnregistered",
"Removing unregistered node %v", unregisteredNode.Node.Name)
err = nodeGroup.DeleteNodes([]*apiv1.Node{unregisteredNode.Node})
if err != nil {
glog.Warningf("Failed to remove node %s: %v", unregisteredNode.Node.Name, err)

View File

@ -273,12 +273,12 @@ func TestRemoveOldUnregisteredNodes(t *testing.T) {
assert.Equal(t, 1, len(unregisteredNodes))
// Nothing should be removed. The unregistered node is not old enough.
removed, err := removeOldUnregisteredNodes(unregisteredNodes, context, now.Add(-50*time.Minute))
removed, err := removeOldUnregisteredNodes(unregisteredNodes, context, now.Add(-50*time.Minute), fakeLogRecorder)
assert.NoError(t, err)
assert.False(t, removed)
// ng1_2 should be removed.
removed, err = removeOldUnregisteredNodes(unregisteredNodes, context, now)
removed, err = removeOldUnregisteredNodes(unregisteredNodes, context, now, fakeLogRecorder)
assert.NoError(t, err)
assert.True(t, removed)
deletedNode := getStringFromChan(deletedNodes)