Jupyterhub Installation


I would like to install JupyterHub without using Helm. Is there any reference to get/create configuration yaml files.


https://zero-to-jupyterhub.readthedocs.io/en/latest/ is the documentation for the JupyterHub Helm chart. helm template will output the yaml files instead of deploying them.

@manics Have you installed using the template? When we extract it creates 4 folders hub/proxy/image-puller/scheduler. For me its not working with the templates.

I haven’t, I always use helm to install/upgrade JupyterHub since that’s what it’s designed for! The four templated folders are what I’d expect though with the default 0.8.2 release https://github.com/jupyterhub/zero-to-jupyterhub-k8s/tree/0.8.2/jupyterhub/templates

What’s not working? The process of applying the templates, or the JupyterHub deployment? Please provide as much information as you can.

JupyterHub deployment. We create config.yaml file and pass that with helm installation.
When we are not using helm then do we need to update any of the yaml files? Do we need to create any values.yaml files?
hub pod is crashing with the error
proxy pod is up and running.

Loading /etc/jupyterhub/config/values.yaml
Loading /etc/jupyterhub/secret/values.yaml
[E 2019-12-06 15:48:17.576 JupyterHub app:1958]
Traceback (most recent call last):
File “/usr/local/lib/python3.6/dist-packages/jupyterhub/app.py”, line 1955, in launch_instance_async
await self.initialize(argv)
File “/usr/local/lib/python3.6/dist-packages/jupyterhub/app.py”, line 1639, in initialize
File “</usr/local/lib/python3.6/dist-packages/decorator.py:decorator-gen-5>”, line 2, in load_config_file
File “/usr/local/lib/python3.6/dist-packages/traitlets/config/application.py”, line 87, in catch_config_error
return method(app, *args, **kwargs)
File “/usr/local/lib/python3.6/dist-packages/traitlets/config/application.py”, line 598, in load_config_file
File “/usr/local/lib/python3.6/dist-packages/traitlets/config/application.py”, line 562, in _load_config_files
config = loader.load_config()
File “/usr/local/lib/python3.6/dist-packages/traitlets/config/loader.py”, line 457, in load_config
File “/usr/local/lib/python3.6/dist-packages/traitlets/config/loader.py”, line 489, in _read_file_as_dict
py3compat.execfile(conf_filename, namespace)
File “/usr/local/lib/python3.6/dist-packages/ipython_genutils/py3compat.py”, line 198, in execfile
exec(compiler(f.read(), fname, ‘exec’), glob, loc)
File “/etc/jupyterhub/jupyterhub_config.py”, line 246, in
c.JupyterHub.hub_connect_ip = os.environ[‘HUB_SERVICE_HOST’]
File “/usr/lib/python3.6/os.py”, line 669, in getitem
raise KeyError(key) from None

@manics basic question. I have downloaded zero-to-jupyterhub-k8s-master.zip file and did the unzip. If i go inside jupyterhub folder. I see templates folder, values.yaml. 1) how to run helm template 2) do we need to update values.yaml file before running the helm template? Thanks for your patience and help.

You’ll have to follow these docs to configure jupyterhub on Kubernetes: https://zero-to-jupyterhub.readthedocs.io/en/latest/
Once you’ve got your configuration I’d have thought running helm template ... followed by applying the generated yaml manifests would work but I’ve never tried it.

If you can’t get it working you could try deploying Jupyterhub using helm by following the docs, then once you have a working system see if you can do it without helm.


I tried to deploy the manifest files Hub/Proxy pods are running but unable to launch the jupyterhub using ELB.
kubectl describe service proxy-public -n mynamespace

I 2019-12-18 19:33:34.872 JupyterHub proxy:301] Checking routes

Name: proxy-public
Namespace: mynamespace
Labels: app=proxy-public
Selector: app=proxy-public
Type: LoadBalancer
LoadBalancer Ingress: a55b4652521b511ea8faa0eb40cc4992-924881786.us-east-1.elb.amazonaws.com
Port: 80/TCP
TargetPort: 8088/TCP
NodePort: 30058/TCP
Session Affinity: None
External Traffic Policy: Cluster