Change:
Is this a BUG REPORT or FEATURE REQUEST? (choose one): bug Kubernetes version (use ): master What happened:
could someone from or please help with triage? Thanks!
the event is related to the NodeAllocatable, please take a look.
Please run and paste in the result. "master" is not a Kubernetes version.
, I found this log when investigating ; so I using branch name 'master' :). I think it should be 1.6+.
Append node infos, it seems UID is also empty: E0306 07:26:10. 3385 ] Could not construct reference to: '&v1.Node{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"bootstrap-e2e-minion-group-sh51", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion :"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{sec:0, nsec:0, loc:(time.Location)(nil)}}, DeletionTimestamp:(v1.Time)( nil), DeletionGracePeriodSeconds:(int64)(nil), Labels:map[string]string{"":"n1-standard-2", "failure -":"us-central1-f", "failure-":"us-central1", "":" linux", "":"amd64", "":"true", "":"bootstrap-e2e-min ion-group-sh51", "agent-light-10":""}, Annotations:map[string]string{"":"true"} , OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:v1.NodeSpec{PodCIDR:"", ExternalID:" ", ProviderID:"gce://kubernetes-jkns-e2e-gce-serial/us-central1-f/bootstrap-e2e-minion-group-sh51", Unschedulable:false , Taints:[]v1.Taint(nil)}, Status:v1.NodeStatus{Capacity:v1.ResourceList{"cpu":resource.Quantity{i:resource.int64Amount{value:2000, s cale:-3}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}, "memory":resource.Quantity{i:resource.int64Amount{ value:, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"BinarySI"}, "pods":resource.Quantity{i:resour ce.int64Amount{value:110, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}}, Allocatable:v1.Resource List{"cpu":resource.Quantity{i:resource.int64Amount{value:2000, scale:-3}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format :"DecimalSI"}, "memory":resource.Quantity{i:resource.int64Amount{value:, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(n il)}, s:"", Format:"BinarySI"}, "pods":resource.Quantity{i:resource.int64Amount{value:110, scale:0}, d:resource.infDecAmount{Dec:(in f.Dec)(nil)}, s:"", Format:"DecimalSI"}}, Phase:"", Conditions:[]v1.NodeCondition{v1.NodeCondition{Type:"NetworkUnavailable", Status: "True", LastHeartbeatTime:v1.Time{Time:time.Time{sec:0, nsec:0, loc:(time.Location)(nil)}}, LastTransitionTime:v1.Time{Time:time.Tim e{sec:, nsec:, loc:(time.Location)(0x4e91740)}}, Reason:"NoRouteCreated", Message:"Node created without a route" }, v1.NodeCondition{Type:"OutOfDisk", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(t ime.Location)(0x4e91740)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x4e91740)} }, Reason:"KubeletHasSufficientDisk", Message:"kubelet has sufficient disk space available"}, v1.NodeCondition{Type:"MemoryPressure", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x4e91740)}}, LastTrans itionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x4e91740)}}, Reason:"KubeletHasSufficientMemory ", Message:"kubelet has sufficient memory available"}, v1.NodeCondition{Type:"DiskPressure", Status:"False", LastHeartbeatTime:v1.Tim e{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x4e91740)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:6362 , nsec:, loc:(time.Location)(0x4e91740)}}, Reason:"KubeletHasNoDiskPressure", Message:"kubelet has no disk pressure"}, v1.NodeCondition{Type:"Ready", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Lo cation)(0x4e91740)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x4e91740)}}, Rea son:"KubeletNotReady", Message:"container runtime is down,PLEG is not healthy: pleg was last seen active 2562047h47m16.854775807s ago ; threshold is 3m0s,network state unknown"}}, Addresses:[]v1.NodeAddress{v1.NodeAddress{Type:"InternalIP", Address:"10.240.0.5"}, v1. NodeAddress{Type:"ExternalIP", Address:"146.148.66.23"}, v1.NodeAddress{Type:"Hostname", Address:"bootstrap-e2e-minion-group-sh51"}}, DaemonEndpoints:v1.NodeDaemonEndpoints{KubeletEndpoint:v1.DaemonEndpoint{Port:}}, NodeInfo:v1.NodeSystemInfo{MachineID:"", Syst emUUID:"0C3E9175-B5A0-F5AB-D1C8-D26CFE2E8639", BootID:"-1f50-4b42-a044-", KernelVersion:"3.16.0-4-amd64", OSImage :"Debian GNU/Linux 7 (wheezy)", ContainerRuntimeVersion:"docker://1.11.2", KubeletVersion:"v1.7.0-alpha.0.849+", KubePr oxyVersion:"v1.7.0-alpha.0.849+", OperatingSystem:"linux", Architecture:"amd64"}, Images:[]v1.ContainerImage{v1.Contain erImage{Names:[]string{""}, SizeBytes:}, v1.ContainerIma ge{Names:[]string{""}, SizeBytes:}}, VolumesInUse:[]v1.UniqueVolumeName(nil), VolumesAt tached:[]v1.AttachedVolume(nil)}}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Normal' 'NodeAllocatab leEnforced' 'Updated Node Allocatable limit across pods'
Here's the root cause: this event was triggered in , but the nodeInfo() was update in after in other go routine. So the SelfLink maybe not set. Created a PR for this, , any suggestion on the solution? I'm going to do more check on the impact.
Is this a release blocker for 1.6? Please decide by EOD
your approach to fix this is sound. Adding comments on your PR.
, this's NOT a release blocker to me, as the impact is low: the events maybe not updated because of race condition. , please help to double confirm.
Hello, I am observing the same error when I start . I noticed that this was marked as not a release blocker, but I am curious (I think this is what is happening on my cluster) if the following sequence of events is causal and valid? and fails to record the events listed in the error message (as reported in this issue). is not allocated a PodCIDR from . cannot configure networking (i.e. cluster does not work).
I just ran an experiment where (it seems to me) I confirmed this issue is preventing a cluster configured as in my scenario above from ever working. In my experiment I created a patched build of using the changes from committed on top of source code checked out at tag . After deploying a node that uses the patched , it successfully records the event (registers the Node), it is then assigned a PodCIDR, which then allows it to configure networking. I hope this info is useful.
, thanks very much for your verification. That maybe my miss on the usage of that event to make it . Anyway, I'll ping approver to get that PR merged; and dig why it impacts cluster configuration.
This bug isn't fixed now, right?
We are having same issue with version v1.6.2, do we know to which version the fix is merged? May 26 23:54:03 ar-master-k8-02 kubelet: E0526 23:54:03. ] Could not construct reference to: '&v1.Node{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"ar-master-k8-02", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{sec:0, nsec:0, loc:(time.Location)(nil)}}, DeletionTimestamp:(v1.Time)(nil), DeletionGracePeriodSeconds:(int64)(nil), Labels:map[string]string{"":"linux", "":"amd64", "":"ar-master-k8-02", "node-":"true"}, Annotations:map[string]string{"":"true"}, OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:v1.NodeSpec{PodCIDR:"", ExternalID:"ar-master-k8-02", ProviderID:"", Unschedulable:true, Taints:[]v1.Taint(nil)}, Status:v1.NodeStatus{Capacity:v1.ResourceList{"cpu":resource.Quantity{i:resource.int64Amount{value:1000, scale:-3}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}, "memory":resource.Quantity{i:resource.int64Amount{value:, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"BinarySI"}, "pods":resource.Quantity{i:resource.int64Amount{value:110, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}}, Allocatable:v1.ResourceList{"memory":resource.Quantity{i:resource.int64Amount{value:, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"BinarySI"}, "pods":resource.Quantity{i:resource.int64Amount{value:110, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}, "cpu":resource.Quantity{i:resource.int64Amount{value:900, scale:-3}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}}, Phase:"", Conditions:[]v1.NodeCondition{v1.NodeCondition{Type:"OutOfDisk", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f094 May 26 23:54:03 ar-master-k8-02 kubelet: 00)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f09400)}}, Reason:"KubeletHasSufficientDisk", Message:"kubelet has sufficient disk space available"}, v1.NodeCondition{Type:"MemoryPressure", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f09400)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f09400)}}, Reason:"KubeletHasSufficientMemory", Message:"kubelet has sufficient memory available"}, v1.NodeCondition{Type:"DiskPressure", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f09400)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f09400)}}, Reason:"KubeletHasNoDiskPressure", Message:"kubelet has no disk pressure"}, v1.NodeCondition{Type:"Ready", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f09400)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f09400)}}, Reason:"KubeletNotReady", Message:"container runtime is down,PLEG is not healthy: pleg was last seen active 2562047h47m16.854775807s ago; threshold is 3m0s,network state unknown"}}, Addresses:[]v1.NodeAddress{v1.NodeAddress{Type:"LegacyHostIP", Address:"10.169.237.29"}, v1.NodeAddress{Type:"InternalIP", Address:"10.169.237.29"}, v1.NodeAddress{Type:"Hostname", Address:"ar-master-k8-02"}}, DaemonEndpoints:v1.NodeDaemonEndpoints{KubeletEndpoint:v1.DaemonEndpoint{Port:}}, NodeInfo:v1.NodeSystemInfo{MachineID:"", SystemUUID:"420A7EB4-83C7-CAC2-B439-C16B08AA8892", BootID:"-c5c9-4b32-a5d3-", KernelVersion:"3.10.0-514.10.2.el7.x8664", OSImage:"CentOS Linux 7 (Core)", ContainerRuntimeVersion:"docker://1.13.1", KubeletVersion:"v1.6.2+coreos.0", KubeProxyVersion:"v1.6.2+coreos.0", OperatingSystem:"linu May 26 23:54:03 ar-master-k8-02 kubelet: x", Architecture:"amd64"}, Images:[]v1.ContainerImage(nil), VolumesInUse:[]v1.UniqueVolumeName(nil), VolumesAttached:[]v1.AttachedVolume(nil)}}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Warning' 'FailedNodeAllocatableEnforcement' 'Failed to update Node Allocatable Limits "": failed to set supported cgroup subsystems for cgroup : Failed to set config for supported subsystems : failed to write to memory.limitinbytes: write /var/lib/docker/devicemapper/mnt/3a87989b91ec0b34b965eb851af0e47036bb2037b71fc6a61132d17948283141/rootfs/sys/fs/cgroup/memory/memory.limitin_bytes: invalid argument'
same issue here for v1.6.6, is there any fix around? E0626 19:20:38. ] Could not construct reference to: '&v1.Node{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"hz01-matrix-docker-", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{sec:0, nsec:0, loc:(time.Location)(nil)}}, DeletionTimestamp:(v1.Time)(nil), DeletionGracePeriodSeconds:(int64)(nil), Labels:map[string]string{"":"amd64", "":"hz01-matrix-docker-", "":"linux"}, Annotations:map[string]string{"":"true"}, OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:v1.NodeSpec{PodCIDR:"", ExternalID:"hz01-matrix-docker-", ProviderID:"", Unschedulable:false, Taints:[]v1.Taint(nil)}, Status:v1.NodeStatus{Capacity:v1.ResourceList{"cpu":resource.Quantity{i:resource.int64Amount{value:, scale:-3}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}, "memory":resource.Quantity{i:resource.int64Amount{value:, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"BinarySI"}, "pods":resource.Quantity{i:resource.int64Amount{value:110, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}}, Allocatable:v1.ResourceList{"cpu":resource.Quantity{i:resource.int64Amount{value:, scale:-3}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}, "memory":resource.Quantity{i:resource.int64Amount{value:, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"BinarySI"}, "pods":resource.Quantity{i:resource.int64Amount{value:110, scale:0}, d:resource.infDecAmount{Dec:(inf.Dec)(nil)}, s:"", Format:"DecimalSI"}}, Phase:"", Conditions:[]v1.NodeCondition{v1.NodeCondition{Type:"OutOfDisk", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f2a4e0)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f2a4e0)}}, Reason:"KubeletHasSufficientDisk", Message:"kubelet has sufficient disk space available"}, v1.NodeCondition{Type:"MemoryPressure", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f2a4e0)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f2a4e0)}}, Reason:"KubeletHasSufficientMemory", Message:"kubelet has sufficient memory available"}, v1.NodeCondition{Type:"DiskPressure", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f2a4e0)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f2a4e0)}}, Reason:"KubeletHasNoDiskPressure", Message:"kubelet has no disk pressure"}, v1.NodeCondition{Type:"Ready", Status:"False", LastHeartbeatTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(time.Location)(0x6f2a4e0)}}, LastTransitionTime:v1.Time{Time:time.Time{sec:, nsec:, loc:(*time.Location)(0x6f2a4e0)}}, Reason:"KubeletNotReady", Message:"container runtime is down,PLEG is not healthy: pleg was last seen active 2562047h47m16.854775807s ago; threshold is 3m0s,network state unknown"}}, Addresses:[]v1.NodeAddress{v1.NodeAddress{Type:"LegacyHostIP", Address:"10.211.177.38"}, v1.NodeAddress{Type:"InternalIP", Address:"10.211.177.38"}, v1.NodeAddress{Type:"Hostname", Address:"hz01-matrix-docker-"}}, DaemonEndpoints:v1.NodeDaemonEndpoints{KubeletEndpoint:v1.DaemonEndpoint{Port:}}, NodeInfo:v1.NodeSystemInfo{MachineID:"", SystemUUID:"00BFB3FA-259C-E211-8B2B-40F2E91B7FE0", BootID:"-dfeb-43fc-9046-", KernelVersion:"3.10.03-0-0-1", OSImage:"Unknown", ContainerRuntimeVersion:"docker://1.10.2", KubeletVersion:"v1.6.6", KubeProxyVersion:"v1.6.6", OperatingSystem:"linux", Architecture:"amd64"}, Images:[]v1.ContainerImage{v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{"", ""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{"", "", ""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}, v1.ContainerImage{Names:[]string{""}, SizeBytes:}}, VolumesInUse:[]v1.UniqueVolumeName(nil), VolumesAttached:[]v1.AttachedVolume(nil)}}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Warning' 'FailedNodeAllocatableEnforcement' 'Failed to update Node Allocatable Limits "": failed to set supported cgroup subsystems for cgroup : Failed to set config for supported subsystems : failed to write to memory.limitinbytes: write /sys/fs/cgroup/memory/memory.limitinbytes: invalid argument'
, the fix was not included in 1.6; if necessary, we can backmerge it.
+1 for this. will this be backmerged?
ok, let me creat a backmerge pr for 1.6
Hi All, We're also experiencing this with 1.8.2 with docker 1.13 : any updates on why this is happening on 1.8 ?
To bump this, we're also experiencing this exact issue above ^ on a 3-node AKS cluster running k8s 1.8.7. Here's the output from : Is there any fixes for this?

Discussion:
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", <ins> "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", </ins> "//vendor/k8s.io/client-go/tools/record:go_default_library", ], )

"github.com/golang/glog" "k8s.io/apimachinery/pkg/api/resource" <ins> "k8s.io/apimachinery/pkg/types" clientv1 "k8s.io/client-go/pkg/api/v1" </ins> "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/kubelet/events" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api"

Name:               CgroupName(cm.cgroupRoot), ResourceParameters: getCgroupConfig(nodeAllocatable), } <ins> // Using ObjectReference for events as the node maybe not cached; refer to #42701 for detail. nodeRef := &clientv1.ObjectReference{ Kind:      "Node", Name:      cm.nodeInfo.Name, UID:       types.UID(cm.nodeInfo.Name), Namespace: "", } </ins> // If Node Allocatable is enforced on a node that has not been drained or is updated on an existing node to a lower value, // existing memory usage across pods might be higher that current Node Allocatable Memory Limits. // Pod Evictions are expected to bring down memory usage to below Node Allocatable limits.

for { err := cm.cgroupManager.Update(cgroupConfig) if err == nil { <del> cm.recorder.Event(cm.nodeInfo, v1.EventTypeNormal, events.SuccessfulNodeAllocatableEnforcement, "Updated Node Allocatable limit across pods") </del> <ins> cm.recorder.Event(nodeRef, v1.EventTypeNormal, events.SuccessfulNodeAllocatableEnforcement, "Updated Node Allocatable limit across pods") </ins> return } message := fmt.Sprintf("Failed to update Node Allocatable Limits %q: %v", cm.cgroupRoot, err) <del> cm.recorder.Event(cm.nodeInfo, v1.EventTypeWarning, events.FailedNodeAllocatableEnforcement, message) </del> <ins> cm.recorder.Event(nodeRef, v1.EventTypeWarning, events.FailedNodeAllocatableEnforcement, message) </ins> time.Sleep(time.Minute) } }()

glog.V(2).Infof("Enforcing System reserved on cgroup %q with limits: %+v", nc.SystemReservedCgroupName, nc.SystemReserved) if err := enforceExistingCgroup(cm.cgroupManager, nc.SystemReservedCgroupName, nc.SystemReserved); err != nil { message := fmt.Sprintf("Failed to enforce System Reserved Cgroup Limits on %q: %v", nc.SystemReservedCgroupName, err) <del> cm.recorder.Event(cm.nodeInfo, v1.EventTypeWarning, events.FailedNodeAllocatableEnforcement, message) </del> <ins> cm.recorder.Event(nodeRef, v1.EventTypeWarning, events.FailedNodeAllocatableEnforcement, message) </ins> return fmt.Errorf(message) } <del> cm.recorder.Eventf(cm.nodeInfo, v1.EventTypeNormal, events.SuccessfulNodeAllocatableEnforcement, "Updated limits on system reserved cgroup %v", nc.SystemReservedCgroupName) </del> <ins> cm.recorder.Eventf(nodeRef, v1.EventTypeNormal, events.SuccessfulNodeAllocatableEnforcement, "Updated limits on system reserved cgroup %v", nc.SystemReservedCgroupName) </ins> } if nc.EnforceNodeAllocatable.Has(KubeReservedEnforcementKey) { glog.V(2).Infof("Enforcing kube reserved on cgroup %q with limits: %+v", nc.KubeReservedCgroupName, nc.KubeReserved) if err := enforceExistingCgroup(cm.cgroupManager, nc.KubeReservedCgroupName, nc.KubeReserved); err != nil { message := fmt.Sprintf("Failed to enforce Kube Reserved Cgroup Limits on %q: %v", nc.KubeReservedCgroupName, err) <del> cm.recorder.Event(cm.nodeInfo, v1.EventTypeWarning, events.FailedNodeAllocatableEnforcement, message) </del> <ins> cm.recorder.Event(nodeRef, v1.EventTypeWarning, events.FailedNodeAllocatableEnforcement, message) </ins> return fmt.Errorf(message) } <del> cm.recorder.Eventf(cm.nodeInfo, v1.EventTypeNormal, events.SuccessfulNodeAllocatableEnforcement, "Updated limits on kube reserved cgroup %v", nc.KubeReservedCgroupName) </del> <ins> cm.recorder.Eventf(nodeRef, v1.EventTypeNormal, events.SuccessfulNodeAllocatableEnforcement, "Updated limits on kube reserved cgroup %v", nc.KubeReservedCgroupName) </ins> } return nil }

// -1: older than expected version // 0 : same version func (dm *DockerManager) checkDockerAPIVersion(expectedVersion string) (int, error) { value, err := dm.versionCache.Get(dm.machineInfo.MachineID) if err != nil { return 0, err

if kl.kubeClient == nil { glog.Warning("No api server defined - no node status update will be sent.") } if err := kl.initializeModules(); err != nil { kl.recorder.Eventf(kl.nodeRef, v1.EventTypeWarning, events.KubeletSetupFailed, err.Error()) glog.Error(err)