Kubernetes Cluster using Kubeadm

Anjali BarodiaAnjali Barodia
2 min read

We are using AWS Cloud for creating a Kubernetes cluster using kubeadm - one master node and one worker node.

For this setup, we need two EC2 instances for each node.

Min requirement:

  • Master node: 4 GB RAM and 2 vCPU type instance

  • Worker node: t2.micro instance type is fine.


Create a Master Node

# update the system
sudo apt update -y

# install docker  
sudo apt install docker.io -y

# start docker
sudo systemctl start docker

# enable by-default boot-up 
sudo systemctl enable docker

# download the kubernetes keys from google
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

# place the keys under /etc/apt/source.list.d/kubernetes.list
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# update the system
sudo apt update -y

# install the kubeadm, kubectl and kubelet
sudo apt install kubeadm=1.20.0-00 kubectl=1.20.0-00 kubelet=1.20.0-00 -y

# start the kubeadm service
sudo su
kubeadm init


mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

# create the token for workernode to join, copy it and run this commad on worker node
kubeadm token create --print-join-command

# After worker node is created (check:Create a Worker Node section) and joined using above command, now check the connected nodes on master node
kubectl get nodes

Create a Worker Node

# update the system
sudo apt update -y

# install docker  
sudo apt install docker.io -y

# start docker
sudo systemctl start docker

# enable by-default boot-up 
sudo systemctl enable docker

# download the kubernetes keys from google
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

# place the keys under /etc/apt/source.list.d/kubernetes.list
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# update the system
sudo apt update -y

# install the kubeadm kubelet
sudo apt install kubeadm=1.20.0-00 kubelet=1.20.0-00 -y

# reset the pre-flight checks
sudo su
kubeadm reset pre-flight checks

# now paste the join command, which was generated on master node
-----> Paste the Join command on worker node with `--v=5`

That is! A simple Kubernetes cluster using Kubeadm is created. :)

Keep learning :)

0
Subscribe to my newsletter

Read articles from Anjali Barodia directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Anjali Barodia
Anjali Barodia

Python backend developer with expertise in DevOps, AWS, and ML.