In this guide we will be installing Kubernetes Master server, together with installing Kubernetes Node servers and connecting them to the Master server. Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications from a Master server instance.
- KVM Linux server running on Ubuntu 16.04 OS.
1. Preparing your VPS for installation of Kubernetes:
Both, Master server and Node servers has to be prepared with required packages. Firstly, update your package list (commands will be initiated as root. If done by other user, use "sudo"):
Afterwards, when the packages list are updates, proceed with installation of apt-transport-https package:
apt-get install -y apt-transport-https
Afterwards, install Docker that will be the container system for Kubernetes:
apt install docker.io -y
When the installation will be completed, start and enable Docker service:
systemctl start docker && systemctl enable docker
2. Installation of Kubernetes:
Since the required packages and other instances have been installed, we can now proceed with installation of Kubernetes server. Firstly let's download and add the key for Kubernetes Installation:
Now let's create a file with your text editor (We will be using "nano" for this one, however you can use any other):
In the file enter the following line, save and close it:
deb http://apt.kubernetes.io/ kubernetes-xenial main
Now, let's install the Kubernetes with required packets:
apt-get update && apt-get install -y kubelet kubeadm kubectl kubernetes-cni
3. Setting up Kubernetes Master server:
The following command will setup the configuration files and boot up the whole Master server.
, do not close terminal after this command is completed, since you will receive your unique token key, which is required for Node server to connect. The setup will take about couple of minutes. Following command should be used as additional user with sudo rights:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
The formed token with connection command should look like this:
kubeadm join <master node IP>:6443 --token i5s534.38o26swycl0gd0gr --discovery-token-ca-cert-hash sha256:4b4c8d9652e925dffe0f28c73984c27d821cd998f63525dd45378a762517dea3
The token should be valid only for 24 hours. If you would like to add other nodes to your cluster after some time, new token can be generated with using
4. Connecting Node server to Master:
This is the easiest part. When you will have your Master server running, for your Node servers, repeat the "1. Preparing your VPS for installation of Kubernetes"
and "2. Installation of Kubernetes"
parts of this guide
for general installation of Kubernetes. When the Node server will have Kubernetes installed, use the command that was generated for you at the end of Master node configuration:
kubeadm join <master node IP>:6443 --token
Instead of master node IP server will have generated your Master server's IP address so no additional adjustments will be required. If you will use your separately generated token, you should adjust the --token code to the one that will be generated for you.
5. Finishing up the setup:
To check if everything was correct, from the Master node initiate the command
Command results should look similar to:
NAME STATUS ROLES AGE VERSION
Node.hostname Ready <none> 1d v1.11.2
Master.hostname Ready master 1d v1.11.2
You can now set services for you cluster or scale it's size by adding additional servers to the cluster in the same way as you have added the first node. For more information on cluster management, loads of useful information is provided in the Kubernetes Documentation.
Good luck with your cluster!