【问题标题】:Can a node in a cluster managed by Kubernetes discover its healthy peers?Kubernetes 管理的集群中的节点能否发现其健康的对等节点?
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 我只是想发现健康的节点
  • @PeterBeissinger 上面提供的链接有帮助吗?建议是创建一个守护程序集,它将根据提供的配置执行运行状况检查,并将其写入在某个卷上共享的文件中。然后它将告诉我们我们如何解释日志并从中创建指标。
  • 如果我想使用原始 kubectl 执行此操作,该链接可能会有所帮助。我实际上希望有一个 C# 库来帮助我做到这一点。我会更新我的问题以反映这一点。
猜你喜欢
  • 2021-04-24
  • 2023-04-03
  • 2021-04-12
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多