Deploying Kubernetes Core with MAAS and Intel Rack Scale Design
The reason this was a cool project to work on was that several new features and improvements were added to
MAAS to accommodate
RSD. One example is support for composable hardware.
MAAS can now manually or dynamically compose (create) new machines from an available pool of resources on the
RSD. This allows administrators to request machines with specific resources on demand and be able to deploy their workloads on them. Another example is the new concept of a Pod. In
MAAS, Pods are an abstraction to describe the availability of resources that allows
MAAS to create or compose a machine with a set of those resources.
In greater detail,
MAAS support for
Intel RSD includes the following features:
- Ability to discover all available resources
- Ability to discover all pre-composed (pre-existing) resources or machines
- Ability to compose machines (manually) via the API or the web UI
- Ability to compose machines (manually and dynamically) with remote attached storage (iSCSI)
- Ability to (dynamically) compose machines
Setting up MAAS with RSD
You will need an
RSD hardware setup as well as an installed
MAAS server that can communicate with the
RSD. For help on setting up and installing
MAAS please see the documentation for
MAAS installation. Once your
MAAS is installed you will need to add an
RSD Pod. After completing these steps, when you go to the Pod details page it should display all of its available resources similar to something like this:
For this tutorial the
RSD Pod will need to have at least three composable machines for deploying Kubernetes Core. When setting up your
RSD Pod, if there are any pre-composed machines that are found during the discovery process of the
RSD Pod creation and there are still enough resources to dynamically compose three additional machines, please allocate these pre-composed machines after they finish commissioning so they will not be used during this tutorial. By setting these machines to Allocated, when
Juju requests machines, it won’t use these machines and instead
MAAS will dynamically create them in the
RSD, which is one of the new features that I want to demonstrate here. It should be noted, for this blog post I am using Ubuntu 16.04LTS for the
MAAS server machine and for the client machine.
Deploying Kubernetes Core using MAAS and RSD
In this blog post I am going to walk you through deploying Kubernetes Core using
RSD‘s dynamically composable resources.
Once you have your MAAS server installed and RSD Pod created, we will need to install conjure-up on the client machine and start the application:
$ sudo snap install conjure-up --classic
$ conjure-up kubernetes
Select Kubernetes Core:
Create a new controller and select the maas Cloud type:
Add MAAS server IP address and API Key:
Deploy the applications:
Wait for Juju bootstrap to finish:
The awesome thing going on here, is at this point there are no available machines in MAAS but since there is a registered RSD Pod in MAAS, a bootstrap node is dynamically created on the fly.
Checking back in on the MAAS UI Pod details page:
All three nodes that have been dynamically composed up to this point. The bootstrap node is deployed with two other worker nodes being deployed.
Wait for our Applications to be fully deployed:
Run the final post processing steps to automatically configure your Kubernetes environment:
Review the final summary screen:
Now you are free to access your Kubernetes by running
I hope this blog post gave you a look at what can be done with
Intel RSD and some of the new features that make it work well, like Pods and dynamic composition.