mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Merge pull request #80429 from gaorong/expose-node-lease-renewal-frequency
kubelet: change node-lease-renew-interval to 0.25 of lease-renew-duration
This commit is contained in:
commit
f18833ee58
@ -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))
|
||||
|
@ -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,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user