-
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
High CPU consumption nginx-ingress-controller if the ingress object has a non-existent service specified. #12902
Comments
This issue is currently awaiting triage. If Ingress contributors determines this is a relevant issue, they will accept it by applying the The 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-sigs/prow repository. |
/remove-kind bug Using this annotation
with ssl-passthrough, is INVALID because the termination of TLS is in the backend pod so there is no "backend-protocol" to configure. Also you have to use the annotation "force-ssl-redirect", when you use ssl-passthrough. And you have to enable ssl-passthrough flag . |
Easy to reproduce on minikube
|
@anvpetrov thanks for the update. I am missing something here. So please explain why this project should allocate resources to a use case where you create a ingress resource but the ingress backend configured is not existing in the namespace. We don't support this use-case in the code and there are no e2e tests to cover this use case. Personally I think the admission controller will block creating the ingress if the backend is not existing but that is a different topci completely. Or am I not understandng the problem at all ? |
The problem is also reproduced if the service was created and later deleted. Ingress controller is very often used by several teams, and it is likely that the service may be deleted without ingress being cleaned up. |
The project does not have resources like developer time. So we have announced that we will focus on the core Ingress-API feature and Security. Hence it is expected that if service/workload is deleted then its related ingress also is deleted. Not deleting ingress but deleting the service/workload configured in the ingress, can not be a VALID use case for the project to do research and development on. So this is not a bug. In case you want to discuss more, you can start a thread in the slack dev channel for the controller. You can also join the monthly community meeting. Wait for comments from others. I think that your use may be really a practical use-case . But the project has to choose what is directly related to K8S Ingress-API and what is a special feature. This is because there is lack of developers to work on such features and maintain/support such features. |
When setup nginx ingress controller(latest version) with --enable-ssl-passthrough flag , and create ingress object with annotations:
and specify fake service name (we will specify a service that does not exist).
It is enough to call ingress once via curl and the nginx-ingress-controller processes will dramatically increase PROCESSOR consumption.
curl -vk --resolve test.com:443:INGRESS_IP https://test.com/
in the network dump, we see thousands of requests per second to 127.0.0.1:443
The text was updated successfully, but these errors were encountered: