JupyterHub is a multi-user server for Jupyter notebooks, providing a collaborative environment for data science, machine learning, and scientific computing. This Kubernetes-compatible application includes PyTorch, a popular deep learning framework, and CUDA support for GPU acceleration. JupyterHub allows organizations to serve computational environments to multiple users, making it ideal for teams, academic courses, and research labs. PyTorch enables efficient tensor computations and dynamic neural networks, while CUDA support leverages NVIDIA GPUs for accelerated computing. You can deploy JupyterHub with PyTorch and CUDA in your Nebius AI Managed Service for Kubernetes clusters using this Marketplace product.
Prepare the environment: create a Kubernetes cluster and a node group in it. Each node in the group should have at least 8 GB of RAM.
Install and configure the product:
-
Click the button in this card to go to the cluster selection form.
-
Select the folder and the cluster, and click Continue.
-
Configure the application:
-
Namespace: Select a namespace or create a new one.
-
Application name: Enter an application name.
-
Storage capacity: Specify a disk size for a notebook server. One user can only have one server and each server has one disk of the specified size. Disks are persistent between restarts: if you start working in one notebook and then switch to another, your work will still be there. Disks do not scale up automatically, so enter a size sufficient for your needs.
-
JupyterHub accessibility: Select a way to access the JupyterHub cluster:
- ClusterIP for access by port-forwarding.
- LoadBalancer for access from the Internet by IP or by port-forwarding.
Warning
LoadBalancer uses one IP address from the Number of public IP addresses per cloud quota.
-
-
Click Install.
-
Wait for the application to change its status to
Deployed
.
Depending on the way to access the cluster you have chosen while configuring the application, get the IP or use port-forwarding to access the JupyterHub UI:
-
LoadBalancer
-
Go to the cluster page in the management console. Copy the public IP from the
proxy-public
line on the Network tab. If you havekubectl
installed and configured, you can also get the IP using the following command:kubectl describe svc proxy-public -n <namespace> | grep "LoadBalancer Ingress:"
-
Go to
http://<ip>
in your browser. On the login screen, specify the user asadmin
and enter a password that will be saved as theadmin
's password.
-
-
ClusterIP
-
Set up port forwarding (you will need to install and configure
kubectl
for that):kubectl --namespace=<namespace> port-forward service/proxy-public 8080:http
-
Go to http://localhost:8080 in your browser. On the login screen, specify the user as
admin
and enter a password that will be saved as theadmin
's password.
-
To create and manage users in JupyterHub:
- In the top menu, click File → Hub Control Panel.
- Click Admin.
- Click Add Users.
- Enter usernames, one per line. To make the new users admins and allow them to manage users, select the Admin checkbox.
- Click Add Users.
When adding users, you will not create passwords for them. A new user creates their password themselves when they first log into JupyterHub.
- Data preprocessing and exploration for machine learning projects
- Collaborative research in academic and scientific environments
- Training and fine-tuning deep learning models using PyTorch
- Accelerated computing tasks using NVIDIA GPUs
- Interactive coding and visualization for data analysis
- Educational purposes, such as teaching programming or data science courses
- Prototyping and experimenting with machine learning algorithms
- Sharing and reproducing research results in computational sciences
- Running distributed machine learning workloads across multiple nodes
- Developing and testing AI applications in a scalable environment
Nebius AI does not provide technical support for the product. If you have any issues, please refer to the developer’s information resources.
Helm chart | Version | Pull-command | Documentation |
---|---|---|---|
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/chart/jupyterhub | 3.3.7 | Open |
Docker image | Version | Pull-command |
---|---|---|
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/k8s-hub | 3.3.7 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/configurable-http-proxy | 4.6.1 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/traefik | v2.11.0 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/k8s-secret-sync | 3.3.7 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/base-notebook | notebook-7.2.1 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/pytorch-notebook | cuda12-notebook-7.2.1 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/k8s-network-tools | 3.3.7 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/k8s-singleuser-sample | 3.3.7 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/kube-scheduler | v1.26.15 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/pause | 3.9 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/k8s-image-awaiter | 3.3.7 | |
cr.nemax.nebius.cloud/yc-marketplace/nebius/jupyterhub/image/pause | 3.9 |