Tencent Cloud TKE provides enhanced features based on native Kubernetes. The following sections describe these enhanced features.
kube-controller-manager Proactive node Detection
Feature Description
When kubelet cannot report heartbeats due to network failures or high apiserver load, kube-controller-manager (kcm) may incorrectly determine that a node is in a NotReady state and evict the node's pods.
This feature ensures a more reliable node health detection mechanism than solely relying on kubelet heartbeats, for scenarios where kubelet cannot access the apiserver, by leveraging kcm's active probing mechanism to determine node liveness.
How It Works?
In the node heartbeat reporting path kubelet -> vpcgw -> apiserver, a vpcgw failure causes kubelet heartbeat reporting to fail. This leads kube-controller-manager (kcm) to incorrectly determine the node as abnormal and trigger the eviction of pods on that node. This feature enhances the judgment logic within kcm. When node heartbeat loss occurs and the native Kubernetes logic determines the node is NotReady, kcm actively probes whether kubelet is still functioning. This mechanism imposes stricter criteria than the native node NotReady determination, preventing pods from being mistakenly deleted.
When a node loses its heartbeat but kcm's active probe succeeds, kcm adds a taint to the problematic node to prevent scheduling. The corresponding key and effect are key: node.kubernetes.io/no-apiserver-connect and effect: NoSchedule.