【问题标题】:Can I use Envoy with Linkerd?我可以将 Envoy 与 Linkerd 一起使用吗?
【发布时间】:2021-03-16 23:16:39
【问题描述】:

大多数服务网格都使用 Envoy 作为 Sidecar 代理,但这似乎不是 Linkerd 的默认选项。我们已经在使用 Envoy 作为入口,并且真的不想在混合中添加新的代理。我们可以将 Linkerd 与 Envoy 一起使用吗?

【问题讨论】:

    标签: linkerd servicemesh


    【解决方案1】:

    这个问题我听过好几次了,我觉得这里有两个问题:

    1. 能否将 Linkerd 与 Envoy 一起用作 Ingress 控制器?
    2. Linkerd 控制平面是否支持使用 Envoy 作为数据平面代理?

    第一个问题的答案是,您绝对可以使用带有 Envoy 的 Linkerd 作为 Ingress 控制器。 AmbassadorContour 是开源项目的两个示例,它们使用 Envoy 作为代理来路由 Ingress 流量。

    将 Linkerd 与任何入口控制器集成需要一些特定于每个入口控制器的配置。您还需要确保运行入口控制器容器的 Pod 注入了 Linkerd 代理,以便入口控制器和服务工作负载之间的流量成为 Linkerd 服务网格的一部分。

    第二个问题的答案,我认为您要问的是,Linkerd 提供了自己的现成代理,名为linkerd2-proxy,专为管理 Kubernetes 中的微服务工作负载而构建。 Linkerd 控制平面提供 API 端点,旨在与 linkerd2-proxy 一起使用,因此 Envoy 无法开箱即用。

    话虽如此,Linkerd 是一个开源项目,理论上您可以在 Linkerd 控制平面组件和 Envoy XSD API 之间编写一个适配器。在我的脑海中,我想不出一个常见的用例来构建这个适配器会给 Linkerd 带来额外的价值。

    William Morgan 写了一篇很棒的blog post,描述了为什么 Linkerd 团队决定编写自己的代理而不是使用 Envoy。 tl;dr 是 Envoy 是一个通用代理,而 linkerd2-proxy 是专为以最有效且不引人注目的方式处理微服务流量而构建的。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2020-08-04
      • 2018-10-23
      • 2011-02-22
      • 2016-11-20
      • 2019-01-25
      • 2011-06-11
      • 2017-02-20
      • 2013-11-09
      相关资源
      最近更新 更多