Zero to JupyterHub with Kubernetes#

JupyterHub allows users to interact with a computing environment through a webpage. As most devices have access to a web browser, JupyterHub makes it is easy to provide and standardize the computing environment for a group of people (e.g., for a class of students or an analytics team).

This project will help you set up your own JupyterHub on a cloud/on-prem k8s environment and leverage its scalable nature to support a large group of users. Thanks to Kubernetes, we are not tied to a specific cloud provider.

Note

This project is under active development so information and tools may change. You can be a part of this change! If you see anything that is incorrect or have any questions, feel free to post on the community Discourse forum or reach out in the Gitter chat or create an issue at the issues page. If you have tips or deployments that you would like to share, see the Community Resources section.

This documentation is for Helm chart version 4.0.0-0.dev.git.138.h935283f that deploys JupyterHub version 5.2.1 and other components versioned in hub/images/requirements.txt. The Helm chart requires Kubernetes version >=1.28.0 and Helm >=3.5.

What To Expect#

This guide will help you deploy and customize your own JupyterHub on a cloud. While doing this, you will gain valuable experience with:

  • A cloud provider such as Google Cloud, Microsoft Azure, Amazon EC2, IBM Cloud…

  • Kubernetes to manage resources on the cloud

  • Helm v3 to configure and control the packaged JupyterHub installation

  • JupyterHub to give users access to a Jupyter computing environment

  • A terminal interface on some operating system

It’s also possible you end up getting some experience with:

Note

For a more elaborate introduction to the tools and services that JupyterHub depends upon, see our page about that.

Setup Kubernetes#

This section describes a how to setup a Kubernetes cluster on a selection of cloud providers and environments, as well as initialize Helm, a Kubernetes package manager, to work with it.

Setup JupyterHub#

This tutorial starts from Step Zero: Your Kubernetes cluster and describes the steps needed for you to create a complete initial JupyterHub deployment. Please ensure you have a working installation of Kubernetes and Helm before proceeding with this section.

JupyterHub can be configured and customized to fit a variety of deployment requirements. If you would like to expand JupyterHub, customize its setup, increase the computational resources available for users, or change authentication services, this guide will walk you through the steps. See the Configuration Reference for a list of frequently used configurable helm chart fields.

Administrator Guide#

This section provides information on managing and maintaining a staging or production deployment of JupyterHub. It has considerations for managing cloud-based deployments and tips for maintaining your deployment.

Resources#

This section holds all the references and resources that helped make this project what it is today.

Community Resources#

This section gives the community a space to provide information on setting up, managing, and maintaining JupyterHub.

Note

We recognize that Kubernetes has many deployment options. As a project team with limited resources to provide end user support, we rely on community members to share their collective Kubernetes knowledge and JupyterHub experiences.

Contributing

If you would like to help improve this guide or Helm chart, please see the issues page as well as the contributor guide.

We hope that you will use this section to share deployments with on a variety of infrastructure and for different use cases. There is also a community maintained list of users of this Guide and the JupyterHub Helm Chart.

Institutional support#

This guide and the associated helm chart would not be possible without the amazing institutional support from the following organizations (and the organizations that support them!)

Changelog#

This section holds describes the changes between versions and how to upgrade between them.