-
Notifications
You must be signed in to change notification settings - Fork 38.7k
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
Scaling clusters: 1000's of services in env vars #3345
Comments
If we move env-var generation down to kubelet, this is less awful :) |
My preferred solution is to eliminate the env vars. :-) That would also eliminate start-up-order dependencies (assuming clients could tolerate DNS lookup failures). I think even Docker buys that links aren't an acceptable long-term approach. Barring that, segmentation by namespace seems like it should work if people use namespaces as intended. We can reconsider predeclaration if neither of those approaches work. Didn't @erictune already move the env-var generation to kubelet? Note that we'll have scaling problems with iptables rules, too. |
I tried to measure the impact of O(thousands) of iptables rules, but could On Thu, Jan 8, 2015 at 5:05 PM, bgrant0607 notifications@github.com wrote:
|
Now that we have DNS, I think it's reasonable to consider deprecating the On Thu, Jan 8, 2015 at 7:58 PM, Tim Hockin notifications@github.com wrote:
|
Docker's networking proposal (Docker issue 9983 -- not linked to avoid noise on that issue) confirms that links will be deprecated in favor or "network-based discovery". |
@pmorie - fyi |
@lavalamp @bgrant0607 @thockin @derekwaynecarr I think predeclaration should be possible but you should also be able to opt out of it and get metadata / firewall rules for all visible services in your namespace |
Also note that before we get rid of env vars, we have to solve a bootstrapping problem-- env vars are how SkyDNS knows where to find k8s master. |
Bootstrapping could be resolved by the downward API #386, or by creating a magic link-local address for the master. |
@lavalamp regarding the skydns use case, I think there's an orthogonal use-case to envs that exists, which is being able to state that a pod shouldn't start unless some services it depends on are ready. |
Services could later go down. Clients need to handle that. So there is
|
I agree unavailable dependencies need to be handled on the client. |
We definitely need to segment by namespace. We've also basically settled on predeclaration for people who want env. vars.: #1768. |
Clearly you ought to be able to make more services in a k8s cluster than it is reasonable to pass to pods in env vars.
Possible solutions:
@bgrant0607 I know you hate env vars; do you have a preferred solution for this?
The text was updated successfully, but these errors were encountered: