-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
Canary ingress having the same version backend service with main ingress causes 503 service unavailable (when in the same namespace) #3952
Comments
Yeah this is not good - patches are welcome :) Otherwise we will address it sometime later. |
Just to add some confirmation/information here that may be helpful (I'm still fully troubleshooting a slightly different problem, but I believe it's related): It appears to me that the canary settings are tied to the upstream/backend that they use, and the first ingress rule that generates the upstream's code will "win" in defining the upstream. This prevents you from utilizing the same backend for multiple ingresses with any one of them using canary (since the upstream will be created without the canary trafficshaping settings) but conversely, I imagine if the canary created the upstream first, you might inadvertently propagate trafficshaping rules to non-canary things. (I haven't confirmed that yet, just seems logical). I don't know if there's a fix unless there was a separate "canary" upstream created for canary things, but I also haven't looked far enough into the code to know if that's appropriate. Hopefully this information is useful for others, or in investigating this further. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT
NGINX Ingress controller version:
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.23.0
Kubernetes version (use
kubectl version
):Environment:
uname -a
):What happened:
When configuring a canary ingress(weight, header or cookie) in the same namespace with the main ingress, if the canary ingress has the same backend service with the main ingress, the controller responds with 100% 503 service unavailable for the configured ingress path.
What you expected to happen:
Though normally we should have different version of service for canary ingresses, but having the same service with main ingress should not cause 503 responses.
How to reproduce it (as minimally and precisely as possible):
The two ingresses are in the same namespace:
The main ingress:
The
http-svc-canary
ingress is in the same namespace ashttp-svc
ingress, and it has the same backend service with main ingress:After
echo.com
has been pointed to the controller ip in/etc/hosts
:The
http-svc
yaml:Anything else we need to know:
The text was updated successfully, but these errors were encountered: