【发布时间】:2021-05-29 21:14:45
【问题描述】:
(我是kubernetes新手,我公司使用kubernetes来管理我们的微服务架构,我们使用ASP.NET和C#)
我有一个相同的服务实例集群,它们有一些状态并做长时间运行的工作。每个实例始终可用于接收对集群的请求,但我希望由集群中负载最少的任何节点处理请求的工作。 (即我希望接收节点将请求转发到最空闲的节点。)
我的服务提供了一个 API 来查询它们当前的负载。我的场景中的“负载”无法通过简单的 cpu/内存使用来衡量,因此典型的负载均衡器在这里没有帮助。但是,由于服务实例可能会随机变得不健康,并且我可能会扩大或缩小集群,因此“当前健康节点”的集合是动态的,无法在部署时通过配置注入。
Kubernetes 是否公开了一个 api,我的服务可以查询该 API 以取回健康/可用的实例集?如果是这样,我可以轻松发现我的健康节点,然后 ping 它们以获取它们加载,以便决定转发给谁。
编辑:我对是否存在可以用来执行此操作的现有 C# 库特别感兴趣。
【问题讨论】:
-
您的集群是否在运行metrics server?如果是这样,
kubectl top nodes(以及它进行的底层 api 调用的定义)可能会让你到达你想去的地方
标签: .net kubernetes microservices load-balancing peer