InfraPub 为您找到相关结果 20

如何在 Nginx 中配置 gRPC 的代理

Nginx 在 1.13.10 中,新增了对gRPC的原生支持,Nginx 1.14.0 主线版已经发布。本文将介绍,如何配置 Nginx 中的 gRPC 服务。gRPC 服务做为一个 TCP 服务,配置方式与 HTTP/HTPTS 类似。 安装 Nginx Nginx版本要求:1.13.10+。gRPC必须使用 HTTP/2 传输数据,支持明文和TLS加密数据,支持流数据的交互。这是为了充分利用 HTTP/2 连接的多路复用和流式特性。所以在安装部署nginx时需要安装http/2。使用源码安装,编译时需要加入http_ssl和http_v2模块: $ auto/configure --with-http_ssl_module --with-http_v2_module 以明文的方式发布...阅读全文

博文 2018-04-20 11:03:39 debian.cn

Kong 1.3 发布:原生 gRPC 代理、上游 TLS 交叉认证

Kong 1.3 发布了,此版本亮点包括支持原生 gRPC 代理、上游 TLS 交叉认证,以及一系列新功能和性能改进。 原生 gRPC 代理 越来越多的用户转向微服务架构,并且希望有对原生 gRPC 代理的支持,Kong 1.3 解决了这个问题,为支持 gRPC 的基础架构带来更多可控性和可见性。路由和服务条目的协议属性现在可以设置为 grpc 或 grpcs,这对应于通过明文 HTTP/2(h2c)的 gRPC 和通过 TLS HTTP/2(h2)的 gRPC。 这一功能的关键优势在于: 简化运作流程。为用户的 gRPC 服务添加 A/B 测试、自动重试和断路保护,以提高系统可靠性。更具观察性。为 gRPC 服务增强日志记录、分析与 Prometheus 集成。 上游 TLS 交叉认证...阅读全文

博文 2019-08-22 14:54:57 debian.cn

7大维度看国外企业为啥选择gRPC打造高性能微服务

gRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。 gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产。API现在也是很稳定的。 Bugsnag(注:一家云端bug监控服务商)每天处理数以亿计的错误信息,为了处理这些数据,考虑优先构建一个可扩展,性能强大的后端系统,并从中学到很多有挑战性的技术。最近,我们推出了新版本的仪表板,这个项目要求扩展系统,来处理服务呼叫的显著增加,这些呼叫是跟踪用户发布和会话所需的...阅读全文

博文 2018-03-19 17:51:32 debian.cn

协议介绍之深入了解 gRPC

经过很长一段时间的开发,TiDB 终于发了 RC3。RC3 版本对于 TiKV 来说最重要的功能就是支持了 gRPC,也就意味着后面大家可以非常方便的使用自己喜欢的语言对接 TiKV 了。 gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HTTP/2 相关的知识,然后在介绍下 gRPC 是如何基于 HTTP/2 构建的。 HTTP/1.x HTTP 协议可以算是现阶段 Web 上面最通用的协议了,在之前很长一段时间,很多应用都是基于 HTTP/1.x 协议,HTTP/1.x 协议是一个文本协议,可读性非常好,但其实并不高效,笔者主要碰到过几个问题: Parser 如果要解析一个完整的 HTTP 请求,首先我们需要能正确的读出...阅读全文

博文 2017-06-22 11:08:48 debian.cn

gRPC 1.23.0 发布,Google高性能 RPC 框架

gRPC 1.23.0 发布了。gRPC 是 Google 开源的高性能、通用 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。 主要更新内容如下: Core 反向移植 #19924 到 v1.23.x. (#19935)为自定义 iomgr 添加缺少的 APP 回调上下文 (#19687)将 DNS 重新解析期间的下限提高到 30 秒 (#19661)确保在 H2 的框架中至少有一个标题 (#19657)在使用 gevent 时分叉时修复段错误...阅读全文

博文 2019-08-18 18:31:20 debian.cn

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

/kitex-benchmark。 扩展性:Kitex 设计上做了模块划分,提供了较多的扩展接口以及默认的扩展实现,使用者也可以根据需要自行定制扩展。Kitex 未耦合 Netpoll,开发者可选择其他网络库扩展使用。 消息协议:RPC 消息协议默认支持 Thrift、Kitex Protobuf、gRPC。Thrift 支持 Buffered 和 Framed 二进制协议;Kitex Protobuf 是 Kitex 自定义的 Protobuf 消息协议,协议格式类似 Thrift;gRPC 是对 gRPC 消息协议的支持,可以与 gRPC 互通。除此之外,使用者也可以扩展自己的消息协议。 传输协议:传输协议封装消息协议进行 RPC 互通,传输协议可以额外透传元信息,用于服务治理,Kitex 支持的...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区

ServiceMesh 透明代理Linkerd

Linkerd 是一个提供弹性云端原生应用服务网格(service mesh)的开源项目,也是面向微服务的开源 RPC 代理。Linkerd(发音 "linker-DEE")是一个透明的服务网格,旨在通过透明地将服务发现、负载均衡、故障处理,插桩(instrumentation)和路由添加到所有的服务间通信中,使现代应用程序安全可靠,而无需侵入应用内部本身的实现。 linkerd 作为一个透明的 HTTP/gRPC/thrift/ 等代理,通常可以以最少的配置被加入到现有的应用程序中,不管这些应用程序采用什么语言编写。linkerd 能与许多通用协议和服务发现后端运行,包括 Mesos 和 Kubernetes 等预定好的环境。 Linkerd 基于 Netty 和...阅读全文

Nginx 1.15.6 和 1.14.1 发布,高性能 Web 服务器

Nginx 1.14.1 稳定版和 Nginx 1.15.6 主线版已发布,主要修复了 HTTP/2 (CVE-2018-16843,CVE-2018-16844)以及 MP4 模块(CVE-2018-16845)中的漏洞,具体如下: Nginx 1.14.1 Security: 在使用 HTTP/2 时可能导致客户端内存消耗过大 (CVE-2018-16843),CPU 使用率过高 (CVE-2018-16844); Security: 使用 ngx_http_mp4_module 处理特制的 mp4 文件可能导致工作进程内存泄露(CVE-2018-16845); Bugfix: 使用 gRPC 后端可能会导致内存过度消耗。 Nginx 1.15.6 在 1.14.1 的基础上额外包含...阅读全文

博文 2018-11-06 11:37:07 debian.cn

基于thanos搭建分布式prometheus

querier会根据label自动去重,确保返回给grafana的数据不会重复,这个特性很关键。 有了thanos querier组件,我们可以很简单的解决单点故障问题: 部署N个prometheus同时抓取数据,然后thanos querier代理它们,这样prometheus挂了一台也不影响服务,数据在其他prometheus上还有。 方案1:thanos sidecar + thanos querier 实际上,querier不能直接反向代理prometheus,而是需要在prometheus的POD内部署一个thanos sidecar组件,querier反向代理至sidecar,再由sidecar查询POD内的prometheus。 querier和sidecar之间走GRPC协议,POD内的...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

Docker CE 19.03 正式发布 无需root权限

docker run docker/cli#1767 API 更新 API 版本至 v1.40 moby/moby#38089将警告添加到 /info 端点,并将检测移至守护进程 moby/moby#37502添加了对 /_ping 端点的 HEAD 支持 moby/moby#38570添加 Cache-Control 头部以禁用缓存 /_ping 端点 moby/moby#38569对 /version 添加了 containerd, runc, 和 docker-initmoby/moby#37974添加了无文档 /GRPC 端点和注册的 BuildKit 控制器 moby/moby#38990 Networking 移除 IPVLAN 驱动程序 moby/moby#38983增加了对...阅读全文

博文 2019-07-24 21:30:05 debian.cn

监控Kubernetes集群证书过期时间的三种方案 - OSCHINA

用 kube-prometheus-stack 通过 apiserver 和 kubelet 组件监控获取相关证书过期时间; 使用 enix 的 x509-certificate-exporter监控集群所有node的 /etc/kubernetes/pki 和 /var/lib/kubelet 下的证书以及 kubeconfig 文件 方案一: Blackbox Exporter 监控 Kubernetes apiserver 证书过期时间 Blackbox Exporter 用于探测 HTTPS、HTTP、TCP、DNS、ICMP 和 grpc 等 Endpoint。在你定义 Endpoint 后,Blackbox Exporter 会生成指标,可以使用 Grafana 等工具进行可视化...阅读全文

博文 2022-12-10 06:49:43 中文开源技术交流社区

Docker 17.06 社区版发布

—advertise-addr=eth0 —datapath-addr=eth1 集群管理的流量(Raft、grpc和gossip)将会通过eth0,而服务将会彼此通过eth1来通讯。 桌面版本 Docker for Mac和Docker for Windows添加了三个新特性: GUI中新增了重置Docker数据而不需要丢失所有的设置 现在重置数据不会丢失设置。 为主机添加一个实验性的DNS 如果在Docker for Mac或者Docker for Windows上运行容器,并且想访问其他的容器,你可以使用一个新的实验性主机:docker.for.mac.localhost和docker.for.win.lcoalhost来访问开放的端口。例如: $ docker run -d -it -p 80:80...阅读全文

博文 2017-06-30 23:08:57 debian.cn

分布式运行时 Dapr 知多少

化分布式应用开发的技术复杂度。 How Dapr Works 那Dapr如何简化分布式应用的开发呢?下面我们来看一看Dapr的主要特性。 一图胜千言:Dapr通过以HTTP/gRPC API这种与语言无关的方式暴露封装的分布式能力供应用调用,从而支持使用任意语言或框架进行开发集成。目前官方已经提供了Go,Node,Python,.NET,Java, C++,PHP,Rust,Javascript的Sdk,简化Dapr的集成。 其中Dapr的核心构建块(Building Block)就是用来提供各种不同的分布式能力,我们来分别看一看。 1. Service-to-service invocation(服务调用) 提到跨服务方法调用,这个大家肯定会想,这简单啊,不就是服务暴露API就好了嘛。是...阅读全文

译:零信任对 Kubernetes 意味着什么

外指定的某种形式的策略来捕获它。拥有明确的策略允许我们在不修改应用程序代码的情况下审核和更改访问权限。为了实现我们的零信任目标,这些策略可能非常复杂。我们可能有一个策略,它将对服务的访问限制为只有那些需要访问它的服务调用方(即,在双方都使用工作负载身份)。我们可能会进一步细化,只允许访问该服务上的某些接口(HTTP 路由、gRPC 方法)。更进一步,根据请求的用户身份限制访问。在所有情况下,目标都是最低权限——只有在非常必要时才能访问系统和数据。执行最后,零信任要求我们在最细粒度的级别上同时执行身份验证(确认身份)和授权(验证策略是否允许该操作)。每个授予数据或计算访问权限的系统都应该设置从外围到单个组件的安全边界。与策略类似,这种执行理想情况下是在整个堆栈中统一完成的。不是每个组件都使用自...阅读全文

在 Kubernetes 上扩展 TensorFlow 模型

管理、流量分割和版本管理。然而,这个选项并没有提供自动扩展功能。 - **Seldon Core** 是一款第三方工具,可用于 Kubeflow 抽象和资源。它支持多种机器学习框架,包括 TensorFlow,并允许将训练好的 TensorFlow 模型转换为 REST/gRPC 微服务,运行在 Kubernetes 中。Seldon Core 默认支持模型自动扩展。 - **BentoML** 是 Kubeflow 使用的另一个第三方工具,它提供高级的模型服务功能,包括自动扩展,以及支持微批处理的高性能 API 模型服务器。 在下一节中,我将展示如何使用 KFServing 对训练好的 TensorFlow 模型进行自动扩展,KFServing 是默认的 Kubeflow 安装中的一个模块...阅读全文

Kubernetes源码探疑:Pod IP泄露排查及解决方法

,kubelet通过给容器打不同的label来识别之。CRI是一个统一的容器操作gRPC接口,kubelet对容器的操作,都要通过CRI请求来完成,而Docker,Rkt等容器项目则负责实现各自的CRI实现,Docker的实现即为dockershim,dockershim负责将收到的CRI请求提取出来,翻译成Docker API发给Docker Daemon。 relist通过CRI请求更新到Pod中Sandbox容器和非Sandbox容器最新状态,然后将状态信息写入kubelet的缓存podCache中,如果有容器状态发生变化,则通过pleg channel通知到syncLoop循环。对于单个pod,podCache分配了两个数组,分别用于保存Sandbox容器和非Sandbox容器的最新状态...阅读全文

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

者调用关系是关联的基础,因为系统调用才产生了联系。通过 eBPF 技术非常方便地以无侵入的方式采集网络调用,进而将调用解析成我们熟知的应用协议,如 HTTP、GRPC、MySQL 等,最后将拓扑关系构建起来,形成一张清晰的服务拓扑后方便快速定位问题,如下图中网关->Java 应用->Python 应用->云服务的完整链路中,任意一环出现延时,在服务拓扑中应能一眼看出问题所在。这是第一个管线点端到端。2、自顶向下全栈关联:以 Pod 为媒介,Kubernetes 层面关联 Workload、Service 等对象,基础设施层面可以关联节点、存储设备、网络等,应用层面关联日志、调用链路等。​接下来介绍下 Kubernetes 监测的核心功能。永不过时的黄金指标黄金指标是用来用来监测系统性能和状态...阅读全文

博文 2022-03-21 09:11:51 joseph

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

)。 CRI 与 pause 容器 到了这个阶段,大量的初始化工作都已经完成,容器已经准备好开始启动了,而容器是由容器运行时(例如 Docker 和 Rkt)启动的。 为了更容易扩展,Kubelet 从 1.5.0 开始通过容器运行时接口与容器运行时(Container Runtime)交互。简而言之,CRI 提供了 Kubelet 和特定的运行时之间的抽象接口,它们之间通过协议缓冲区(它像一个更快的 JSON)和 gRPC API(一种非常适合执行 Kubernetes 操作的 API)。这是一个非常酷的想法,通过使用 Kubelet 和运行时之间定义的契约关系,容器如何编排的具体实现细节已经变得无关紧要。由于不需要修改 Kubernetes 的核心代码,开发者可以以最小的开销添加新的运行时。 不好...阅读全文

博文 2022-04-18 16:18:04 CSDN