云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

数据库软件_企业级_中国物联网平台是啥

小七 141 0

数据库软件_企业级_中国物联网平台是啥

gRPC是云计算基础下的高性能开源RPC框架。gRPC是在GKE客户中创建微服务的首选方法,因为它可以让您高效地构建相互通信的服务,而不考虑客户端和服务器的实现语言。

但是,Kubernetes不支持gRPC本机健康检查。为了解决这一问题,我们开发并发布了一个名为grpc health probe的开源项目,这是一个命令行工具,云服务器和服务器,用于评估grpc服务器的运行状况,该服务器的下载次数已超过180万次,我们将讨论在Kubernetes群集(如Kubernetes Engine)上运行的gRPC服务器的健康检查定制工具的需求。

Kubernetes上的gRPC健康检查案例

由于Kubernetes运行微服务,gRPC是微服务通信的流行选择(而且gRPC和Kubernetes都是CNCF项目),您可能认为Kubernetes本机支持gRPC协议进行健康检查。然而,事实并非如此。

Kubernetes本机支持一些健康检查方法来断言Pod的就绪性或活性:

尽管gRPC主要使用HTTP/2堆栈作为其传输层,但不可能使用Kubernetes的"httpGet"探测来创建gRPC请求。因此,建议Kubernetes增加gRPC健康检查。然而,返现app,目前的立场是对其他RPC框架(如Apache Thrift)保持平等的立场,并且在Kubernetes健康检查中不支持这些框架,Kubernetes暂时不支持gRPC本机健康检查,您需要使用定制工具(或自己编写)。

对于gRPC服务器,"健康"是什么意思?

通常在谷歌,我们在每个微服务上都有一组众所周知的端点,云产品,称为z-pages(如/healthz),它帮助我们在整个车队中实现健康检查的标准化。然而,所有gRPC服务器都没有这样一个众所周知的健康检查端点。

为了解决这个问题,大数据是做什么的,gRPC核心提供了一个健康检查协议,该协议分布在所有gRPC语言实现中。实现此协议所需的只是将此运行状况服务注册到服务器,并实现rpc Check(HealthCheckRequest)returns(HealthCheckResponse)方法来反映服务的状态。

在gRPC服务中提供此协议的实现会增加/grpc健康.v1.运行状况/检查外部工具(或可能是Kubernetes本身)可以查询的服务路径,以确定您的服务器是否健康

遇到grpc\u health\u probe

为了解决上面列出的问题,云服务器如何,我们发布了一个名为grpc\u health\u probe的小型开源命令行实用程序,它使用grpc health Checking协议查询服务的健康状况,打印其状态并退出,并显示检查结果的成功或错误代码。

grpc\u health\u probe已被下载超过180万次,并在许多公司的生产中使用gRPC作为其堆栈的一部分,包括Google.

在正常服务器上运行此命令行探测工具将显示其状态并返回零状态代码,表示成功:

$gRPC\ U health\ U probe-addr本地主机:5000

状态:服务

但是,行为不正常的服务器(如冻结的服务器)可能返回不同的响应并以非零退出代码退出:

$grpc\u health\u probe-addrlocalhost:5000-拨号超时100msimeout:无法连接服务"本地主机:10000"在100毫秒内(出口代码2)

grpc\U health\U探头主要为Kubernetes设计。通过使用exec探测定期执行容器Linux命名空间中的二进制文件,可以将它集成到健康检查中。这意味着探测器可以查询通过环回接口(即localhost)运行的gRPC服务器。

因此,将gRPC\u health\u探测器集成到Kubernetes清单中需要您捆绑gRPC服务器容器映像中的二进制文件,并在清单中配置"exec"探测器,例如: