Kubernetes Setup Using Kubeadm In AWS EC2 Ubuntu Servers

Kubernetes Setup Using Kubeadm In AWS EC2 Ubuntu Servers

Agenda: Kubernetes Setup Using Kubeadm In AWS EC2 Ubuntu Servers


3 – Ubuntu Serves

1 – Manager  (4GB RAM , 2 Core) t2.medium

2 – Workers  (1 GB, 1 Core)     t2.micro

Note: Open Required Ports In AWS Security Groups. For now we will open All trafic.


# First, login as ‘root’ user because the following set of commands need to be executed with ‘sudo’ permissions.

sudo su –

# Install Required packages and apt keys.

apt-get update -y
apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add –
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
apt-get update -y

#Turn Off Swap Space

swapoff -a
sed -i ‘/ swap / s/^\(.*\)$/#\1/g’ /etc/fstab

# Install And Enable Docker

apt install docker.io -y
usermod -aG docker ubuntu
systemctl restart docker
systemctl enable docker.service

#Install kubeadm, Kubelet And Kubectl

apt-get install -y kubelet kubeadm kubectl kubernetes-cni

# Enable and start kubelet service

systemctl daemon-reload
systemctl start kubelet
systemctl enable kubelet.service


===========In Master Node Start====================
# Steps Only For Kubernetes Master

# Switch to the root user.

sudo su –

# Initialize Kubernates master by executing below commond.

kubeadm init

#exit root user & exeucte as normal user


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

# To verify, if kubectl is working or not, run the following command.

kubectl get pods -o wide –all-namespaces

#You will notice from the previous command, that all the pods are running except one: ‘kube-dns’. For resolving this we will install a # pod network. To install the weave pod network, run the following command:

kubectl apply -f “https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d ‘\n’)”

kubectl get nodes

kubectl get pods –all-namespaces

# Get token

kubeadm token create –print-join-command

=========In Master Node End====================

Add Worker Machines to Kubernates Master

Copy kubeadm join token from and execute in Worker Nodes to join to cluster

kubectl commonds have to be executed in the master machine.

Check Nodes

kubectl get nodes

Deploy Sample Application

kubectl run nginx-demo –image=nginx –port=80

kubectl expose deployment nginx-demo –port=80 –type=NodePort

Get Node Port details
kubectl get services

Post Tags :

Leave a Reply