Skip to content

Further increase the default node-monitor-grace-period #127352

Description

@rtheis

What happened?

Continuing the investigation started by #121793, we found that a 50 second default node-monitor-grace-period may not be sufficient since it doesn't account for a delta time needed by Kubernetes components to reconnect, coordinate, and complete their requests. For example, the kubelet sets node-status-update-frequency to 10 seconds by default which may only give the kubelet 4 retry attempts instead of the 5 desired.

What did you expect to happen?

All nodes stay Ready during a 40 second disconnection/keepalive timeout between the Kubernetes API server (KAS) and etcd resulting in the KAS failing over to another etcd member.

How can we reproduce it (as minimally and precisely as possible)?

See #121793 and use a 41 second etcd defrag time to account for a delta amount of time while the Kubernetes components re-establish network connections. While difficult to reproduce outside this simulation, we have had clients report a few problems that appear to confirm this situation may occur.

Anything else we need to know?

No

Kubernetes version

Details Kubernetes version 1.29.8

Cloud provider

Details IBM Cloud

OS version

Details Ubuntu 20

Install tools

Details IBM Cloud Kubernetes Service

Container runtime (CRI) and version (if applicable)

Details containerd version 1.7.20

Related plugins (CNI, CSI, ...) and versions (if applicable)

Details Calico version 3.27.4

Metadata

Metadata

Labels

kind/featureCategorizes issue or PR as related to a new feature.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.sig/nodeCategorizes an issue or PR as relevant to SIG Node.triage/needs-informationIndicates an issue needs more information in order to work on it.

Type

No type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions