Giter Site home page Giter Site logo

Comments (9)

minrk avatar minrk commented on June 3, 2024 2

Sounds like a really good idea, especially the not-making-you-do-everything part!

Question about ips: Right now, as I understand it the IP is the load-balancer IP. Can we update that to point to another cluster without updating it at the DNS level? Or do we need an additional layer of indirection that we don't yet have in order to accomplish that?

from mybinder.org-deploy.

yuvipanda avatar yuvipanda commented on June 3, 2024 1

@betatim not sure. I think we should treat the LoadBalancer that Kubernetes has provisioned as 'owned' by Kubernetes and try not to fitz with it directly in Google Cloud console. I am pretty sure that'll just get overwritten silently at some point.

from mybinder.org-deploy.

betatim avatar betatim commented on June 3, 2024 1

For sure not suggesting fiddling around through the UI. You'd have to set up things through the helm chart. I just noticed it while browsing around which is my way of discovering what is out there ;)

from mybinder.org-deploy.

yuvipanda avatar yuvipanda commented on June 3, 2024

Ideally someone else not me would do all this :D I think that'd be a great way to build operational capacity in the team/community, and it'll also be a lot of fun/learning for the person doing it!

from mybinder.org-deploy.

betatim avatar betatim commented on June 3, 2024

I'd help with that. (1) and (2) look like things I already know how to do, (3) I'd appreciate a pointer as all the docs I've read so far don't mention static IPs (I'll start by sniffing around the cloud console).

from mybinder.org-deploy.

betatim avatar betatim commented on June 3, 2024

Notes from poking around: the load balancer is an Ingress, it knows where to point to because of the backend configuration in the helm chart of binderhub.

This means each binderhub deployment/cluster has one of these ingress controllers/load balancers. I don't think we could point the ingress of prod-a to the service called binder in a cluster called prod-b. Also weird because you are mixing things together.

So right now I'm thinking like Min that we need another Ingress/LB in front of the LB for prod-a and prod-b.

from mybinder.org-deploy.

yuvipanda avatar yuvipanda commented on June 3, 2024

Ideally, we would have another Cloud Load Balancer from Google Cloud of some sort that gives us an IP we can switch between the lb IPs of prod-a and prod-b. However, from a cursory look it looks like it isn't possible to get a Cloud Load Balancer that lets you switch between two IPs, rather than two instance groups? Hopefully I had just missed something, and this feature exists in there somewhere... If so, we should use it :D

The alternative (and what I did for switching between prod and prod-a):

  1. "Release" the static IP from its current configuration (I did this by deleting the svc in prod, but there is probably a gcloud way to do this). This keeps the IP still in our project (since we've 'reserved' it) but available for use by other kubernetes clusters.
  2. Deploy the helm chart to prod-a, including the nginx-ingress IP configuration

This is more error prone, but still decent.

The option I'd like us to not do is to have another series of servers whose job it is to do the load balancing. While easy, this just kicks the 'cold spare / switching' can down the road to another set of servers...

Thanks a lot for taking this up, @betatim and @minrk!

from mybinder.org-deploy.

betatim avatar betatim commented on June 3, 2024

If you click on "edit config" for the load balancer in the cloud console you see the following:
screen shot 2017-11-13 at 23 04 25

So maybe we can use that to configure a fail over? One thing we'd have to understand is why the current LB thinks that two of the three nodes in the prod-a cluster are "unhealthy".

from mybinder.org-deploy.

yuvipanda avatar yuvipanda commented on June 3, 2024

We have federation now.

from mybinder.org-deploy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.