The Nectar Container Orchestration service provides support for provisioning Kubernetes clusters as a service on the Nectar Research Cloud using OpenStack Magnum (Container Infrastructure as a Service). This allows a user to spin up a container cluster (kubernetes) on Nectar. Please note that the Container Orchestration Service is currently in Beta version. We are seeking your feedback for this service. Please provide your feedback by emailing

To spin up a Kubernetes container cluster, you need to do the following:

  1.   Quotas for     
    • Floating IP
    • Network 
    • Subnet
    • Instance quota

Each of your master and cluster nodes need a floating IP (eg. 1 master node and 1 cluster node needs 2 floating IPs). If you need to request floating IPs for your project, please see request for floating ip quota.


Creating a Cluster

You can create a cluster using either the Dashboard or CLI tools.

Using Dashboard 

  1.  Log on to the Nectar Dashboard
  2.  Navigate to Container Infra.
  3.  Click on Clusters, then Create Cluster.  This will open the Create dialog
  4.  On the Info tab, give your cluster a name and choose a cluster template.
    We have pre-defined global templates (in format kubernetes-{az}-{version}) to help you get started.
    Choose the template that you want your cluster to be in.
  5.  On the Misc tab, make sure you select your Keypair.  
  6.  Click Submit.

Using CLI

  1.   Install python-magnumclient. You need python-magnumclient >= 2.9.0  

    pip install python-magnumclient

  2.   Create a template    openstack coe cluster template create --coe kubernetes \

    --image fedora-atomic-latest --external-network <floating-ip-network-id> \
    --master-flavor m2.xsmall --flavor m2.small --dns-nameserver \
    --docker-storage-driver overlay --public mytemplate

  3.  Boot a cluster    

    openstack coe cluster create --cluster-template mytemplate \
    --keypair <mykey> mycluster

Operating your Cluster

Once your cluster is up (NOTE: It takes about 20 mins for a cluster to build),you can control it using kubectl.

  1.   Install kubectl
  2.   Set up the credentials to connect to the cluster. Firstly, create an configdir

    mkdir ~/kubernetes/
    cd ~/kubernetes/

  3.   Create the config files    

    openstack coe cluster config mycluster

  4. Set the ENV by copying the output from the previous command  

     export KUBECONFIG=$HOME/kubernetes/config


  Use kubectl to connect to it

   kubectl get all

Operating your Cluster using web interface

Alternatively, you can also administer it from the web.

  1. Set up a role for the service account
    kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
  2. List the secrets
    kubectl -n kube-system get secret
  3. Get the secret token. It will be in format kubernetes-dashboard-token-XXXXX
    kubectl -n kube-system describe secret kubernetes-dashboard-token-XXXXX
  4. Copy the token
  5. Start the web interface
    kubectl proxy
  6. In your browser, go to the following URL
  7. Use your token to log in



Availability Zone

You can boot in a different availability zone by using --labels. E.g.

openstack coe cluster create --cluster-template mytemplate \
--keypair <mykey> --labels availability_zone <AZ> mycluster