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

Setup an easy way for local development that uses a multi node kubernets cluster #137

Open
yuvipanda opened this issue Sep 28, 2017 · 3 comments

Comments

@yuvipanda
Copy link
Collaborator

Right now, development happens mostly with minikube. This has a couple of differences from production:

  1. Build host & run host are always the same, so it's much quicker than production
  2. We don't use an image registry, so any bugs around that will be uncaught.

Locally developing binderhub only requires the following:

  1. Access to a .kube/config file that knows how to connect to a kubernetes cluster
  2. An appropriately configured JupyterHub

The easiest way to accomplish these is to have a 'dev' kubernetes cluster that's small, often destroyed, and has the following structure:

  1. We give access to it liberally
  2. Each person gets their own namespace to play with
  3. We also have a central docker image repository with namespaces for each person

This also makes testing quicker, since the network over at GKE is probably faster than local computer networks (at least for those of us still in the land of the free). It shouldn't be too expensive either, and we can probably do this soon.

@yuvipanda
Copy link
Collaborator Author

Another option is to investigate https://www.telepresence.io/

@richarddli
Copy link

(I work with the Telepresence team, and am not familiar with Jupyter and how it works). Hopefully the below info is helpful:

  • Telepresence code a service locally, while proxying that service to a remote K8S cluster. So if for dev you need to run multiple different services in a K8S cluster but want to use, say, the Flask auto reload functionality, Telepresence works well.
  • Telepresence doesn't alleviate the need to have a deployment system that builds your Docker image, pushes it to a repo, does a kubectl apply, etc. Given that you're in minikube, I'm guessing that you already have such a system. If not, you might want to look at https://forge.sh.

If there are specific enhancements or support you need if you want to try this, please feel free to hop on our Gitter (https://gitter.im/datawire/telepresence).

@manics
Copy link
Member

manics commented Sep 20, 2021

Is this a suitable alternative #1318 ?
... now that I've read the issue properly it's obviously not 😄 Do you want to keep this open anyway?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants