-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
BUG: --enable-dynamic-configuration=true doesn't work properly #2225
Comments
@ElvinEfendi ping |
@dcherniv this happens when the ingress controller starts? |
@dcherniv can you post the pod logs? |
It looks like the backends configuration don't get POSTed to the Lua endpoint successfully. Without any further logs my best guess is this is related to #2210 and fixed in that PR. tldr; is your pod probably has IPv6 enabled and therefore when controller sends POST request it gets blocked by Nginx(incorrectly). @dcherniv do you see "Unexpected error code: 403" in the logs? @aledbf do you have a temporal image that includes #2210? So that @dcherniv can try, otherwise I can provide one under my Docker account. |
I understand the error. I am trying to find out if this happens before the first sync of the configuration. |
I have the same issue with both 0.12 and latest master (0.346). Pods are IPv4 and the issue does not go away after waiting for some time (referring to the "first" sync). |
@aledbf I like that idea! I'll try to address it sometime this week. In the meantime it would be great to get more logs here. @mikksoone @dcherniv if you see the same issue even with the latest master please provide some more logs. Enable |
@aledbf @mikksoone |
@dcherniv have you tested with |
Logs from previous run, will try the --v2 later today.
|
@mikksoone the issue you're seeing seems to be different. When you test later today, please also set |
@ElvinEfendi Latest master image works for me.
|
I was hitting the same bug and I also confirm that it works with quay.io/aledbf/nginx-ingress-controller:0.346 |
curl localhost:18080/configuration/backends More logs:
|
Thanks for the logs @mikksoone!
this stands out in the logs. I see that Once this is confirmed we can discuss possible solutions. There are definitely a lot of redundant data we send to Lua, so we can eliminate a lot on controller part before POSTing the data. And on top of this in Lua land we can also make sure we read the request body from file when need to be. |
@ElvinEfendi what if we start adding items here #2231 so we know what it's missing? |
Yep, client_body_buffer_size: 1m fixes the issue. PS! Big thanks for the feature, our keepalives are now very happy. |
Using the image quay.io/aledbf/nginx-ingress-controller:0.346 and still have the problem here. I've an environment with some non existing services/backend (users misconfiguration) and also some non existing secrets.
|
@rikatz please provide more logs based on #2225 (comment) and #2225 (comment) |
Closing. Please update to 0.13.0 |
@aledbf @ElvinEfendi I was able to take a look into the posted JSON here, and it's somehow related also to buffer size as mentioned here The thing is that we have more than 700 Ingress Objects (and secrets, and services, and etc etc) and I don't think 10m is enough in this case. In PR #2309 there's a mention about I'll try anyway to change this buffer to something huge like 100m (hope this is enough) directly in nginx.tmpl and at least check if the dynamic reconfiguration works now. |
Setting this to 100m is not enough, although the whole JSON have 289k by now. After the JSON printed in the Log, there are the following log lines:
Are these SSL errors somehow related to dynamic reconfiguration? |
No |
@rikatz
I don't think this is configurable for that specific
this tells me 10m is not enough. We are working on a more general solution for this to make dynamic configuration to work even when Nginx can not buffer the whole payload in memory: Shopify#44 We will make upstream PR soon. In the meantime can you start ingress-nginx with |
@ElvinEfendi I did this and sent to @aledbf . Its size is 300k. Edit: The payload contains sensitive data, so I cannot publish it here. |
I keep getting the following error: unexpected error generating SSL certificate with full intermediate chain CA certs: Invalid certificate. The certificate seems perfectly fine when verified with ssllabs.com. What is the reason for invalid certificate warnings? If I can not fix it, is there a way to disable them? |
Having the same problem as @ahmettahasakar |
I figured it out. Some certificates don't support it apperantly. You need to set --enable-ssl-chain-completion = false . Then it stops |
Thanks @ahmettahasakar |
@ahmettahasakar @csabakollar can you give some more details about how these all related to |
It isn't. I saw @rikatz 's message and wrote my solution in case someone needs it. |
google took me here and I saw @ahmettahasakar is having the same problem... pure coincidence :) |
@rikatz could you test |
@ElvinEfendi ok, will try next week :) |
@ElvinEfendi Now that's working :) Tested with 0.14.0 Thanks guys for the great job. Will also test the resty-waf :D |
NGINX Ingress controller version:
0.12.0
Kubernetes version (use
kubectl version
):Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.5", GitCommit:"f01a2bf98249a4db383560443a59bed0c13575df", GitTreeState:"clean", BuildDate:"2018-03-19T15:59:24Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9+", GitVersion:"v1.9.2-gke.1", GitCommit:"4ce7af72d8d343ea2f7680348852db641ff573af", GitTreeState:"clean", BuildDate:"2018-01-31T22:30:55Z", GoVersion:"go1.9.2b4", Compiler:"gc", Platform:"linux/amd64"}
Environment:
GCP
Cloud provider or hardware configuration:
GCP
OS (e.g. from /etc/os-release):
container OS
Kernel (e.g.
uname -a
):Linux nginx-ingress-controller-85d657d99c-6z6p4 4.4.86+ Basic structure #1 SMP Thu Dec 7 20:11:11 PST 2017 x86_64 GNU/Linux
Install tools:
helm
Others:
n/a
What happened:
nginx lua backend.lua crashes
What you expected to happen:
nginx controller to work
How to reproduce it (as minimally and precisely as possible):
update image from 0.10.2 to 0.12.0
Run nginx with following options:
Anything else we need to know:
The text was updated successfully, but these errors were encountered: