gpt4 book ai didi

Kubernetes 节点健康检查

转载 作者:行者123 更新时间:2023-12-05 06:01:01 27 4
gpt4 key购买 nike

我想了解 Kubernetes 中的节点 Controller 。库伯内斯 documentation提到节点心跳是使用 NodeStatus 和 LeaseObject 更新完成的。有人,请解释为什么需要这两种机制来监视节点健康状况。Kubernetes master 是否在内部使用作业/cronjob 进行节点健康检查处理?

最佳答案

Lease是一种轻量级资源,可随着集群的扩展提高节点心跳的性能。

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

虽然 NodeStatus 用于 kubelet 的心跳,NodeStatus 也是 k8s 中其他 Controller 的重要信号。

例如:k8s调度器负责调度节点上的pod。它会尝试找到最适合节点的节点,以优化节点上的内存、CPU 和其他使用情况。但是,它不想在具有 node status 的节点上安排 pod条件设置为 NetworkUnavailable: true 或其他一些会使 pod 不适合在该节点上运行的条件。

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

编辑:

节点 Controller 是 kube-controller-manager 的一部分:

The Kubernetes controller manager is a daemon that embeds the corecontrol loops shipped with Kubernetes. In applications of robotics andautomation, a control loop is a non-terminating loop that regulatesthe state of the system. In Kubernetes, a controller is a control loopthat watches the shared state of the cluster through the apiserver andmakes changes attempting to move the current state towards the desiredstate. Examples of controllers that ship with Kubernetes today are thereplication controller, endpoints controller, namespace controller,and serviceaccounts controller.

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

EDIT_2:

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

  1. "how the node-controller processes the node health check"

在实现 k8s 时,您可能不需要了解这种详细程度。 linked public docs 中已包含对您有用的所有详细信息.无需为此担心,但我知道它带来了更实际的问题:

  1. I am not sure how much load a big cluster can generate.

这是 Considerations for large clusters 的位置过来帮忙。它将向您展示如何处理大型集群,以及在管理它们时可以使用哪些工具。

关于Kubernetes 节点健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67366479/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com