From 3c6744574682b515841cd4580ba56402927ce5d4 Mon Sep 17 00:00:00 2001 From: "allenfromchina@163.com" Date: Mon, 22 Apr 2024 10:43:31 +0800 Subject: [PATCH 1/2] fix nodeNotReady once after kubelet restart: execute updateRuntimeUp before syncNodeStatus --- pkg/kubelet/kubelet.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index af74a095628..8cff0780bcb 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -1636,9 +1636,14 @@ func (kl *Kubelet) Run(updates <-chan kubetypes.PodUpdate) { // Introduce some small jittering to ensure that over time the requests won't start // accumulating at approximately the same time from the set of nodes due to priority and // fairness effect. - go wait.JitterUntil(kl.syncNodeStatus, kl.nodeStatusUpdateFrequency, 0.04, true, wait.NeverStop) + go func() { + kl.updateRuntimeUp() + wait.JitterUntil(kl.syncNodeStatus, kl.nodeStatusUpdateFrequency, 0.04, true, wait.NeverStop) + }() + go kl.fastStatusUpdateOnce() + // start syncing lease go kl.nodeLeaseController.Run(context.Background()) } From 4bfc7318378b965a94a0fea708df0761c17c1552 Mon Sep 17 00:00:00 2001 From: "allenfromchina@163.com" Date: Tue, 23 Apr 2024 10:45:46 +0800 Subject: [PATCH 2/2] add log --- pkg/kubelet/kubelet.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 8cff0780bcb..761a040a0ce 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -1637,13 +1637,14 @@ func (kl *Kubelet) Run(updates <-chan kubetypes.PodUpdate) { // accumulating at approximately the same time from the set of nodes due to priority and // fairness effect. go func() { + // Call updateRuntimeUp once before syncNodeStatus to make sure kubelet had already checked runtime state + // otherwise when restart kubelet, syncNodeStatus will report node notReady in first report period kl.updateRuntimeUp() wait.JitterUntil(kl.syncNodeStatus, kl.nodeStatusUpdateFrequency, 0.04, true, wait.NeverStop) }() go kl.fastStatusUpdateOnce() - // start syncing lease go kl.nodeLeaseController.Run(context.Background()) }