Kubernetes节点健康检查

Kubernetes节点健康检查,kubernetes,kubernetes-health-check,Kubernetes,Kubernetes Health Check,我试图理解Kubernetes中的节点控制器。Kubernetes提到节点心跳是使用NodeStatus和LeaseObject更新完成的。有人,请解释为什么需要这两种机制来监视节点运行状况。 Kubernetes master是否在内部使用job/cronjob进行节点健康检查处理?是一种轻量级资源,可在集群扩展时提高节点心跳的性能 跟踪租赁对象是帮助心跳在集群扩展时继续有效运行的一种方式。根据这些文件,这将是他们与心跳有关的主要功能 而NodeStatus用于kubelet的心跳,NodeS

我试图理解Kubernetes中的节点控制器。Kubernetes提到节点心跳是使用NodeStatus和LeaseObject更新完成的。有人,请解释为什么需要这两种机制来监视节点运行状况。 Kubernetes master是否在内部使用job/cronjob进行节点健康检查处理?

是一种轻量级资源,可在集群扩展时提高节点心跳的性能

跟踪租赁对象是帮助心跳在集群扩展时继续有效运行的一种方式。根据这些文件,这将是他们与心跳有关的主要功能

NodeStatus
用于kubelet的心跳,
NodeStatus
也是k8s中其他控制器的重要信号

例如:k8s调度器负责在节点上调度POD。它试图找到最适合节点的方法来优化节点上的内存、cpu和其他使用。但是,它不希望在条件设置为
NetworkUnavailable:true
的节点上调度pod,或者其他一些条件会使pod不适合在该节点上运行

如果存在一个或多个您不知道或不理解的信号,则很有可能存在一个控制器,该控制器使用该字段或信号来完成其逻辑

编辑:

节点控制器是以下组件的一部分:

Kubernetes控制器管理器是嵌入核心的守护进程 Kubernetes附带的控制回路。在机器人和机器人的应用中 自动化,控制回路是一个非终止回路,用于调节 系统的状态。在Kubernetes中,控制器是一个控制回路 它通过apiserver和 尝试将当前状态移动到所需的状态时进行更改 国家。今天与Kubernetes一起装运的控制器示例如下: 复制控制器、端点控制器、命名空间控制器、, 和服务帐户控制器

从逻辑上讲,每个控制器都是一个单独的进程,但为了降低复杂性,它们都被编译成一个二进制文件并在一个进程中运行

编辑_2

根据您的最新评论,我们还有2点需要解决:

  • “节点控制器如何处理节点运行状况检查”
  • 在实现k8s时,您可能不需要了解这种详细程度。所有对您有用的详细信息都已在中。不必担心,但我知道这带来了更实际的问题:

  • 我不确定一个大集群能产生多少负载

  • 这就是他们来帮忙的地方。它将向您展示如何处理大型集群,以及在管理集群时您可以使用哪些工具。

    Hello@Kiran。是吗?@Wiktor谢谢你的回答。是的,它部分地回答了我的问题。事实上,kubelet使用NodeStatus来通知的不仅仅是节点心跳。关于租赁,我发现了一个有助于更多地理解租赁的链接。我仍然需要了解节点控制器是如何处理节点健康检查的,比如在错过健康检查的情况下。嗨@Kiran。很高兴你现在更清楚了。如果心跳信号丢失,节点控制器会将
    NodeReady
    更新为
    ConditionUnknown
    ,指示节点可能因任何原因而关闭。@Wiktor Yes。节点控制器必须定期检查心跳,以了解节点是否处于活动状态。我想这将由节点控制器上的某种job/cronjob来完成。我正在寻找一些相同的参考资料。实际上,节点控制器是一个deamon,它嵌入了Kubernetes附带的核心控制循环。我将更新我的答案以反映这一点。