image

In this lab we will practice building Kubernetes cluster with single master

In case you prefer a video, check below our YouTube video for this lab

Create docker hub account. Docker Hub skip this step if you already have one

image

Open Play with Kubernetes

image

login with your docker hub account.

image

Click on start

image

It will start a 4 hr session

image
click on + ADD NEW INSTANCE

image comment]: ![screenshot

Enter below command in first node terminal

This node will be master for this cluster

kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16

use kudeadm to initialize Kubernetes cluster

–apiserver-advertise-address is to advertise api server address

–pod-network-cidr is to provide subnet used for pod network

this command will pull container images required for Kubernetes cluster and may take sometime

you may load image proactively by using kubeadm config images pull

you may also select specific version with –kubernetes-version

take note of output similar to below, it will be required for other nodes to join cluster

kubeadm join XXXXXXX — token XXXXXX — discovery-token-ca-cert-hash sha256:XXXXXXXXX

image

Enter below command in master node terminal

kubectl get nodes

use above command to display nodes in k8s cluster there will be only master node with status NotReady

node is NotReady as there is no networking add-on

image

CNI stand for Container Network Interface,

It is a Cloud Native Computing Foundation project, consists of a specification and libraries for writing plugins to configure network interfaces in Linux containers, along with a number of plugins.

Kubernetes uses CNI as an interface between network providers and Kubernetes pod networking

Enter below command in master node terminal

kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml

this command will get yaml file from github

install network add-on to cluster

We will discuss CNI in future labs

image

Enter below command in master node terminal

kubectl get nodes

node will be in ready state after few minutes

image
click on + ADD NEW INSTANCE

image

Enter kubeadm join command in new node terminal on Second node

kubeadm join XXXXXXX  token XXXXXX  discovery-token-ca-cert-hash sha256:XXXXXXXXX

above command will join new node to cluster

this command will be different for you

you will get this from step 5

image

Enter below command in master node terminal

kubectl get nodes
image

you will see two nodes

one master and second with none role

second node might be NotReady at first

it could take few minutes to get Ready

click on + ADD NEW INSTANCE

image

Enter kubeadm join command in new node terminal

kubeadm join XXXXXXX  token XXXXXX  discovery-token-ca-cert-hash sha256:XXXXXXXXX

copy above command will join new node to cluster

this command will be different for you

you will get this from step 5

image

Enter below command in master node terminal

kubectl get nodes

you will see three nodes

one master two with none role

third node might be NotReady at first

it could take few minutes to get Ready

image

Delete all open nodes/instances and close session

  1. Select the node and click on DELETE
  2. Repeat same for any other open nodes
  3. click close session
cleanup
Click on ‘Submit Feedback’ on the bottom left of the page to submit any questions/feedback.