Self pod discovery does not respect pod terminating state #10681
Labels
needs-kind
Indicates a PR lacks a `kind/foo` label and requires one.
needs-priority
needs-triage
Indicates an issue or PR lacks a `triage/foo` label and requires one.
triage/needs-information
Indicates an issue needs more information in order to work on it.
What happened:
With disabled publishService and used pod self-discovery of Node IP.
With more than one ingress-nginx pod in Deployment or DaemonSet.
While updating or if you manually delete the pod. While terminating pod will not be removed from ingress LoadBalancer status.
With current lifecycle hook
/wait-shutdown
controller will stop answer "ready" status and forwarded signal will stop Nginx.So pod effectively will answer connection refused and NotReady.
If you try duct tape that behavior, with LifeCycle preStop hook like
sleep 120
, that will not work. Pod will be in Terminating & Ready state, so it still be in Ingress LoadBalancer status.What you expected to happen:
Pod statuses are correctly handled.
Issue is here.
Controller only checks pod conditions, but Terminating state is special.
Correctly it must be handled like:
external-dns patch
How to reproduce this issue:
Deploy ingress-nginx helm:
Remove any pod or trigger
kubectl -n ingress-nginx rollout restart deployment ingress-nginx-controller
Example ingress:
The text was updated successfully, but these errors were encountered: