Please note that container orchestration on Jetstream is in early development. We will do our best to help you with issues, but it may be a mutual learning effort.
This page is a work in progress!
Basic Docker container support is available in the featured CentOS 7 and 8 and Ubuntu 16, 18, and 20 images on both Atmosphere and API. Docker and Docker Compose are installed on those two featured images.
OpenStack provides a method of container orchestration through Magnum. Magnum is an OpenStack API service developed by the OpenStack Containers Team making container orchestration engines such as Docker Swarm, Kubernetes, and Apache Mesos available as first class resources in OpenStack. Magnum uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either virtual machines or bare metal in a cluster configuration. Click below for a ~2 minute demo of how the Magnum CLI works.
Information on Magnum can be found here: https://wiki.openstack.org/wiki/Magnum
Another option for using Kubernetes (especially in relation to JupyterHub) is Kubeadm Bootstrapper (https://github.com/data-8/kubeadm-bootstrap/)
This is not an official Jetstream project, though we are working directly with the developers and testers that have been creating it. This is part of the Zero to JupyterHub project from UC Berkeley https://zero-to-jupyterhub.readthedocs.io/en/latest/
There are also other advanced topics using container orchestration on the Advanced API Topics page.
Creating a cluster template from the CLI: (Please note that this has changed some from the 3.x to 5.x openstack client!)
openstack coe cluster template create --coe kubernetes --image Fedora-Atomic-29-JS-Latest --keypair my_rsa_key --external-network public --fixed-network my_network_name_or_UID --fixed-subnet my_subnet_name_or_UID --network-driver flannel --flavor vm_size --master-flavor master_vm_size --docker-volume-size size_in_gb --docker-storage-driver devicemapper --floating-ip-enabled My_Template_Name
Launching a cluster using the template from the CLI:
openstack coe cluster create --cluster-template My_Template_Name --master-count x --node-count y --keypair my_rsa_key --master-flavor master_vm_size --flavor vm_size --docker-volume-size size_in_gb My_Cluster_Name
An example of each:
openstack coe cluster template create --coe kubernetes --image Fedora-Atomic-29-JS-Latest --keypair myRSA --external-network public --fixed-network test-network --fixed-subnet test-subnet --network-driver flannel --flavor m1.medium --master-flavor m1.small --docker-volume-size 100 --docker-storage-driver devicemapper --floating-ip-enabled My-K8s-Jetstream-Test-Template
openstack coe cluster create --cluster-template My-K8s-Jetstream-Test-Template --master-count 1 --node-count 3 --keypair myRSA --master-flavor m1.small --flavor m1.medium --docker-volume-size 100 my-k8s-cluster-test
Please note that you cannot start the cluster name with anything but a letter. This is a bug in Openstack Magnum.
The images supported for Kubernetes in Magnum are limited. You can ONLY use one of our recommend images and expect it to work.
The only image we guarantee to work on Jetstream presently is Fedora-Atomic-29-JS-Latest | ae275170-b48c-4104-8af1-4d271f33a43c