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:
Kubernetes Prow Robot 2019-07-29 02:29:56 -07:00 committed by GitHub
commit f18833ee58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 15 deletions

View File

@ -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))

View File

@ -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,
}