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

AWS ELB uses DNS names, can't return an IP from CreateTCPLoadBalancer #5224

Closed
justinsb opened this issue Mar 10, 2015 · 2 comments
Closed
Labels
priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.

Comments

@justinsb
Copy link
Member

AWS ELB produces an external endpoint which is not an IP address, but is instead a DNS name (e.g. myLB-1234567890.us-east-1.elb.amazonaws.com); more info here http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/using-domain-names-with-elb.html

This is because (under the covers) ELB assigns multiple IP addresses, and it changes the IP addresses dynamically (e.g. in response to load).

Users must then either cname the name (which doesn't work for the apex, so www.foo.com is OK, foo.com is not). Or they can move their domain to Route53, which is ELB aware.

To make AWS ELB work, I think we have two choices:

  1. We could change the return type of CreateTCPLoadBalancer from (net.IP, error) to (string, error). string would either be an IP address or a hostname. We could do something strongly typed, but I don't think this is necessary.

  2. We could change things around so that we manage DNS as well, so that Kubernetes makes the mapping completely automatic.

Option 2 is a huge change, so I'm going to explore option 1 first.

justinsb added a commit to justinsb/kubernetes that referenced this issue Mar 10, 2015
Some load balancers (particularly AWS ELB) define the public endpoint
as a hostname (instead of using IP addresses).

This is a partial fix for kubernetes#5224; there will also be some proxy work.
@justinsb justinsb changed the title AWS ELB uses hosts, can't return an IP from CreateTCPLoadBalancer AWS ELB uses DNS names, can't return an IP from CreateTCPLoadBalancer Mar 10, 2015
@alex-mohr alex-mohr added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Mar 10, 2015
akram pushed a commit to akram/kubernetes that referenced this issue Apr 7, 2015
Some load balancers (particularly AWS ELB) define the public endpoint
as a hostname (instead of using IP addresses).

This is a partial fix for kubernetes#5224; there will also be some proxy work.
@benmccann
Copy link

@justinsb looks like you implemented option #1 in #5228. should we close this issue now?

@justinsb
Copy link
Member Author

Yes, I believe this is fully implemented now (although we haven't merged ELB support itself quite yet). Closing - thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
None yet
Development

No branches or pull requests

4 participants