Repository navigation
Replies: 2 comments 3 replies
|
Some things may need clarified. You didn't say what your starting version was. Keep in mind that the result of the pod probes are used to determine the pod health and whether the pod should be reachable from relevant services. Kube will test those on the pod without going through the ingress. Are you seeing the pod being terminated or marked as not ready? If so, that would indicate a problem with the probes / health check endpoints. In any case there's probably no need to use custom probes. If the pod is ready, but traffic is not reaching it from your gce ingress, then that seems related to the whatever additional check is being being performed by "Default kubernetes L7 Loadbalancing health check for NEG." From https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer#remarks it looks like the default behavior is to send a request to / - which should make this effectively unrelated to the built-in health endpoints. So you need to point that to or expose something on the server that will respond with 200 - that could be the health endpoints, or it could just be something like /welcome-content/logo.svg I'm not sure what version this would have worked in by default - all recent versions will redirect from /. |
|
Hi @mike-pt I'm running into what appears to be the same issue while upgrading Keycloak (using a GKE Ingress with an external HTTP(S) Load Balancer). After upgrading, the GCE/GKE backend becomes UNHEALTHY, even though the Keycloak pods are running. The ingress annotations show the backend as unhealthy, and it seems related to the management interface moving the health endpoints to port 9000, while the GKE Ingress health check is still targeting the serving port (8080). I'm curious if this issue was ever resolved.
Any guidance or update would be greatly appreciated. Thanks! |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Before reporting an issue
Area
operator
Describe the bug
I'm not sure if this is a bug as it seems intended but ended up breaking compatibility with GKE setups (probably the later).
While upgrading to v25 (tried 26 too) with the operator ingress is now failing the health checks, I noticed the was a change in the port.
I can see the service now exposing both port 8080 and 9000 and so the operator does create the service with new port.
I am using a custom ingress because with the "ingress" enabled in the operator I bump into other issues in GKE, it seems mostly tailored for openshift, also with GCE ingress we get free managed certificates.
The issue is GCE insists in creating a default healthcheck
I tried to add custom probes:
Unfortunately this seems to be ignored by GCE ingress (though I see the probs listed in the pods)
From the docs google either uses BackendConfig or Readiness probe.
https://cloud.google.com/kubernetes-engine/docs/troubleshooting/ingress-health-checks
This was working fine before and though I understand the security issue with other endpoints I'm not to worried about health endpoints.... I don't see much wrong with those being public tbh and they are useful for external health-checks/ping from monitor tools. Is there a way to still have those endpoints in port 8080? Or is this all or nothing? Or is there some other way to set the readinessProbe? I seems google only cares for it if its on the same port.
Version
25 and 26
Regression
Expected behavior
Operator Deploy would work fine with GCE ingress after upgrade
Actual behavior
After upgrade ingress is not healthy and the service is not exposed.
How to Reproduce?
GCP and custom ingress resource (disable ingress in operator)
Sample ingress yaml
Anything else?
No response
All reactions