Creating a multi-node cluster using kubeadm
In this section, I'll introduce you to kubeadm, the recommended tool for creating Kubernetes clusters on all environments. It is still relatively new and has some limitations, but it is the way to go. We will also deploy a custom service with a backing store in two separate pods.
Getting ready
Kubeadm operates on pre-provisioned hardware (physical or virtual). Before we create the Kubernetes cluster, we need to prepare a few VMs and install basic software such as docker
, kubelet
, kubeadm
and kubectl
(needed only on the master).
Preparing a cluster of vagrant VMs
The following vagrant file will create a cluster of four VMs called n1
, n2
, n3
, and n4
. It is based on Bento/Ubuntu-16.04 and not Ubuntu/xenial, which suffers from various issues:
# -*- mode: ruby -*- # vi: set ft=ruby : hosts = { "n1" => "192.168.77.10", "n2" => "192.168.77.11", "n3" => "192.168.77.12", "n4" => "192.168.77.13" } Vagrant.configure("2") do |config| # always...