You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
91.XX.YY.ZZ is the public ip address of the worker node where the nginx pod is running.
Additional context
In https://github.com/uselagoon/lagoon-images/blob/main/images/nginx/nginx.conf the /nginx_status location is limited to localhost and RFC1918 addresses, however on our servers the Kubelet seems to be using the node's public ip for readiness probes. As this is a managed service it is not possible for us to limit the addresses the Kubelet binds to.
I don't think ingress is related to the problem though. Health checks by the kubelet bypass ingress as they need to work for pods that are not exposed outside the cluster as well.
And of course there is no traffic forwarded by the ingress controller as the pod is never becoming ready.
The problem is that the kubelet is running these health checks from an ip address that nginx considers off-limits for /nginx_status.
I see three possible solutions:
globally allow access to /nginx_status (not good as it is bad practice to allow external access to this information)
force the kubelet somehow to use the internal node ip for health checks which "happens" to be with in the allowed range (this wouldn't work on a cluster without private node ips)
use a different (globally allowed) endpoint for health checks
Describe the bug
We are currently in the process of evaluating lagoon, but are facing an issue with readinessProbes in nginx
To Reproduce
Steps to reproduce the behavior:
Logs
91.XX.YY.ZZ
is the public ip address of the worker node where the nginx pod is running.Additional context
In https://github.com/uselagoon/lagoon-images/blob/main/images/nginx/nginx.conf the
/nginx_status
location is limited to localhost and RFC1918 addresses, however on our servers the Kubelet seems to be using the node's public ip for readiness probes. As this is a managed service it is not possible for us to limit the addresses the Kubelet binds to.Is this even the correct check endpoint?
Also, is it even correct that the deployment tries to use
/nginx_status
for readinessProbes (and livenessProbes)? Shouldn't it use/.lagoonhealthz
that was especially defined for the purpose?https://github.com/uselagoon/lagoon-images/tree/main/images/nginx/healthcheck
The text was updated successfully, but these errors were encountered: