我们在 L4 负载均衡器后面有一个 Kubernetes 集群,但是当我们需要更新/重启节点时,我们没有对负载均衡器的编程访问来添加/删除节点(LB 由我们托管服务提供商的支持团队管理) ).
负载均衡器确实支持健康检查,但当前的设置是调用每个节点上的端口 80 来确定节点是否健康。即使节点耗尽,这也会成功,因此我们别无选择,只能重新启动节点并等待 10 秒让 LB 注意到并在 kubeapi 死亡时将其从集合中取出。
我想要一个像每个节点的 pod 之类的东西,我们可以用它来确定节点是否处于活动状态,大概是使用节点端口设置的。问题是我找不到如何做到这一点。如果我使用 daemonset,我认为 pod 不会在排空期间被驱逐,因此无法正常工作,如果我使用正常部署,则无法保证健康节点将拥有 pod 实例并且看起来不健康.即使使用反关联设置,我认为也不能保证所有健康节点都有一个正在运行的 Pod 需要检查。
有谁知道一种使用 TCP 或 HTTP 调用节点来检测它是否耗尽的方法?
答案 0 :(得分:1)
您正在寻找的解决方案似乎在 this documentation 中有完整描述:
<块引用>Node Problem Detector 是一个守护进程,用于监控和报告节点的健康状况。您可以将节点问题检测器作为 DaemonSet
或独立守护程序运行。节点问题检测器从各种守护进程收集有关节点问题的信息,并将这些情况以 NodeCondition 和 Event 的形式报告给 API 服务器。
您可以根据其 condition 创建节点监控。
您还需要了解limitations:
<块引用>journald
等日志工具。