Hi I try to use custom health check with GCP LoadBalancer.
I have added readinessProbe
& livenessProbe
like this:
readinessProbe:
httpGet:
path: /health
port: dash
initialDelaySeconds: 5
periodSeconds: 1
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 10
livenessProbe:
httpGet:
path: /health
port: dash
initialDelaySeconds: 5
periodSeconds: 1
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 10
But when I create my ingress I haven't got my custom health check
I FINALIZED an answer. What I was trying to do was impossible. My GCE Ingress used a backend on port 80
. But in my ReadinessProbe I told him to check on port 8080
and on the /health
path. This is impossible!
The port of the service declared in the Ingress backend must be the same as that declared in the readinessProbe
. Only the path can be different. If we do not respect this pattern, it is /
that is associated with the Health Check GCP path.
From a network point of view this is logical, the Health Check GCP is "out" of the Kube cluster, if we tell it to route on port 80
but our ReadinessProbe
is on another port, how it can ensure that even if the port associated with the ReadinessProbe meets port 80
(which is the one on which it must route traffic) also respond.
In summary, the port of the backend declared in Ingress must have a readinessProbe
on the same port. The only thing we can customize is the path.