Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gRPC health probe on Kine deployment does not work #252

Open
yelshall opened this issue Dec 7, 2023 · 4 comments
Open

gRPC health probe on Kine deployment does not work #252

yelshall opened this issue Dec 7, 2023 · 4 comments

Comments

@yelshall
Copy link

yelshall commented Dec 7, 2023

It seems that the gRPC server is not working, as when I try to query the server I get back nothing:

> grpcurl -plaintext -d '{"service": "kine"}' localhost:2379 grpc.health.v1.Health/Check
Failed to dial target host "localhost:2379": context deadline exceeded

This is in the new version (0.11.1) where it seems the HTTP server was removed. However, querying the HTTP server in version 0.10.3 seems to be fine.

@yelshall yelshall changed the title gRPC probe on Kine deployment does not work gRPC health probe on Kine deployment does not work Dec 7, 2023
@brandond
Copy link
Member

brandond commented Dec 7, 2023

As discussed at kubernetes/kubernetes#118460 the HTTP endpoint is no longer used by Kubernetes for health checking, so we don't need to support it here in Kine.

The "context deadline exceeded" error doesn't seem to have anything to do with that change though, it sounds to me like kine isn't actually running on that port. Here's what I get:

brandond@dev01:~$ ./grpcurl -plaintext -d '{"service": "kine"}' 172.17.0.7:2379 grpc.health.v1.Health/Check
Error invoking method "grpc.health.v1.Health/Check": failed to query for service descriptor "grpc.health.v1.Health": server does not support the reflection API

@brandond
Copy link
Member

brandond commented Dec 7, 2023

I guess this can be left open as a feature request, but I do want to confirm that I don't believe this is necessary to support health checks from clients that already have the grpc.health.v1.Health protobuf descriptors available - which would include Kubernetes.

@brandond brandond reopened this Dec 7, 2023
@brandond
Copy link
Member

brandond commented Dec 7, 2023

I will also note that kine doesn't really do health checks, it will always just respond with healthpb.HealthCheckResponse_SERVING. This is consistent with etcd though, which also responds with a fixed response.

@brandond
Copy link
Member

brandond commented Dec 7, 2023

Also, I'm not sure where you got the '{"service": "kine"}' bit from, but it does not appear to work with etcd OR kine. Where did you get that from?

With the change from my linked PR, things seem to work properly if you just query health:

brandond@dev01:~$ ./grpcurl -plaintext 172.17.0.7:2379 list
etcdserverpb.Cluster
etcdserverpb.KV
etcdserverpb.Lease
etcdserverpb.Maintenance
etcdserverpb.Watch
grpc.health.v1.Health
grpc.reflection.v1alpha.ServerReflection

brandond@dev01:~$ ./grpcurl -plaintext 172.17.0.7:2379 grpc.health.v1.Health/Check
{
  "status": "SERVING"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants