diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index ccc924efd78..2ee946a178b 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -872,7 +872,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewNoNewPrivsAdmitHandler(klet.containerRuntime)) if utilfeature.DefaultFeatureGate.Enabled(features.NodeLease) { - klet.nodeLeaseController = nodelease.NewController(klet.clock, klet.heartbeatClient, string(klet.nodeName), kubeCfg.NodeLeaseDurationSeconds, kubeCfg.NodeStatusUpdateFrequency.Duration, klet.onRepeatedHeartbeatFailure) + klet.nodeLeaseController = nodelease.NewController(klet.clock, klet.heartbeatClient, string(klet.nodeName), kubeCfg.NodeLeaseDurationSeconds, klet.onRepeatedHeartbeatFailure) } klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewProcMountAdmitHandler(klet.containerRuntime)) diff --git a/pkg/kubelet/nodelease/controller.go b/pkg/kubelet/nodelease/controller.go index 58df5aeba66..2ac6bfcf92b 100644 --- a/pkg/kubelet/nodelease/controller.go +++ b/pkg/kubelet/nodelease/controller.go @@ -34,8 +34,8 @@ import ( ) const ( - // defaultRenewInterval is the default interval at which the lease is renewed - defaultRenewInterval = 10 * time.Second + // renewIntervalFraction is the fraction of lease duration to renew the lease + renewIntervalFraction = 0.25 // maxUpdateRetries is the number of immediate, successive retries the Kubelet will attempt // when renewing the lease before it waits for the renewal interval before trying again, // similar to what we do for node status retries @@ -60,27 +60,18 @@ type controller struct { } // NewController constructs and returns a controller -func NewController(clock clock.Clock, client clientset.Interface, holderIdentity string, leaseDurationSeconds int32, nodeStatusUpdateFrequency time.Duration, onRepeatedHeartbeatFailure func()) Controller { +func NewController(clock clock.Clock, client clientset.Interface, holderIdentity string, leaseDurationSeconds int32, onRepeatedHeartbeatFailure func()) Controller { var leaseClient coordclientset.LeaseInterface if client != nil { leaseClient = client.CoordinationV1().Leases(corev1.NamespaceNodeLease) } - renewInterval := defaultRenewInterval - // Users are able to decrease the timeout after which nodes are being - // marked as "Ready: Unknown" by NodeLifecycleController to values - // smaller than defaultRenewInterval. Until the knob to configure - // lease renew interval is exposed to user, we temporarily decrease - // renewInterval based on the NodeStatusUpdateFrequency. - if renewInterval > nodeStatusUpdateFrequency { - renewInterval = nodeStatusUpdateFrequency - } - + leaseDuration := time.Duration(leaseDurationSeconds) * time.Second return &controller{ client: client, leaseClient: leaseClient, holderIdentity: holderIdentity, leaseDurationSeconds: leaseDurationSeconds, - renewInterval: renewInterval, + renewInterval: time.Duration(float64(leaseDuration) * renewIntervalFraction), clock: clock, onRepeatedHeartbeatFailure: onRepeatedHeartbeatFailure, }