HTTP代理集成
linkerd 可以作为 HTTP 代理工作,无需任何额外的配置,提供关键功能,如负载均衡,和动态请求路由,无需额外的费用。默认情况下,linkerd 会根据作为请求的一部分发送的 HTTP host 路由 HTTP 请求。例如,假设 linkerd 在端口 4140 上本地运行,并且已配置为将请求路由到在其他地方运行的“hello”服务的实例。在这种场景下,可以利用 linkerd 的代理集成,并使用以下方式向“hello”服务发出 curl 请求:
通过设置 变量,curl 将直接发送代理请求到 linkerd,而不在 DNS 中实际查找“hello”。linkerd 依次在每个被配置为用于服务发现的后端查找“hello”服务,并且它将相应地路由请求。
配置应用程序使用 HTTP 代理通常可以在不修改代码的情况下完成。但是,这种配置的细节是依赖于语言的。以下是常见设置的一些示例:
原则上,linkerd 可以在请求的任何组件上进行路由, 从进入端口到有效载荷内容。实际上,对于 HTTP 调用,在 host 上路由(使用默认 methodAndHost 标识符)或 URL 路径(使用路径标识符)是最自然的。
如果你在 Kubernetes 上运行, 另一种选择是通过 iptables 规则使用 。