-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Load balancer external-ip pending #411
Comments
kind does not support type=LoadBalancer currently, load balancers are cloud provider specific. see #99 for some discussion around this. |
thanks @BenTheElder |
@BenTheElder should we create a kind load balancer? seems a nice and funny project |
@aojea I agree. It would be pretty interesting if we could test novel load balancers in our own desktop. Besides, some distributed machine learning infrastructure, e.g., kubeflow, require an external load balancer to work with. |
You can deploy a loadbalancer with kind of course, but the integrated Kubernetes object is typically only supported "in the cloud" and Kubernetes does not ship one. On docker for Mac in particular this is not quite so trivial. Kubeflow should be able to work fine with something like a nodePort or an ingress, I will speak to them. |
For others who stumble upon this (as I did), I've had nice success using Inlets to get a public IP for LoadBalancer services. |
f you are not using GCE or EKS (you used kubeadm) you can add an externalIPs spec to your service YAML. You can use the IP associated with your node's primary interface such as eth0. You can then access the service externally, using the external IP of the node. ...
|
On linux you can deploy metallb, but on mac / windows docker containers are not reachable from the host (only via a special port forwarding mechanism). |
Docker Desktop on macOS users can use TunTap with MetalLB. Here's an example that feedback shows still works on macOS as of at least Catalina: https:/AlmirKadric-Published/docker-tuntap-osx I've also seen some interesting solutions using |
see #1961, which also brings up tuntap. |
The k3d "loadbalancer" implementation (1) is more or less the same thing KIND is doing is doing in HA mode. You still need to manually specify port mapping at cluster creation time, which is more or less analagous to https://kind.sigs.k8s.io/docs/user/configuration/#extra-port-mappings Without something like tuntap there isn't a good way to have arbitrary mappings at runtime on mac / windows, since the containers are just not routable (only the port forwarding, which is some vpnkit magic specific to proxying ports). On linux you can just deploy metallb and move on. Metallb CI uses kind. But then any developers on mac / windows are pretty SOL. |
I found a good tutorial for getting |
I haven't had a chance to try this yet myself but it looks good! Previously #1961 (comment), also reached out to OP on twitter 😅 https://twitter.com/Codydearkland/status/1334946807202238464?s=19 🧵 I think at the very least this option needs to be referenced in our docs #1961 |
Co-authored-by: Marta Lopez <[email protected]> Co-authored-by: stg <[email protected]>
I deploy the same deployment and expose it via the same
kubectl expose deployment supervisor-deployment --type=LoadBalancer --name=supervisor-service
command, in docker-desktop, a service is created successfully with external-ip assigned, but in kubernetes-admin@kind cluster, the service is created with external-ip pending forever.here is the output from kubectl get svc on docker-desktop:
supervisor-service LoadBalancer 10.100.184.32 localhost 9090:31778/TCP 13s
while the kind cluster:
supervisor-service LoadBalancer 10.111.158.50 <pending> 9090:31054/TCP 16m
The text was updated successfully, but these errors were encountered: