首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Grpc服务无法接收任何带有linkerd的请求

是因为linkerd是一种服务网格(Service Mesh)技术,它通过在应用程序之间插入代理来提供一些功能,如负载均衡、故障恢复、监控等。但是,Grpc服务本身并不支持linkerd代理的请求。

Grpc(Google Remote Procedure Call)是一种高性能、开源的远程过程调用框架,主要用于构建分布式系统。它基于HTTP/2协议,使用Protocol Buffers作为数据序列化格式,提供了强类型、高效、跨语言的远程调用能力。

要解决Grpc服务无法接收linkerd请求的问题,可以考虑以下几个方面:

  1. 配置linkerd代理:确保linkerd代理正确配置并运行在服务网格中。可以参考linkerd官方文档了解如何配置和使用linkerd。
  2. Grpc服务适配linkerd:Grpc服务需要进行适配,以支持linkerd代理的请求。可以通过修改Grpc服务的代码,将其与linkerd进行集成。具体的适配方式可以参考linkerd官方文档或者相关的开发文档。
  3. 使用其他服务网格技术:如果Grpc服务无法与linkerd集成,可以考虑使用其他支持Grpc的服务网格技术,如Istio、Consul等。这些服务网格技术也提供类似的功能,并且可能更容易与Grpc服务进行集成。

总结起来,Grpc服务无法接收带有linkerd的请求可能是由于缺乏正确的配置或适配导致的。需要仔细检查linkerd代理和Grpc服务的配置,并确保它们能够正确地集成在一起。如果无法解决该问题,可以考虑使用其他支持Grpc的服务网格技术。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Kubernetes无痛作gRPC负载平衡

作者:William Morgan (Buoyant) 许多gRPC的新用户惊讶地发现,Kubernetes的默认负载平衡常常无法在gRPC上正常工作。...虽然这里显示的voting服务有几个pod,但从Kubernetes的CPU图中可以清楚地看到,实际上只有一个pod在工作,因为只有一个pod在接收流量。为什么?...在这篇博客文章中,我们描述了为什么会发生这种情况,以及如何通过使用Linkerd(CNCF的服务网格和服务sidecar)在任何Kubernetes应用程序中添加gRPC负载平衡来轻松修复它。...由于我们无法在连接级别进行平衡,所以为了实现gRPC负载平衡,我们需要从连接平衡切换到请求平衡。换句话说,我们需要打开到每个目的地的HTTP/2连接,并在这些连接之间平衡请求,如下所示: ?...使用Linkerd有几个优点。首先,它可以使用任何语言编写的服务、任何gRPC客户机和任何部署模型(不管是否headless)。

1.4K20

Linkerd stable-2.11.0 稳定版发布:授权策略、gRPC 重试、性能改进等!

这些策略直接建立在 Linkerd 的自动 mTLS 功能提供的安全服务身份上。...这些 annotation 和 CRD 一起使您可以轻松地为集群指定各种策略,从 “允许所有流量” 到 “服务 Foo 上的端口 8080 只能从使用 Bar 服务帐户的服务接收 mTLS 流量”,更多...(请参阅完整的策略文档 ») https://linkerd.io/2.11/features/server-policy/ 重试带有正文的 HTTP 请求 重试失败的请求是 Linkerd 提高 Kubernetes...在 2.11 中,Linkerd 还可以重试带有 body 的失败请求,包括 gRPC 请求,最大 body 大小为 64KB。...容器启动排序解决方法 Linkerd 2.11 现在默认确保 linkerd2-proxy 容器在 pod 中的任何其他容器初始化之前准备就绪。

35820
  • 使用Kubernetes新的绑定服务账户令牌来实现安全的工作负载身份

    这是通过使用 ClusterRoleBinding 将一个 ClusterRole(带有必要的权限)附加到一个服务帐户(通过创建一个 ServiceAccount 对象)来实现的。...Linkerd 不需要任何这些额外的文件,除了令牌,因为它从不与 Kubernetes API 交互(稍后我们将看到绑定的服务帐户令牌如何修复这个问题)。 那么 Linkerd 如何验证它的代理呢?...这个身份甚至被连接到 Linkerd 的指标中:每当一个网格化的请求被接收或发送时,相关的指标也包括与该对等体相关的服务帐户。...client_id 标签是附加到从那里接收请求的客户端 pod 的服务帐户。...Linkerd 将使用绑定服务账户令牌(Bound Service Account Tokens[9])特性来请求自己的令牌集,而不是使用默认挂载的令牌。

    1.7K10

    详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代

    当注入 Pod 的代理从应用程序容器接收到出站连接时, 它会通过使用 Linkerd 控制平面查找该 IP 地址来执行服务发现。...网格内的任何未加密请求都将随机升级到 mTLS。 Linkerd 不会自动对来自网格内部或外部的任何请求进行 mTLS。...负载均衡 对于 HTTP、HTTP/2 和 gRPC 连接, Linkerd 会自动在所有目标端点之间对请求进行负载平衡,无需任何配置。(对于 TCP 连接,Linkerd 会平衡连接。)...另一方面,如果 IP 地址对应一个 Pod, Linkerd 将不会执行任何负载均衡或应用任何服务配置文件。 如果使用无头服务(headless services),则无法检索服务的端点。...多集群网关组件为目标集群提供了一种从源集群接收请求的方式。

    1.3K60

    Linkerd2 proxy tap 学习笔记

    概述 Linkerd2由控制平面和数据平面组成: 控制平面是在一个专门的Kubernetes命名空间(默认是linkerd)中运行的一组服务,这些服务共同实现了聚合遥测数据、提供一组面向用户的API、向数据平面提供控制指令等功能...它对服务毫无侵入,服务本身不需要修改任何代码,甚至可以将它添加到正在运行的服务中。 以下是官方的架构示意图: ?...proxy-destination tap是Linkerd2的一个非常有特色的功能,它可以随时抓取某资源的实时流量。有效的利用该功能可以非常方便的监控服务的请求流量情况,协助调试服务。...tap相关的功能组件如下: web/CLI: 发起tap请求,展示tap监控结果 tap: 将来自web/CLI的tap请求转为gRPC请求并发至proxy组件,将proxy回复的tap事件回复给web...该请求来自Linkerd2的tap组件。

    1.1K10

    Istio 实践手册 |服务网格框架对比

    随后,它们可用于Linkerd代理之间的任何连接以实现mTLS。 Proxy Injector:是一个注入程序,每次创建一个pod时,它都会接收一个webhook请求。...Service Profile Validator:用于在保存新服务配置文件之前先对其进行验证。 Tap:从CLI和dashboard接收请求,以实时监视请求和响应。...Envoy既可用作独立代理层运行,也可作为Service Mesh架构中数据平面层,因此通常Envoy跟服务运行在一起,将应用的网络功能抽象化,Envoy提供通用网络功能,实现平台及语言无法性。...专注于支持Kubernetes平台,提高运行在Kubernetes平台上服务的可靠性、可见性及安全性。 支持gRPC、HTTP/2和HTTP/1.x请求及所有 TCP 流量。...通过特定准则,如最大连接数和最大请求数等的设定。 暂不支持。 动态路由 支持。通过设置Linkerd的dtab规则实现不同版本服务请求的动态路由。 支持。通过服务的版本或环境信息实现。 支持。

    1.4K21

    Linkerd 与 ingress-nginx 结合使用以及对服务的访问限制

    (grpc),最后指定在此端口上提供服务的协议为 gRPC, 这可确保代理正确处理流量并允许它跳过协议检测。...现在没有客户端被授权访问此服务,正常会看到成功率有所下降, 因为从 Web 服务到 Voting 的请求开始被拒绝,也可以直接查看 Web 服务的 Pod 日志来验证: $ kubectl logs -...我们可以使用 linkerd viz authz 命令查看进入 Voting 服务的请求的授权状态: $ linkerd viz authz -n emojivoto deploy/voting SERVER...有了这个对象后,我们现在可以看到所有对 Voting 服务的请求都是由 voting-grpc 这个 ServerAuthorization 授权的。...1ms 我们还可以通过创建一个 gRPC 客户端 Pod 来尝试从中访问 Voting 服务测试来自其他 Pod 的请求是否会被拒绝: $ kubectl run grpcurl --rm -it -

    1.1K20

    Linkerd 2.10—设置服务配置文件

    调试 502s 使用每个路由指标调试 HTTP 应用程序 使用请求跟踪调试 gRPC 应用程序 导出指标 暴露 Dashboard 生成您自己的 mTLS 根证书 获取每条路由指标 混沌工程之注入故障...当 Linkerd proxy 接收到 HTTP(非 HTTPS)请求时, 会识别该请求的目标服务(destination service)。...有时您可能需要为驻留在您无法控制的命名空间中的服务定义服务配置文件。为此,只需像以前一样创建一个服务配置文件,但将服务配置文件的命名空间编辑为调用该服务的 pod 的命名空间。...要手动验证请求是否正确关联,请在您自己的部署上运行 tap: linkerd viz tap -o wide | grep req 输出将实时流式传输 deploy/webapp 正在接收的请求...未 与任何路由相关联。

    53710

    在 Linkerd 中获取应用的黄金指标

    Latency 延迟是响应请求所需的时间,对于 Linkerd,是通过 Linkerd 代理向应用程序发送请求和接收响应之间经过的时间来进行衡量的,因为它在请求之间可能会有很大差异,所以指定时间段的延迟通常作为统计分布来衡量...所以我们这里主要使用另外三个黄金指标:成功率、请求率和延迟。 最后一点是,虽然 Linkerd 可以代理任何 TCP 流量,但这些黄金指标仅适用于使用 HTTP 或 gRPC 的服务。...带有预填充字段和当前Tap查询的Tap页面 现在我们点击 Tap 页面顶部的 START 按钮,开始对投票服务的 /emojivoto.v1.VotingService/VoteDougNut 路径的请求...Grafana 仪表板的优点在于你无需执行任何操作即可创建它们,Linkerd 使用动态模板为每个注入 Linkerd 代理和部分服务网格的 Kubernetes 资源生成仪表板和图表。...任何时候您想要获得应用程序中服务性能的最新快照,您都可以使用 linkerd viz stat 来获取这些指标。

    2.5K10

    Service Mesh 框架选型对比分析:Linkerd、Envoy、Istio、Conduit

    随后,它们可用于Linkerd代理之间的任何连接以实现mTLS。 Proxy Injector:是一个注入程序,每次创建一个pod时,它都会接收一个webhook请求。...Service Profile Validator:用于在保存新服务配置文件之前先对其进行验证。 Tap:从CLI和dashboard接收请求,以实时监视请求和响应。...Envoy既可用作独立代理层运行,也可作为Service Mesh架构中数据平面层,因此通常Envoy跟服务运行在一起,将应用的网络功能抽象化,Envoy提供通用网络功能,实现平台及语言无法性。...除此之外,还有以下功能: 优先支持HTTP/2和gRPC,同时支持Websocket和 TCP 代理。 API 驱动的配置管理方式,支持动态管理、更新配置以及无连接和请求丢失的热重启功能。...专注于支持Kubernetes平台,提高运行在Kubernetes平台上服务的可靠性、可见性及安全性。 支持gRPC、HTTP/2和HTTP/1.x请求及所有 TCP 流量。

    2.2K00

    Server-Speaks-First 有点坑,Linkerd 2.10 中的协议检测和不透明端口

    但首先,让我们首先回答为什么 Linkerd 关心任何协议的问题。...这里的一个例子是负载平衡。在不知道连接协议的情况下,Linkerd 仅限于平衡连接(balancing connections):一旦与服务器建立了 TCP 连接,它就无法进一步操作该连接。...( Linkerd 也是 Kubernetes 中负载平衡 gRPC 连接的一个简单解决方案。)...从 TCP 的角度来看,这是一种完全合法的行为,但这意味着 Linkerd 无法检测到协议,因为相关信息来自服务器,而不是客户端。 (为什么不简单地使用服务器的字节来检测协议?...然而,它们有一个明显的缺点:因为它们完全绕过 Linkerd 代理,Linkerd 无法应用 mTLS 或捕获这些端口的任何指标。

    56820

    Linkerd 2.10(Step by Step)—优雅的 Pod 关闭

    emojivoto 应用 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代 Linkerd 2.10—将您的服务添加到 Linkerd Linkerd...—使用请求跟踪调试 gRPC 应用程序 Linkerd 2.10—导出指标 Linkerd 2.10—暴露 Dashboard Linkerd 2.10—生成您自己的 mTLS 根证书 Linkerd...客户端更新缓慢 在 Kubernetes 终止一个 Pod 之前,它首先从该 Pod 所属的任何服务的端点资源中删除该 Pod。这意味着该服务的客户端应该在终止之前停止向 Pod 发送流量。...但是,某些客户端接收端点更新的速度可能很慢, 并且可能会在 Pod 的代理已经收到 TERM 信号并开始正常关闭后尝试向终止 Pod 发送请求。这些请求将失败。...在开始正常关闭之前,此延迟为慢速客户端提供了额外的时间来接收端点更新。

    50030

    A Kubernetes Service Mesh(第9部分):使用gRPC的乐趣和收益

    如上所示,当 hello 服务想要调用时 world 服务时,请求将通过其主机本地上Linkerd 的 outgoing 路由器送出,它不直接将请求发送到目标 world 服务,而是发送到在同一主机...我们现在实现了在gRPC服务相互之间进行信息传递,方法是通过Linkerd路由转发它们的HTTP/2请求。...现在我们可以在我们的gRPC微服务应用程序中使用所有 Linkerd的强大功能,包括单次路由请求,负载平衡,熔断,重试,TLS,分布式跟踪,服务搜寻集成等。...得到的名称可以通过dtab来进行转换 ,我们可以在其中提取gRPC服务名称,并将请求转发到同名的Kubernetes服务中。...因为gRPC请求中包含路由信息,所以这对Linkerd来说是非常合适的,并且使得建立Linkerd来路由转发(route)RPC请求变得非常容易。

    1.7K90

    Linkerd最先进的Rust代理|Linkerd2-proxy

    ,并且比任何人做得都好:成为一个服务网格边车(sidecar)代理。...作为一个服务网络,Linkerd的最大好处之一可以总结为“零配置就能工作”:如果你把Linkerd添加到一个正常运行的应用程序,它应该继续运行,用户不应该做任何配置。...透明性的一个重要部分是,如果代理接收到一个消息,它不能做任何聪明的事情,它应该直接发送它——在这种情况下,消息是加密的,而代理没有解密它的密钥,所以我们没有别的办法。...代理执行我们上面讨论的协议检测,并确定这是一个HTTP/1、HTTP/2或gRPC请求协议,Linkerd理解并可以智能路由。因此,现在我们需要确定请求的去向。...目标服务向代理提供组成该权限的Kubernetes服务的所有端点的地址,以及特定于链接的元数据和配置重试、超时和其他策略的服务配置文件。所有这些数据都流到代理,所以如果有任何变化——例如。

    2.1K10

    Linkerd 2.10(Step by Step)—使用 Linkerd 进行分布式跟踪

    跟踪需要某种方式将传入的请求与您的应用程序与传出的请求绑定到相关服务。为此,将向每个请求添加一些标头,其中包含跟踪的唯一 ID。...要进入 UI,运行: linkerd jaeger dashboard 您可以在下拉列表中搜索任何服务,然后单击 Find Traces。vote-bot 是一个很好的入门方式。...当请求通过代理时,由服务器接收,然后由客户端发出。对于在两个网状 Pod 之间传递的单个请求,总共会有 4 个跨度。当请求遍历该代理时,两个将在源端,当远程代理接收到请求时,两个将在目标端。...分布式跟踪系统都依赖于服务来传播有关从接收到的请求到发送的请求的当前跟踪的元数据。这一元数据称为跟踪上下文,通常编码在一个或多个请求标头中。...客户端库 虽然服务可以手动传播跟踪传播标头,但使用执行以下三件事的库通常要容易得多: 将跟踪上下文从传入请求头传播到传出请求头 修改跟踪上下文(即开始一个新的跨度) 将此数据传输到跟踪收集器 我们建议在您的服务中使用

    91630
    领券