Install Containerd, Kubectl and Kubeadm Packages in Master and Worker Nodes

After NFS server configuration, start installing Containerd, Kubectl and Kubeadm packages in Master and three Worker nodes.

To install the packages in the master and worker nodes, follow the steps below:

  1. Open Linux Terminal, and run the following commands one by one on each node.
    apt-get update
    tee /etc/modules-load.d/containerd.conf <<EOF
     overlay
     br_netfilter
     EOF
    apt-get remove docker docker-engine docker.io containerd runc
    apt-get install ca-certificates curl gnupg lsb-release
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt-get update
    apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    docker -v
    systemctl status docker
    modprobe overlay
    modprobe br_netfilter
    tee /etc/sysctl.d/kubernetes.conf<<EOF
     net.bridge.bridge-nf-call-ip6tables = 1
     net.bridge.bridge-nf-call-iptables = 1
     net.ipv4.ip_forward = 1
     EOF
    sysctl –-system
    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    apt update
    apt install -y containerd.io
    mkdir -p /etc/containerd
    containerd config default>/etc/containerd/config.toml
    systemctl restart containerd
    systemctl enable containerd
    systemctl status containerd
    apt-get update && apt-get install -y apt-transport-https ca-certificates curl
    curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
    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
    KUBE_VERSION=1.23.0
    apt-get update
    apt-get install -y kubelet=${KUBE_VERSION}-00 kubeadm=${KUBE_VERSION}-00 kubectl=${KUBE_VERSION}-00 kubernetes-cni=0.8.7-00
    apt-mark hold kubelet kubeadm kubectl
    systemctl enable kubelet && systemctl start kubelet
    kubeadm version
    swapoff -a
    sed -i '/ swap / s/^/#/' /etc/fstab
    cd /etc/docker
    vi daemon.json
     { "exec-opts": ["native.cgroupdriver=systemd"] }
    systemctl daemon-reload
    systemctl restart docker
    systemctl restart kubelet
    systemctl status kubelet
    curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
    sudo apt-get install apt-transport-https --yes
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
    sudo apt-get update
    sudo apt-get install helm 
  2. Configure NFS client.
    sudo apt install nfs-common
    cd /mnt
    mkdir adminui cognitivesearch ctrainer postgres postgresim producttriage share1 share2 share3 share4 share5 share6 txtai redis backupservice licenseserver
    chown nobody:nogroup adminui cognitivesearch ctrainer postgres postgresim producttriage share1 share2 share3 share4 share5 share6 txtai redis backupservice licenseserver
    chmod 777 adminui cognitivesearch ctrainer postgres postgresim producttriage share1 share2 share3 share4 share5 share6 txtai redis backupservice licenseserver
    mount 10.14.108.26:/mnt/nfsshare/postgres /mnt/postgres
    mount 10.14.108.26:/mnt/nfsshare/postgresim /mnt/postgresim
    mount 10.14.108.26:/mnt/nfsshare/adminui /mnt/adminui
    mount 10.14.108.26:/mnt/nfsshare/producttriage /mnt/producttriage
    mount 10.14.108.26:/mnt/nfsshare/cognitivesearch /mnt/cognitivesearch
    mount 10.14.108.26:/mnt/nfsshare/ctrainer /mnt/ctrainer
    mount 10.14.108.26:/mnt/nfsshare/share1 /mnt/share1
    mount 10.14.108.26:/mnt/nfsshare/share2 /mnt/share2
    mount 10.14.108.26:/mnt/nfsshare/share3 /mnt/share3
    mount 10.14.108.26:/mnt/nfsshare/share4 /mnt/share4
    mount 10.14.108.26:/mnt/nfsshare/share5 /mnt/share5
    mount 10.14.108.26:/mnt/nfsshare/share6 /mnt/share6
    mount 10.14.108.26:/mnt/nfsshare/txtai /mnt/txtai
    mount 10.14.108.26:/mnt/nfsshare/licenseserver /mnt/licenseserver
    mount 10.14.108.26:/mnt/nfsshare/backupservice /mnt/backupservice
    mount 10.14.108.26:/mnt/nfsshare/redis /mnt/redis
    Open /etc/fstab file and copy below lines.
    10.14.108.26:/mnt/nfsshare/postgres /mnt/postgres nfs defaults 0
    10.14.108.26:/mnt/nfsshare/postgresim /mnt/postgresim nfs defaults 0
    10.14.108.26:/mnt/nfsshare/adminui /mnt/adminui nfs defaults 0
    10.14.108.26:/mnt/nfsshare/producttriage /mnt/producttriage nfs defaults 0
    10.14.108.26:/mnt/nfsshare/cognitivesearch /mnt/cognitivesearch nfs defaults 0
    10.14.108.26:/mnt/nfsshare/ctrainer /mnt/ctrainer nfs defaults 0
    10.14.108.26:/mnt/nfsshare/share1 /mnt/share1 nfs defaults 0
    10.14.108.26:/mnt/nfsshare/share2 /mnt/share2 nfs defaults 0
    10.14.108.26:/mnt/nfsshare/share3 /mnt/share3 nfs defaults 0
    10.14.108.26:/mnt/nfsshare/share4 /mnt/share4 nfs defaults 0
    10.14.108.26:/mnt/nfsshare/share5 /mnt/share5 nfs defaults 0
    10.14.108.26:/mnt/nfsshare/share6 /mnt/share6 nfs defaults 0
    10.14.108.26:/mnt/nfsshare/txtai /mnt/txtai nfs defaults 0
    10.14.108.26:/mnt/nfsshare/licenseserver /mnt/licenseserver nfs defaults 0
    10.14.108.26:/mnt/nfsshare/share5 /mnt/share5 nfs defaults 0
    10.14.108.26:/mnt/nfsshare/ backupservice /mnt/ backupservice nfs defaults 0
    10.14.108.26:/mnt/nfsshare/redis /mnt/redis nfs defaults 0
    Note: 10.14.108.26 is the NFS Server and for any issues reach out to IntelliService DevOps team.