There are a lot of differences between OpenStack and Kubernetes, but one thing they both share is that setting them up is far from trivial. Fortunately, the Kubernetes community seems to have learned some lessons from its big brother, and today they launched an updated Kubespray.io website, a web-based toolset for deploying Kubernetes clusters on (almost) any environment with Kubespray, the Kubernetes community deployment project.
What is Kubespray?
Kubespray, formerly Kargo, is a project under the Kubernetes community umbrella. It’s a set of tools designed for easily deploying production-ready Kubernetes clusters.
For example, say you wanted to deploy a Kubernetes cluster on your OpenStack cloud, with 2 masters, 2 minions, and 3 etcd nodes. The first thing you’d need to do is make sure you had seven nodes available. If you were using kubespray-cli, you could simply type:
kubespray openstack --masters 2 --nodes 2 --etcds 3
This command would not only create the instances, it would let Kubespray know where they are, so you could automatically deploy a cluster to them with a command such as:
kubespray deploy --openstack -u ubuntu
Kubespray supports multiple Linux distributions to host the Kubernetes clusters, including Ubuntu, Debian, CentOS/RHEL and Container Linux by CoreOS. It also supports multiple cloud providers as an underlay for the cluster deployment, including AWS, DigitalOcean, GCE, Azure and OpenStack, as well as bare metal installations.
Kubespray can deploy Kubernetes clusters that may consume both Docker and rkt as container runtimes for containerized workloads, and can deploy the cluster over a variety of networking plugins, including Flannel, Weave, Calico, and Canal, or it can use the built-in cloud provider networking instead.
Once your cluster is up and running, you can simply start using it as you would any other k8s cluster.
It’s that easy.
OK, so what’s Kubespray.io, then?
You know how they say if it sounds too good to be true, it usually is? Well, there’s no question that Kubespray makes it a heck of a lot easier to deploy Kubernetes than doing it by hand, but it’s still not simple. Before you can get to the point of running those simple commands, you need to take care of all of the necessary configuration.
That’s where Kubespray.io comes in.
While Kubespray itself is a CLI-based tool, Kubespray.io is an easier-to-consume web-based service. It enhances the existing experience of provisioning, deployment and management of Kubernetes installations with the web-based user interface and other notable improvements.
For example, suppose you want to use Kubespray to deploy Kubernetes on 5 AWS instances, sized t2.large. After entering your AWS credentials, you can simply specify these parameters directly from Kubespray.io. (Make sure that your Region is set to us-west-2.)
From there, Kubespray simply does the provisioning, providing you a stream of the log so you can see what’s happening.
When it’s done, you’ll see a link and a button for connecting:
Kubespray.io is under active development, so while you can currently deploy Kubernetes installations on Amazon Web Services and DigitalOcean, extending its support to cover GCE, Azure, OpenStack and others is in the project roadmap.
Kubespray was originally intended for developers trying out Kubernetes, but it’s evolved to include the ability to deploy Highly Available clusters. So whether you’re a hobbyist or getting really serious with your container orchestration plans, please join us at kubespray.io to deploy your first Kubernetes highly-customizable cluster, and let us know how it works for you, and how we can make it even better.