JupyterHub is a production-grade system delivered by the Jupyter team to provide Jupyter Notebooks to multiple users through a single web application. It handles authentication, spawns the Jupyter Notebook application for each users and takes care of proxying it back to the user. JupyterHub provides access to remote computing resources and a custom software environment with the only requirement of a web browser and an internet connection. It can be deployed for users of a Science Gateway, attendees of workshops or tutorials, students in classes or scientists in scientific collaborations. Supplying enough computational resources for any non-trivial number of users requires a distributed setup, which quickly becomes a hurdle to configure and manage. The Jupyter team relies on Kubernetes to deploy JupyterHub at scale and provides a recipe to simplify the deployment on cloud providers named Zero-to-Jupyterhub. The most suitable resource within XSEDE for this task is Jetstream, the Openstack deployment at Indiana University and Texas Advanced Computing Center, which offers many of the features that public cloud providers like Amazon and Google do. In this paper we will present two different strategies to deploy Kubernetes on Jetstream, either using the kubespray tool or using the dedicated Openstack facility, Magnum. Then we will show how to leverage the Zero-to-JupyterHub recipe to install JupyterHub, configure it and customize it further.
OSF does not support the use of Internet Explorer. For optimal performance, please switch to another browser.