"kube-node-lease" 命名空间有什么用?

What is the "kube-node-lease" namespace for?

我知道其他 Kubernetes 默认命名空间的用途,例如:kube-systemdefault & kube-public,但没有关于 kube-node-lease 的官方文档。

我发现的唯一 official explanation 是:

Heartbeats, sent by Kubernetes nodes, help determine the availability of a node. There are two forms of heartbeats: updates of NodeStatus and the Lease object. Each Node has an associated Lease object in the kube-node-lease namespace.

kubectl get all -n kube-node-lease 我根本得不到任何资源。 (k8s-版本: 1.15)

这里是 node-heartbeat.mdKubernetes 增强提案 针对此功能。从可扩展性和性能的角度来看,它使节点心跳的成本大大降低。

这在新创建的 API 组 coordination.k8s.io. 中引入了一个新的 Lease 内置 API 这使得它可以很容易地重复用于其他目的 3rd party device monitoring plugins 这就是为什么命名空间。

此功能在 k8s 1.17

中变得稳定

官方 Kubernetes docs 对 Namespaces 有了新的解释:

kube-node-lease This namespace holds Lease objects associated with each node. Node leases allow the kubelet to send heartbeats so that the control plane can detect node failure.