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

Multi-network interface systems #222

Closed
lavalamp opened this issue Jun 24, 2014 · 4 comments
Closed

Multi-network interface systems #222

lavalamp opened this issue Jun 24, 2014 · 4 comments
Labels
kind/design Categorizes issue or PR as related to design. priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. sig/network Categorizes an issue or PR as relevant to SIG Network.

Comments

@lavalamp
Copy link
Member

In the case of a system with multiple network interfaces, how do we decide which interface to listen on? Is there value in letting users tell us directly?

From email to google-containers:

... Since my Docker hosts are multihomed, I need to specify the IP a port should be bind to. Given that I don't know the IP in advance, kubernetes would need to provide a way to specify the interface or network.

@smarterclayton
Copy link
Contributor

Should it be the interface, or an abstract network interface type? Are interfaces better represented by "internal, external, fast, private" or by "eth3" which might be different on every minion? Is it reasonable to expect all minions to have the same named interface?

@thockin
Copy link
Member

thockin commented Jun 25, 2014

There's a natural tension between people who want to schedule with some
understanding of the underlying hardware and people who want to schedule
abstractly.

IMO we should encourage the latter and discourage the former, but provide
escape hatches to do more "advanced" stuff. I don't think it will be the
normal case for people to want to bind to specific interfaces of the
machine. It should be possible, but I don't think it is the path with the
smoothest surface.

I acknowledge that this note was not helpful in deciding how to do it. :)

On Wed, Jun 25, 2014 at 8:12 AM, Clayton Coleman notifications@github.com
wrote:

Should it be the interface, or an abstract network interface type? Are
interfaces better represented by "internal, external, fast, private" or by
"eth3" which might be different on every minion? Is it reasonable to expect
all minions to have the same named interface?

Reply to this email directly or view it on GitHub
#222 (comment)
.

@smarterclayton
Copy link
Contributor

:) I strongly agree on the "encourage abstraction, allow escape hatch" duality here.

Some concrete use cases we've discussed in relation to selecting interfaces

  • Deploy a replicated service that wants to use a separate, "internal/private" network interface to route cluster traffic. I.e. mongodb in replica set mode, where the containers in the replica set want to communicate over a private network configured on a specific interface
  • As an app deployer, allow choosing to expose ports on an interface that is internal to the network/security group that minions are on, or alternatively expose it on an interface that is reachable by a larger network (other Kube clusters, intranet, internet)
  • As a Kube cluster admin, configure a loadbalancer/proxy (Kube proxy, HAProxy functioning in the same role) that is on a specific, reserved device on a set of machines. If the interface isn't available, that's likely to be an error condition (an input to scheduling)

It's also worth distinguishing between the cluster-owner and tenant-user roles - the former has access to make cluster wide decisions and configure minions in very specific ways, the latter only has access to options exposed by the Kubernetes API

@thockin
Copy link
Member

thockin commented Apr 1, 2015

This should be resolved with the new chooseHostInterface

@thockin thockin closed this as completed Apr 1, 2015
vishh added a commit to vishh/kubernetes that referenced this issue Apr 6, 2016
Prepare housekeeping interval to be dynamic.
wking pushed a commit to wking/kubernetes that referenced this issue Jul 21, 2020
pjh pushed a commit to pjh/kubernetes that referenced this issue Jan 31, 2022
linxiulei pushed a commit to linxiulei/kubernetes that referenced this issue Jan 18, 2024
Fix the spelling of monitor in the error message
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/design Categorizes issue or PR as related to design. priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. sig/network Categorizes an issue or PR as relevant to SIG Network.
Projects
None yet
Development

No branches or pull requests

6 participants