-
Notifications
You must be signed in to change notification settings - Fork 29
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
LoadBalancer Service with multiple ports creates multiple Virtual Services #52
Comments
Correction to the previous, this does work from a public standpoint as DNAT rules for the same public IP are setup to point to the individual L4 services. |
@an0nz your analysis is correct. However this was a deliberate design aspect that one service should not overwhelm the other service and there must be some amount of isolation between the two. Do you think there should be a flag to gate this, so that the users could choose to have one Virtual service for all of the services in one ingress? |
@an0nz currently VCD does not support single virtual service with multiple ports and load balancers on a Basic Avi license. This will get added as soon as the feature is added into VCD. I will convert this into an enhancement request. |
@an0nz, a commit was recently added by @ltimothy7 which would allow one to use a single IP address and multiple virtual services. So there would be no DNAT rule and the same VIP would be used across multiple virtual services. This needs VCD 10.4.0 + which is to be released shortly. Would that satisfy your requirement? |
@arunmk, thanks for the update this will work nicely to avoid DNAT, it sounds like this still uses multiple Virtual Services which will result in twice the number of VM’s needed to run NSX-ALB service engines as most load balancer use cases we see are HTTP/HTTPS if you could put both on the same VS that would be ideal. |
Thank you @an0nz; using the same VS for HTTP/HTTPS is not currently planned, but we have it on our list of features to look into. We will keep this thread updated with any plans |
Signed-off-by: ltimothy7 <[email protected]>
Describe the bug
When you create a LoadBalancer service in k8s with multiple ports such as below this generates multiple virtual services in Cloud Director instead of a single virtual service with multiple ports.
Results in the following virtual services being added to vCD
From the vCD UI you cannot add multiple ports either other than using a range in the TCP Proxy field such as 80-443.
However multiple ports do seem to work as if you edit the Virtual Service in NSX-ALB adding the additional port this is displayed correctly in vCD where another TCP Proxy appears with an x to delete it and it can be modified and saved, the UI just doesn't look to have a button for adding additional TCP Proxy ports at this time but the API seems to function correctly.
The API call vCD does to retrieve and display multiple ports has the following structure for servicePorts
When I try to edit the port in vCD though the API returns an error stating
Edge Gateway k8s-edge can have multiple service ports only with additional licensing. Please contact your service provider.
None of this makes exact sense as AVI seems to support multiple ports under the license however vCD rejects you when you edit it so maybe this is not possible.
Reproduction steps
Expected behavior
A single virtual service with multiple L4 ports is created, instead of multiple services.
Additional context
It seems like a fairly fundamental feature for a single IP to be able to listen on multiple ports, especially when talking about HTTP and HTTPS as these cannot be on different IP addresses else a website may not work correctly.
The text was updated successfully, but these errors were encountered: