Deploying a SLATE Cluster on CloudLab
CloudLab is a research platform for provisioning compute and networking resources. It can be leveraged to provide the resources upon which a SLATE cluster can run. This post will outline the process of setting up this SLATE cluster. More information about CloudLab can be found here.
Additionally, a SLATE account and CLI credentials are necessary.
A SLATE account can be created here. Click button that says “Sign Up” in the top right corner, and follow the prompts.
Once signed in to SLATE, you can access your SLATE CLI token here. This token is for the SLATE production API, and corresponds with an API endpoint of
For more information about getting started with SLATE, consult our quick-start guide here.
Additionally, comprehensive documentation for CloudLab can be found here.
Launching CloudLab Experiment
Next, a CloudLab experiment must be created. This experiment will contain the compute and networking resources needed to launch a SLATE cluster. Several CloudLab profiles have already been created to make this process easier.
Current SLATE-on-CloudLab profiles are listed here:
For simplicity, we will be using the
cloudlab-slate profile. This profile will bring up a single CENTOS 7 bare-metal node, as well as allocate a variable number of additional floating IPs.
To instantiate this profile, navigate to this page. Click the “Change Profile” button, and select the
cloudlab-slate profile from the list of options. Next, you will be asked how many additional public IPs to allocate. Leave this at the default value, which is 2. Click next, and then select a cluster to install this profile on. Any CloudLab cluster should be fine. After clicking next again, set an experiment duration (the default of 16 hours is OK). Finally, click “Finish” and wait for your experiment to fully spin up.
If you require more guidance instantiating your experiment, CloudLab has additional documentation here.
Note: Additional custom profiles can also be used; however, for full functionality, there are a few recommended guidelines. First, although many different Linux distributions can be used, the SLATE team recommends CentOS 7. Second, an additional pool of floating public IP addresses must be allocated for ingress and OSG applications to work. The CloudLab documentation has instructions for this here.
Kubernetes Cluster Creation / SLATE Registration
Once our CloudLab experiment/instances have fully spun up, we can begin installing Kubernetes on the node(s).
The SLATE team recommends that Kubespray be used for this.
Follow the official SLATE instructions here to install Kubernetes with Kubespray. The standard installation instructions can be followed exactly, with the exception of making changes to accommodate a single-node cluster if necessary.
Once the Kubernetes cluster is operational, we can finally register it with SLATE! There is another Ansible playbook that has been developed to make this process easy as well.
The guide listed above will also cover the SLATE registration process here.
To verify cluster install, the Nginx SLATE application can be deployed. Do this by running
slate app install nginx --cluster <your_cloudlab_cluster> --group <your_slate_group>. If everything has been done properly, your SLATE cluster on CloudLab should now be serving an Nginx page!
If you registered your SLATE cluster with the
slate-dev API server, SLATE will not automatically configure DNS records for ingress into your cluster. This must then be done outside of SLATE.
Contact the SLATE team here.