-
Notifications
You must be signed in to change notification settings - Fork 14
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 balancing #45
Comments
I don't understand how MetalLB can work in Openstack, it says you need to assign a range of IPs to MetalLB that can be assigned to services, but if I point a bunch of Openstack floating IPs to 1 node, and then MetalLB hands them out to services, the problem is that if that node goes down, there is no way to tell Openstack to redirect those IP to another node. So it seems it is only a convenience to have services automatically published outside but we don't gain any resiliency. |
So I would return to my initial idea of having 1 machine outside of Kubernetes to be a load balancer, so the idea would be to have a single node run only This So now we don't have a single point of failure (except the the |
For HTTPS we can start with pass-through and have the NGINX ingress and Kuberentes letsencrypt service handle it. |
@julienchastang do you think a load balancer would be useful for your deployments? or not worth the extra effort? |
In practice, the problems I have encountered have mostly been with volumes:
There have also been LDAP problems at TACC affecting IU. That is what I need the most help with. Not sure if loadbalancers address those problems. |
thanks @julienchastang, no, a load balancer is not of any help with that |
Hi, As mentioned in #43 I deploy a separate VM to act as a reverse proxy for the JupyterHub deployment on Kubernetes with Magnum on the same OpenStack project/VLAN. At the moment this is the simplest reverse proxy configuration, and I haven't configured load balancing yet. On the reverse proxy VM I follow the official documentation: https://jupyterhub.readthedocs.io/en/stable/reference/config-proxy.html I deploy a VM with Ubuntu 20.04 and Apache with:
On the kubernetes cluster, the
A floating IP is assigned to the reverse proxy VM, and an SSL certificate has also been configured. In terms of load balancing, I would follow steps in http://httpd.apache.org/docs/2.4/mod/mod_proxy_balancer.html but this would be an static configuration not accounting for autoscaling in kubernetes. I hope that helps. Best regards, |
thanks @sebastian-luna-valero, the pointer to the JupyterHub docs is really useful! Another option where this could be useful, in theory is if we want to have on the same domain both JupyterHub and another website, so the reverse proxy could serve both. Anyway it seems it would be just easier in this case to have 2 subdomains, so that 1 only points to JupyterHub/Kubernetes. |
we might have Octavia deployed to Jetstream 2 soon! |
Octavia has been available for a while, https://docs.jetstream-cloud.org/general/octavia/ |
The last version of Kubespray has support for MetalLB, which is a Kubernetes service which can provide a load-balancing service without relying on cloud providers.
This would allow the deployment to be more resilient in case the master node which has the NGINX service and which is now a single point of failure.
For larger deployments which need to be more resilient this would be really nice to implement.
References:
The text was updated successfully, but these errors were encountered: