PyCon UK

Registration Office

Hands-on Kubernetes

Build a poor man's JupyterHub

Ali Zaidi, Paul van der Linden

Tuesday 18th, 14:30 (Room I)
Tuesday 18th, 11:30 (Room I)


A workshop (3 hours)

Containers are light-weight, isolated environments for packaging, distributing, executing and managing your application along with its dependencies. You can think of containers like Python virtualenvs except its not limited to dependencies that can be installed by pip. Moreover, a container allows you to specify resources required for your application such as memory, CPU and persistent storage etc.

Patterns such as microservices mean that modern applications often comprise of a set of containers that need to run on a set of physical nodes - a cluster. The containers need to find each other and communicate with each other. Moreover, it is useful to be able to allocate resources efficiently to each microservice, scale up and down in the face of changing load, be able to roll-out updates and roll-back in case of issues and finally to be able to deal with failures in nodes without downtime.

Enter container orchestration frameworks e.g. Kubernetes which allows you to do all of the things listed in the previous para in a declarative and reproducible manner. This is achieved by offering a rich vocabulary of abstractions that allow you to reason about services, deployments, replications, scaling etc.

This workshop is aimed at Python programmers who aspire to learn about Kubernetes and take advantage of the efficiency and flexibility it offers. We will use a simple Flask application that allows users to create, edit and save Jupyter notebooks “in the cloud” - you can think of it as a poor man’s JupyterHub to teach the participants about Kubernetes. After this workshop, the participants will be able to:

1) Describe containers and container orchestration
2) Describe the architecture and components of Kubernetes
3) Run a Kubernetes cluster on their notebook
4) Deploy and manage services on the cluster
5) Write declarative recipes for reproducing the setup universally


  • The speaker suggested this session is suitable for new programmers.
  • The speaker suggested this session is suitable for teachers.
  • The speaker suggested this session is suitable for data scientists.

Back to schedule