Hi,

I am writing one grpc service and using gRPC health checking on Kubernetes (
https://github.com/grpc-ecosystem/grpc-health-probe). In my server, I added
different implementation (one for liveness and other for readiness) of
endpoints. I am wondering how this probe utility binary differentiates
between liveness check vs readiness check? There should be some other way
to define it in yaml, not just ["bin/grpc_health_probe", "-addr=:8801"]

server = ServerBuilder.forPort(port)
  .addService(new GrpcModuleHealthCheck())
  .addService(new GrpcModuleReadinessCheck())
  .addService(ProtoReflectionService.newInstance())
  .build.start

In kubernetes deployment yaml, I am using below configurations

    livenessProbe:
      failureThreshold: 3
      exec:
        command: ["bin/grpc_health_probe", "-addr=:8801"]
      initialDelaySeconds: 240
      periodSeconds: 20
      successThreshold: 1
      timeoutSeconds: 15
    readinessProbe:
      failureThreshold: 3
      exec:
        command: ["bin/grpc_health_probe", "-addr=:8801"]
      initialDelaySeconds: 20
      periodSeconds: 20
      successThreshold: 1
      timeoutSeconds: 15

I just tested and found "GrpcModuleReadinessCheck" (the health class which
I added last) implementation is taking effect when I just exec my
kubernetes pod

kubectl exec -it <MY_POD_NAME> -- /bin/bash

bash-4.4$ ./grpc_health_probe -addr=localhost:8801
status: SERVING

I want to execute different logics for liveness and readiness probes but
right now the health implementation added at last in grpc server is taking
effect. How to achieve it?

Thanks & regards,
Abhay Dutt Paroha

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAMDTbt8sJXFKGKRFz13nY94qj533cs4%3DBavCS6%2Bfhe1ipECD%3DQ%40mail.gmail.com.

Reply via email to