Skip to content
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

Using services for proxying traffic in the absense of Node.ExternalIP #407

Open
edwarnicke opened this issue Jan 17, 2023 · 2 comments
Open
Assignees
Labels
enhancement New feature or request

Comments

@edwarnicke
Copy link
Member

Currently, we use cmd-map-ip-k8s to generate a mapping of Node.InternalIPs to Node.ExternalIPs so that the nsmgr-proxy can translate between those IPs as traffic leaves/enters the cluster.

This works great for clusters setup with per-Node ExternalIPs. Sadly, this is not all Nodes.

For the case when Nodes do not have a Node.ExternalIPs, we do have the option of using Services.ExternalIP for the same purpose.

The lack of Node.ExternalIPs can be compensated for by creating a Service of type LoadBalancer for each Node and using Services without selectors to direct that Service to the Node.InternalIP.

This can be done in one of two ways:

  1. PreCreated - cmd-map-ip-k8s could create a Service for each Node in the cluster, and simply write out the mapping ConfigMap in the same way it does now
  2. OnDemand - cmd-map-ip-k8s could expose a simple service consumed by cmd-nsmgr-proxy that, on demand, would create a Service for each used IP (presumably a Node).

There are tradeoffs between these. PreCreated results in the lowest in-band latency. The downside of this is that it precreates a LoadBalancer Service per Node, which may incur costs for large clusters.

PreCreated is probably the easiest to start with, so we should probably start from there.

@denis-tingaikin
Copy link
Member

@edwarnicke These solutions have a problem with multi nodes clusters. There are our vip could be mapped to a few internal nodes IP. So I see only one solution for multi-cluster it's creating a service per Node. Thoughts?

@edwarnicke
Copy link
Member Author

I think we should go with a service per node.

@NikitaSkrynnik NikitaSkrynnik moved this from In Progress to Under review in Release v1.8.0 Feb 16, 2023
@denis-tingaikin denis-tingaikin moved this to Blocked in Release v1.9.0 Mar 21, 2023
@denis-tingaikin denis-tingaikin moved this from Blocked to Moved to next release in Release v1.9.0 May 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Moved to next release
Development

No branches or pull requests

2 participants