Kubernetes 管理的集群中的节点能否发现其健康的对等节点?

时间:2021-02-27 21:25:44

标签: .net kubernetes microservices load-balancing peer

(我是 kubernetes 新手,我公司使用 kubernetes 管理我们的微服务架构。我们使用 ASP.NET 和 C#)

我有一组相同的服务实例,它们有一些状态并执行长时间运行的工作。每个实例始终可用于接收对集群的请求,但我希望由集群中负载最少的任何节点处理请求的工作。 (即我希望接收节点将请求转发到最空闲的节点。)

我的服务提供了一个 api 来查询它们的当前负载。我的场景中的“负载”无法通过简单的 cpu/内存使用量来衡量,因此典型的负载均衡器在这里无济于事。然而,由于服务实例可能随机变得不健康,我可能会扩大或缩小集群,“当前健康节点”的集合是动态的,不能在部署时通过配置注入。

Kubernetes 是否公开了一个 api,我的服务可以查询该 API 以取回健康/可用的实例集?如果是这样,我可以轻松地发现我的健康节点,然后对它们执行 ping 操作加载,以便决定转发给谁。

编辑:我对是否有一个现有的 C# 库可以用来执行此操作特别感兴趣。

1 个答案:

答案 0 :(得分:0)

当服务不健康时,为什么要寻找节点的健康状况?但是由于您正在寻找节点健康状况,因此 Kubectl 提供了一个节点问题检测器,应该可以帮助您解决问题。你可以从这里找到更多信息:-

https://kubernetes.io/docs/tasks/debug-application-cluster/monitor-node-health/