首页
学习
活动
专区
工具
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,但从KubernetesCPU图中可以清楚地看到,实际上只有一个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 中任何其他容器初始化之前准备就绪。

31620

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

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

1.6K10

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

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

1.2K60

Linkerd2 proxy tap 学习笔记

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

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 流量。...通过特定准则,如最大连接数和最大请求数等设定。 暂不支持。 动态路由 支持。通过设置Linkerddtab规则实现不同版本服务请求动态路由。 支持。通过服务版本或环境信息实现。 支持。

1.3K21

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 正在接收请求...未 与任何路由相关联。

50810

Linkerd 中获取应用黄金指标

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

2.4K10

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 流量。

1.9K00

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 发送请求。这些请求将失败。...在开始正常关闭之前,此延迟为慢速客户端提供了额外时间来接收端点更新。

47530

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

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

53920

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服务所有端点地址,以及特定于链接元数据和配置重试、超时和其他策略服务配置文件。所有这些数据都流到代理,所以如果有任何变化——例如。

2K10

了解 Linkerd Service Mesh 架构

从较高层次上看,Linkerd 由一个控制平面(control plane) 和一个 数据平面(data plane) 组成。 控制平面是一组服务,提供对 Linkerd 整体控制。...它用于获取服务发现信息(即发送特定请求位置和另一端预期 TLS 身份);获取有关允许哪些类型请求策略信息;获取用于通知每条路由指标、重试和超时服务配置文件信息;和更多其它有用信息。...代理注入器(proxy injector) proxy injector 是一个 Kubernetes admission controller,它在每次创建 pod 时接收一个 webhook 请求。...代理支持通过 DNS 和目标 gRPC API 进行服务发现。...容器作为 Kubernetes init 容器 添加到每个网格 pod 中,该容器在任何其他容器启动之前运行。

44430
领券