-
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
Should ingress controller automatically combine Ingress objects #1539
Comments
This behavior is present since the first commit in November 2015 (kubernetes-retired/contrib#280). |
Thanks @aledbf ! I understand the logic that LB are costly. But I also think that there is not a clear indication what is the intended behavior from https://kubernetes.io/docs/concepts/services-networking/ingress/ . Reasons why we think one LB (GCE L7 / nginx / haproxy) per Ingress is a better choice:
|
You can do that with nginx and using the ingress.class annotation. With your approach I don't have that option
Why? With your approach we cannot expose in one domain multiple services in different paths.
Agree, the order is important. That is why we sort the ingress by revision and build the paths in inverse order. In case of collissions, first create rule wins and the overlap is logged.
Same thing with the nginx approach, users can choose how the want to scale and expose. |
My understanding of
Yes you can. Here is an example:
We have received some requests where users want to do more than just prefix match. That will be hard to auto merge.
It might be a minor thing. But it is little odd to get LB scaled up and only some of the backend pods to be scaled. |
@aledbf , one thing I forgot to mention was that recently we have received user requests, where users want to just apply annotation on a Service for some Ingress and have that service exposed by that Ingress. |
I think this discussion shows the need for greater specification of the Ingress API/implementation. This is a common pain point for us in https://github.com/jetstack/kube-lego and https://github.com/jetstack-experimental/cert-manager. Could this be solved through a library being built that ingress controllers can vendor/include (similar to k8s.io/apiserver, or github.com/kubernetes-incubator/external-storage). I thought that was the purpose of the old github.com/kubernetes/ingress repository personally, and had high hopes for some standardisation coming about! If we cannot create some form of library to be based upon, I'd suggest this operating mode be some how toggle-able between ingresses, or perhaps between instances of an ingress controller (so a user could choose one or the other through specification of the ingress class). Both sides have reasonable use cases, and I think both modes of operation should be possible. There has been some related discussion on standardising Ingress here: #555. We should pick this back up as it's been a longstanding issue with Ingress. /cc @nicksardo @bowei @freehan from the GCE side |
Closing. This discussion escapes one implementation. |
Various Ingress controller behave differently regarding whether separate Ingress object will result in separate LoadBalancer.
This has implication how users expect Kubernetes Ingress to work. I would like to get some clarification on what should be the model.
@thockin @aledbf @bprashanth
The text was updated successfully, but these errors were encountered: