DEV Community

Deploy Kubernetes Cluster in less than 15-20m Almost Prod Ready

Joe Hobot on September 20, 2018

There are many ways to deploy kubernetes these days to most cloud providers such as AWS, Google Cloud, Azure and or Baremetal. My favorite one to...
Collapse
 
jgallucci32 profile image
jgallucci32 • Edited

We have been using Rancher for dev environments for over 2 years and recently in production. In every case we are able to get a new kubernetes cluster with multiple nodes deployed in less than 20 minutes. We've deployed successfully to AWS, Azure, Eucalyptus, Azure Stack and VMware all using the same deployment method. See rancher.com for product details.

Collapse
 
sygibson profile image
Shane Gibson

Joe - great article on Kubernetes deployment! Thanks for putting this together.

I'd like to point out a few other resources as well. For cluster deployment of Kubernetes, there is also a tool called "Kubeadm". This tool is designed to very very quickly allow you to build Kubernetes clusters and handle the node admission pattern of workers in to the cluster.
Kubeadm Resources

There is also an Open Source tool called Digital Rebar Provision (DRP), which provides bare metal provisioning and control of hardware infrastructure. DRP uses "Workflows" to do additional things beyond operating system deployments. One of those examples is a content pack called "KRIB" (Kubernetes Rebar Integrated Bootstrap, coupled with a Terraform Provider for DRP - that makes zero-touch Kubernetes clusters on Bare Metal completely possible.
DRP Terraform Kubernetes in 8 minutes - youtube video

This pattern provides a Zero to Kubernetes experience on bare metal in 8 minutes. There are several new deployment options in DRP that will radically reduce that time - but there aren't any demo videos of that process yet (image deployment, and zero reboot with Kernel Kexec pattern). We believe this time can be driven down closer to 4 minutes with these new patterns.

The Kubespray pattern is a great solution for a highly customized deployment. In fact - DRP also supports deploying Kubernetes via the Kubespray playbooks - so that is also an option. In our experience, we've found that Kubespray can be exceptionally slow, and sometimes can take as much as 30 minutes to complete. Outside of the time issue, it is a good tool.

For transparency purposes - I work on the DRP Open Source project. I am a contributor to both DRP and the content packs mentioned above.
Digital Rebar Provision Github Repo
Digital Rebar Provision Website

Collapse
 
joehobot profile image
Joe Hobot

Awesome share.
I'll take a look at DRP..

we've found that Kubespray can be exceptionally slow

YES! :)

Collapse
 
sandyverden profile image
sandyverden

How about conjure-up or Juju by canonical Ubuntu?

Collapse
 
joehobot profile image
Joe Hobot • Edited

I did try Juju on aws and gce. I guess I forgot to mention that one / whoops /

Collapse
 
mbeacom profile image
Mark Beacom • Edited

JX uses ekscli under the hood when you pass provider=eks

Collapse
 
dhinesh2287 profile image
dhinesh2287

Hi Joe Hobot
This is dhinesh we are deployed our applications in kubernetes using KOPS method we want to autoscale my node instance when ever the load increases or insufficient space on the current node can anyone guide me how to achieve that . In my case pod level autoscaling working but i want to achieve that in node level too

Collapse
 
sly4 profile image
sly4

Have you tried Kubic?

Collapse
 
joehobot profile image
Joe Hobot

I looked into it but have not made an attempt to try it yet. Maybe a weekend project to see what’s all about.

Collapse
 
chfrankcgn profile image
Christian Frank

TK8 by the Kubernauts - great command line tool, written in Go.
github.com/kubernauts/tk8
kubernauts.io

Collapse
 
joehobot profile image
Joe Hobot

Thanks for Sharing

Collapse
 
bhagyashreemohan profile image
bhagyashreemohan • Edited

Hi joe I'm implementing kubespray I want to do that in aws eks can you share docs with terraform pls.