k8s探针检测php,k8s探针实现grpc健康检查

这篇文章教大家如何利用k8s实现grpc健康检查

一. 配置Liveness和Readiness探针

kubelet 使用 liveness probe(存活探针)来确定何时重启容器。例如,当应用程序处于运行状态但无法做进一步操作,liveness 探针将捕获到 deadlock,重启处于该状态下的容器,使应用程序在存在 bug 的情况下依然能够继续运行下去。

kubelet 使用 readiness probe(就绪探针)来确定容器是否已经就绪可以接受流量。只有当 Pod 中的容器都处于就绪状态时 kubelet 才会认定该 Pod处于就绪状态。该信号的作用是控制哪些 Pod应该作为service的后端。如果 Pod 处于非就绪状态,那么它们将会被从 service 的 load balancer中移除。

点击这里看k8s官方文档

1.1 k8s设置livenessProbe

livenessProbe:

exec:

command:

- /root/rpc_check

- -a

- 127.0.0.1:19000

initialDelaySeconds: 2

periodSeconds: 2

复制代码

配置成功之后,k8s会每2秒执行 /root/rpc_check -a 127.0.0.1:19000, 执行成功的话代表存活,不成功的话k8s会重启pod

二. 创建容器

2.1 创建项目 $GOPATH/src/grpc-demo

grpc健康检查客户端

# $GOPATH/src/grpc-demo/cmd/check/main.go

package main

import(

"os"

"log"

"time"

"errors"

"context"

"path/filepath"

"google.golang.org/grpc"

cli "gopkg.in/urfave/cli.v1"

pb "google.golang.org/grpc/health/grpc_health_v1"

)

const (

VERSION = "1.0.1"

USAGE = "grpc health check client&#

你可能感兴趣的:(k8s探针检测php)