Thursday, September 20, 2018


Requirements:-

1.Install Docker (any container)
2.RAM minimum 2GB for each node

Set up :-

 For installation of  docker ,please follow this link 

currently docker <=18.06 is tested on kubernetes ,try to install tested once .

for specific version :
sudo apt-get update && sudo apt-get install docker-ce=18.06.2~ce~3-0~ubuntu

After docker installation ,please do the steps :-
a. sudo nano /etc/docker/daemon.json

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"

}


copy this block to daemon.json .
b. sudo mkdir -p /etc/systemd/system/docker.service.d
c. sudo systemctl daemon-reload
d. sudo systemctl restart docker


please follow the steps to install kubernetes master 

1. sudo apt-get update
2. sudo apt-get upgrade -y
3. sudo apt-get install apt-transport-https -y

install docker before you hitting these command ,

4. sudo systemctl start docker
5. sudo systemctl enable docker
6. sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
copy the below url ,

    deb http://apt.kubernetes.io/ kubernetes-xenial main

7. sudo vi /etc/apt/sources.list.d/kubernetes.list 
and paste it here .

8. sudo apt-get update

I am using kubectl 1.16.3 

9. sudo apt-get install -q kubelet=1.16.3-00 kubeadm=1.16.3-00 kubectl=1.16.3-00 kubernetes-cni

While initializing, if you received swap related errors as showed below. 


[ERROR Swap]: running with swap on is not supported. Please disable swap
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=..

for disable swap type
# swapoff -a

or you can type command ignoring swap.

then start the kubernetes master ,

 sudo kubeadm init  --pod-network-cidr 10.244.0.0/16 --apiserver-advertise-address=<masternode ip> --ignore-preflight-errors=swap

After executing  ,you ll see this page .


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

IMP --:
pod network is required to run kubernetes nodes to communicate in this area .https://kubernetes.io/docs/concepts/cluster-administration/addons/

For Flannel :
  --pod-network-cidr 10.244.0.0/16 

For Calicio :
--pod-network-cidr=192.168.0.0/16

I am using flannel ,

For Kubernetes v1.7+ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml



 To check type this command ,

sudo kubectl get pods --all-namespaces



After all pods created and running ,we ll go for joining another nodes ,


For Node Set up

Follow the steps 1 to 9 ,
then type the join command you are getting in your master node ,

sudo kubeadm join <masternode IP>:6443 --token 8kne23.y3tl7xo**** --discovery-token-ca-cert-hash sha256:************** --ignore-preflight-errors=swap

then type in master nodes ,

kubectl get nodes 

It will take sometimes to status become Ready .

Install specific Version -:

Get all the version :-
curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'

to install specific version :-

sudo apt-get install -q kubelet=<version> kubeadm=<version> kubectl=<version> kubernetes-cni=<version>


For K8S dashborad installation please follow this link below 


Uninstall K8s Completely -:

sudo kubeadm reset
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*
sudo apt-get autoremove
sudo rm -rf ~/.kube