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

LoadBalancer support #2834

Closed
AmazingTurtle opened this issue May 23, 2018 · 16 comments
Closed

LoadBalancer support #2834

AmazingTurtle opened this issue May 23, 2018 · 16 comments
Assignees
Labels
area/networking networking issues kind/feature Categorizes issue or PR as related to a new feature.

Comments

@AmazingTurtle
Copy link

Regarding this issue here #384 I found there is a minikube service command. But this doesn't help.

I installed stable/openvpn using helm on minikube v0.25.2 (kubernetes v1.8.0): https://github.com/kubernetes/charts/tree/master/stable/openvpn

According to guides in the previous link there is a script to generate a client key (which needs a service ip to work).

$ kubectl get svc vpn-openvpn
NAME          TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
vpn-openvpn   LoadBalancer   10.99.53.147   <pending>     443:30822/TCP   18m

As you can see, the external ip is pending. What's the point of using minikube then, when you can only play around but not really use the important functionalities of k8s?

I don't want hacky workarounds, especially if it comes to larger scale deployments with multiple services - there has to be a solution.

This is a must-have-feature and I don't see why nobody seems to care a bit.

@dlorenc
Copy link
Contributor

dlorenc commented May 24, 2018

Thanks for getting this issue opened! This is something we're planning on working on soon in the doc you linked.

@elsonrodriguez
Copy link

@AmazingTurtle this is a hack, but I've updated this to work with newer versions of minikube:
https://github.com/elsonrodriguez/minikube-lb-patch

Basically just uses a route to make cluster-ips accessible, and then runs a small loop to assign all LoadBalancer IPs to ClusterIPs.

@andrewsav-bt
Copy link

@dlorenc so this referenced doc is "rotten" now. Does this mean that you are no longer planning working on it soon, as you mentioned earlier? Or do I misunderstand the lifecycle?

@tstromberg tstromberg added the kind/feature Categorizes issue or PR as related to a new feature. label Sep 19, 2018
@tstromberg
Copy link
Contributor

I believe balopat is working on this?

@tstromberg tstromberg added the area/networking networking issues label Sep 19, 2018
@bhack
Copy link

bhack commented Oct 1, 2018

@bhack
Copy link

bhack commented Oct 1, 2018

/cc @jcrossley3

@jcrossley3
Copy link

@bhack I actually found that workaround by following links referenced in this issue. :)

@bhack
Copy link

bhack commented Oct 1, 2018

Is the closure of the loop 😄. Is there any possible solutions.

@balopat
Copy link
Contributor

balopat commented Oct 1, 2018

@bhack minikube tunnel is based on the same principle as that workaround (creating a route + setting cluster IP as the ingress endpoint) just with more robust management for the routes and the IPs. Hopefully I can tackle all the comments soon and have it merged.

@bhack
Copy link

bhack commented Oct 2, 2018

@balopat Is there also a solution in minikube tunnel to use the coredns name resolution? i.e. with Traefik, but I think could involve other ingresses, from the official documentation with minikube you need to add every service hostname mapping in /etc/hosts.
So I'am guessing if minikube tunnel could solve something related to coredns with systemd-resolvconf on the host to let solve this hostnames. What do you think?

@AmazingTurtle
Copy link
Author

The temporary workaround does not work for windows. Can you provide an route add equivalent for windows that works? @bhack

@bhack
Copy link

bhack commented Oct 3, 2018

@AmazingTurtle I've not a windows machine but I think it is quite similar.

Another solution to resolve internal service names from the host: https://blog.heptio.com/configuring-your-linux-host-to-resolve-a-local-kubernetes-clusters-service-urls-a8c7bdb212a7

@bhack
Copy link

bhack commented Oct 3, 2018

@balopat With systemd-resolved we need to have a global set on the host like:

[Resolve]
DNS=<coredns ip>
Domains=~svc.cluster.local

If could have a dedicated virtual network interface for minkube we could assign this entry on that specific interface.

@balopat
Copy link
Contributor

balopat commented Oct 3, 2018

@AmazingTurtle have a look at this: https://github.com/kubernetes/minikube/blob/157eeeff2219afde6f085f515a5283476af6c280/docs/tunnel.md#windows

@bhack that does sound cool, but I didn't plan with that yet in the first version. It could be an interesting follow-up if we figure out a cross platform way for it and also managing /etc/resolv.conf, systemd-resolved seems like needs a bit more research to have a good UX. Maybe we could just document it in the output of minikube tunnel as a starter?

@bhack
Copy link

bhack commented Oct 4, 2018

@balopat I really don't know what is the status of interface costrained dns on Win and Mac.
For sure systemd resolved is the solution form Linux for x interface dns but with the default minikube start (with vm-driver=none) we don't have a dedicate interface (virtual or not) for minikube right?

@tstromberg tstromberg added this to In progress in Kanban Oct 30, 2018
@balopat
Copy link
Contributor

balopat commented Nov 6, 2018

I am going to close this, as minikube tunnel solves the <pending> part. @bhack we can open another issue for the automated DNS management and continue the discussion there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/networking networking issues kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

8 participants