Chart creates two load balancers

I followed the instructions to install binderhub. I use kubeadm on a local server. After the installation I got two load balancer pods, both exposing the same port

NAME           TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
proxy-api      ClusterIP    <none>          8001/TCP       10m
hub            ClusterIP   <none>          8081/TCP       10m
binder         LoadBalancer    XXX   80:30915/TCP   10m
proxy-public   LoadBalancer    XXX   80:30953/TCP   10m

Is this the intended result?

That sounds correct. BinderHub (binder service in your output) handles the building of user environments, before handing over to JupyterHub (proxy-public service in your output) to launch and manage the pod after it’s built, so they can be on different domains.

If you want them on the same domain you could look into setting up an ingress instead.

1 Like

But, how can both bind port 80 to the same external ip? I’d expect binderhub listening on the external ip and port 80 and handing over to jupyter using at different port or a different ip.

That’s the usual setup. However since they’re both HTTP services you can setup a Kubernetes ingress under a single domain and route traffic to the two services based on a URL path prefix. This is obviously a more advanced setup, so in general it’s best to stick with the default.

1 Like