Kubernetes节点健康检查
我试图理解Kubernetes中的节点控制器。Kubernetes提到节点心跳是使用NodeStatus和LeaseObject更新完成的。有人,请解释为什么需要这两种机制来监视节点运行状况。 Kubernetes master是否在内部使用job/cronjob进行节点健康检查处理?是一种轻量级资源,可在集群扩展时提高节点心跳的性能 跟踪租赁对象是帮助心跳在集群扩展时继续有效运行的一种方式。根据这些文件,这将是他们与心跳有关的主要功能 而Kubernetes节点健康检查,kubernetes,kubernetes-health-check,Kubernetes,Kubernetes Health Check,我试图理解Kubernetes中的节点控制器。Kubernetes提到节点心跳是使用NodeStatus和LeaseObject更新完成的。有人,请解释为什么需要这两种机制来监视节点运行状况。 Kubernetes master是否在内部使用job/cronjob进行节点健康检查处理?是一种轻量级资源,可在集群扩展时提高节点心跳的性能 跟踪租赁对象是帮助心跳在集群扩展时继续有效运行的一种方式。根据这些文件,这将是他们与心跳有关的主要功能 而NodeStatus用于kubelet的心跳,NodeS
NodeStatus
用于kubelet的心跳,NodeStatus
也是k8s中其他控制器的重要信号
例如:k8s调度器负责在节点上调度POD。它试图找到最适合节点的方法来优化节点上的内存、cpu和其他使用。但是,它不希望在条件设置为NetworkUnavailable:true
的节点上调度pod,或者其他一些条件会使pod不适合在该节点上运行
如果存在一个或多个您不知道或不理解的信号,则很有可能存在一个控制器,该控制器使用该字段或信号来完成其逻辑
编辑:
节点控制器是以下组件的一部分:
Kubernetes控制器管理器是嵌入核心的守护进程
Kubernetes附带的控制回路。在机器人和机器人的应用中
自动化,控制回路是一个非终止回路,用于调节
系统的状态。在Kubernetes中,控制器是一个控制回路
它通过apiserver和
尝试将当前状态移动到所需的状态时进行更改
国家。今天与Kubernetes一起装运的控制器示例如下:
复制控制器、端点控制器、命名空间控制器、,
和服务帐户控制器
从逻辑上讲,每个控制器都是一个单独的进程,但为了降低复杂性,它们都被编译成一个二进制文件并在一个进程中运行
编辑_2:
根据您的最新评论,我们还有2点需要解决:
这就是他们来帮忙的地方。它将向您展示如何处理大型集群,以及在管理集群时您可以使用哪些工具。Hello@Kiran。是吗?@Wiktor谢谢你的回答。是的,它部分地回答了我的问题。事实上,kubelet使用NodeStatus来通知的不仅仅是节点心跳。关于租赁,我发现了一个有助于更多地理解租赁的链接。我仍然需要了解节点控制器是如何处理节点健康检查的,比如在错过健康检查的情况下。嗨@Kiran。很高兴你现在更清楚了。如果心跳信号丢失,节点控制器会将
NodeReady
更新为ConditionUnknown
,指示节点可能因任何原因而关闭。@Wiktor Yes。节点控制器必须定期检查心跳,以了解节点是否处于活动状态。我想这将由节点控制器上的某种job/cronjob来完成。我正在寻找一些相同的参考资料。实际上,节点控制器是一个deamon,它嵌入了Kubernetes附带的核心控制循环。我将更新我的答案以反映这一点。