【问题标题】:Discovery of Hystrix endpoints in Kubernetes (etcd)?在 Kubernetes (etcd) 中发现 Hystrix 端点?
【发布时间】:2016-05-16 06:37:51
【问题描述】:

我们正在迁移到 Kubernetes,我们的许多服务都在使用Hystrix,它公开了由Turbine 使用并由Hystrix Dashboard 可视化的服务器发送事件数据流。我想为 Turbine 实现一个服务发现插件,它会自动发现我们在 Kubernetes 上运行的 Hystix 流。

  1. 为此使用labels 会不会是个好主意? IE。使用 Hystrix 为每个 pod 定义一个包含 hystrix 流路径的标签?
  2. 如果标签不是一个好主意,那会是什么?

【问题讨论】:

    标签: kubernetes dashboard hystrix etcd turbine


    【解决方案1】:

    让 Hystrix 成为 Kubernetes 服务怎么样?Kubernetes 有两种发现服务的建议方法:https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/services.md#discovering-services

    【讨论】:

    • 嗯,我认为这行不通。我需要连接到每个单独的 pod,因为我对每个 pod 的流而不是服务感兴趣。
    • “无头”服务不使用 VIP,但仍为您提供基于 DNS 的分组。
    • 你可以通过向apiserver查询服务的endpoints来获取pod的地址,url为/api/v1/namespaces//endpoints/。另请注意,端点是动态的。
    【解决方案2】:

    我遇到了同样的问题,我创建了一个小项目来解决它。 本质上,我实现了一个歇斯底里的实例发现类来使用 kubernetes 服务。 你可以找到我的项目here

    此项目尚处于起步阶段,因此可能存在错误。欢迎反馈。

    谢谢 拉斐尔

    【讨论】:

    • 谢谢。我实际上也有这个工作,只是我想避免状态。但目前我认为如果你不使用轮询,它是可以接受的。
    • @joahn,不确定您所说的避免状态是什么意思。我的方法是使用选择器来选择一组生成流的 pod。任何地方都没有状态,如果 pod 发生变化,配置就会适应。它轮询 kubernetes master 以获取 pod 列表。
    • 我对 Turbine 1 没有太多经验(我正在使用 Turbine 2),但是如何在您的代码中刷新实例列表?我只能看到你轮询 Kubernetes 一次?当一个 pod 停止并因此需要从实例列表中删除或正在创建一个新 pod 并需要添加时会发生什么?
    • @Johan,你看到的代码每分钟被涡轮调用一次,就是这样刷新pod列表的。我试图为turbine2构建它,但卡住了,看起来并不是所有的maven依赖项都已发布(尚未)。
    • 哦,那它肯定会起作用,但我认为 Turbine 2 不会那样做。你返回一个带有 StreamAction 的 Observable,它由一个 URL 和一个 URL 是添加还是删除组成。 Turbine2 在 Maven 中心(但不幸的是不是支持我正在使用的基本身份验证的版本,这阻止了我开源它)。也许我们应该在 GitHub 上合作? :)
    猜你喜欢
    • 1970-01-01
    • 2020-04-05
    • 2019-07-06
    • 2018-12-22
    • 2017-08-26
    • 2020-09-21
    • 2021-07-17
    • 1970-01-01
    • 2017-10-14
    相关资源
    最近更新 更多