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

Comments

Projects
8 participants
@AmazingTurtle
Copy link

commented May 23, 2018

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

This comment has been minimized.

Copy link
Contributor

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

This comment has been minimized.

Copy link

commented Jun 13, 2018

@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-datacom

This comment has been minimized.

Copy link

commented Aug 1, 2018

@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

This comment has been minimized.

Copy link
Contributor

commented Sep 19, 2018

I believe balopat is working on this?

@bhack

This comment has been minimized.

@bhack

This comment has been minimized.

Copy link

commented Oct 1, 2018

@jcrossley3

This comment has been minimized.

Copy link

commented Oct 1, 2018

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

@bhack

This comment has been minimized.

Copy link

commented Oct 1, 2018

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

@balopat

This comment has been minimized.

Copy link
Contributor

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link
Author

commented Oct 2, 2018

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

@bhack

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link
Contributor

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link
Contributor

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.

@balopat balopat closed this Nov 6, 2018

Kanban automation moved this from In progress to Done Nov 6, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.