我正在尝试理解Kubernetes中的Node-Controller。 Kubernetes 文档 提到使用 NodeStatus 和 LeaseObject 更新来执行节点心跳。 请有人解释一下为什么需要同时使用这两种机制来监视节点的健康状况。 Kubernetes 的主控节点是否在内部使用作业/定时作业来处理节点健康检查?
我正在尝试理解Kubernetes中的Node-Controller。 Kubernetes 文档 提到使用 NodeStatus 和 LeaseObject 更新来执行节点心跳。 请有人解释一下为什么需要同时使用这两种机制来监视节点的健康状况。 Kubernetes 的主控节点是否在内部使用作业/定时作业来处理节点健康检查?
Lease 是一种轻量级资源,可以提高节点心跳在集群扩展时的性能。
租约对象被跟踪作为一种帮助心跳在集群扩展时继续有效工作的方式。根据文档,这将是它们与心跳相关的主要功能。
而NodeStatus
则用于kubelet的心跳,NodeStatus
也是k8s中其他控制器的重要信号。
例如:k8s调度程序负责在节点上安排pod。它会尝试找到最适合节点的位置,以优化节点上的内存、CPU和其他使用情况。然而,它不希望在节点状态条件设置为NetworkUnavailable:true
或其他使该pod无法在该节点上运行的条件下在节点上安排pod。
在实施k8s时,您可能不需要了解这个级别的细节。所有对您有用的详细信息已经在链接的公共文档中了。不需要担心,但我明白它带来了更实际的问题:
- 我不确定一个大集群会产生多少负载。
这就是大型集群考虑因素发挥作用的地方。它将向您展示如何处理大型集群以及在管理它们时可以使用哪些工具。