python - kubernetes中grpc服务健康检查实现

news/2024/12/2 13:40:43/
  • 概述
    kubernetes本身不支持gRPC健康检查,本文记录使用 ‘grpc-health-probe’ 实现grpc服务的健康检查
    ‘grpc-health-probe’,这是 Kubernetes 原生的健康检查 gRPC 应用程序的方法
    在这里插入图片描述

    官方参考文档:https://kubernetes.io/zh-cn/blog/2018/10/01/health-checking-grpc-servers-on-kubernetes/

  • 示例

    • 下载grpc-health-probe文件
      按需下载指定版本grpc-health-probe文件

      下载地址:https://github.com/grpc-ecosystem/grpc-health-probe/releases

    • 配置grpc-health-probe
      将静态编译的grpc_health_probe打在容器映像中
      Dockerfile:

      COPY ocr/data/grpc_health_probe_v0.4.1 /bin/grpc_health_probeRUN chmod +x /bin/grpc_health_probe
      
    • 健康检查接口实现

      • 创建health.proto文件
      syntax = "proto3";// 定义grpc请求消息体
      message HealthCheckRequest {string service = 1;
      }// 定义grpc返回消息体
      message HealthCheckResponse {enum ServingStatus {UNKNOWN = 0;SERVING = 1;NOT_SERVING = 2;}ServingStatus status = 1;
      }// 定义服务接口
      service Health {rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
      }
      
      • 健康检查接口实现
       class HealthServer(health_pb2_grpc.HealthServicer):"""定义类继承HealthServicer"""def __init__(self):passdef Check(self, request, context):"""健康检查接口,实现proto文件中的服务接口"""return health_pb2.HealthCheckResponse(status=HealthCheckResponse.ServingStatus.SERVING)def run(host, port):"""运行ocr服务:param host::param port::return:"""server = grpc.server(futures.ThreadPoolExecutor(max_workers=5))health_pb2_grpc.add_HealthServicer_to_server(HealthServer(), server)server.add_insecure_port(f'{host}:{port}')server.start()print('Grpc server connect successful!')# 启动服务,等待退出try:while True:time.sleep(600)except KeyboardInterrupt:server.stop(0)if __name__ == '__main__':run(host='0.0.0.0', port='8001')
      
      • 容器中测试
      \bin\grpc-health-probe -addr :8001
      返回 SERVING
      
      • kubernetes中配置
      spec:containers:- name: serverimage: "[YOUR-DOCKER-IMAGE]"ports:- containerPort: 8001readinessProbe:exec:command: ["/bin/grpc_health_probe", "-addr=:8001"]initialDelaySeconds: 5livenessProbe:exec:command: ["/bin/grpc_health_probe", "-addr=:8001"]initialDelaySeconds: 10
      


    参考文档:
    grpc_health_probe配置:https://github.com/grpc-ecosystem/grpc-health-probe/


http://www.ppmy.cn/news/331752.html

相关文章

伦茨小知识-什么是耳机阻抗

耳机阻抗是耳机交流阻抗的简称,单位为欧姆(Ω)。不同阻抗的耳机主要用于不同的场合,在台式机或功放等设备上,通常会使用高阻抗耳机,有些专业耳机阻抗甚至会在300欧姆以上,这是为了与专业机上的耳机插口匹配。对于各种便…

运维就业指导

运维就业指导 1.招聘信息获取 可以通过以下途径 1)第三方网站 实习僧 :转正实习 牛客网: 求职讨论区,刷题,时间表 应届生求职网:宣讲信息,9月份比较有用 大街 智联 2)如何查看一家…

高速内部总线HSIB和设备总线DB

前言 “纸上谈兵”已经快一年,这项目有点意思了,其实、有难度的事情才好玩。从年初至今陆续买了20多套各类开发板,我还没一套去上手试玩;只是买回来“摸摸”感受一下,看看相关资料、用“想象力”探视和思考&#xff0…

打开方式中选择默认方式无反映_「全民标签」论享声A1的APP打开方式以及与树莓派的使用对比...

​ 大家好,我是流氓才子。 说在前面:今天的推送,末尾没有福利,因为个人觉得文章的主角就是最大的福利。。。先别急着说这句广告很硬,往下翻翻试试? 近一个月来论坛最火的机器是啥?没猜错的话应该…

Hifi指北:我是不是需要一台耳放呀?

由于本文容易引起“发烧友”及同行不适,请对号离座! 作为全淘宝销量最低的耳放店主,经常反思自己的愚蠢是非常有必要的。 首先,我的店铺只有纯天然流量,因为淘宝要你砸钱才能有流量,我这边大部分还是从知乎…

耳机【摘】

耳机插在电脑上听,插在手机上听,插在ipod上听,这里的电脑、手机、ipod就是所谓的前端。 耳机分高阻和低阻,低阻耳机一般用手机、MP3等都可以推动(一般16Ω以下);高阻耳机一般需要耳机放大器才能…

WTK6900H语音识别单芯片实现智能语音识别蓝牙耳机方案设计

一、简介 随着智能手机的普及,使用蓝牙耳机的用户越来越多,尤其是骑行或步行用户。由于蓝牙耳机体型较小,按键很少,一些蓝牙耳机需要按组合键来完成相应操作,因此造成蓝牙耳机操作比较复杂,用户体验较差&am…

ls200_ls200开箱烧耳机的一些感受

朋友想换耳机了来找我推荐,在找各种测评的过程中自己也重新入坑,经过一周多的对比最终入了铁三角ATH-ls200,下面是开箱过程与耳机小白到初烧的一些感受。 先上开箱图:中规中矩的整体包装附送的耳机收纳包耳机细节&上学买的A15…