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
What happened?
Continuing the investigation started by #121793, we found that a
50second defaultnode-monitor-grace-periodmay 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 setsnode-status-update-frequencyto10seconds 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
Readyduring 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.8Cloud provider
Details
IBM CloudOS version
Details
Ubuntu 20Install tools
Details
IBM Cloud Kubernetes ServiceContainer runtime (CRI) and version (if applicable)
Details
containerd version 1.7.20Related plugins (CNI, CSI, ...) and versions (if applicable)
Details
Calico version 3.27.4