Skip to content

Debian 11 Kubernetes Setup

with the help of - https://snapshooter.com/learn/linux/install-kubernetes - https://docs.docker.com/engine/install/debian/ - https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ - https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/ - https://github.com/kubernetes/kubeadm/blob/main/docs/ha-considerations.md

Prepare

  • disable swap
    swapoff -a
    sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
    # IP Forwarding enable in /etc/sysctl.conf
    net.ipv4.ip_forward=1
    net.ipv6.conf.all.forwarding=1
    sudo sysctl --system
    # delete unneeded software
    apt remove docker docker-engine docker.io containerd runc
    # install dependencies
    apt install ca-certificates curl gnupg lsb-release
    # install gpg key for repo
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    # install repo
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt update
    

Install

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# verify
sudo docker run hello-world
# verify all hosts have different uuid
sudo cat /sys/class/dmi/id/product_uuid
# kubernetes
curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt update
apt install -y kubectl kubelet kubeadm
# pin current version
apt-mark hold kubelet kubeadm kubectl

Init cluster

On the first master node:

kubeadm init --skip-phases=addon/kube-proxy

Install plugins

#Calico for Networking
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/tigera-operator.yaml
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/custom-resources.yaml
tbc

Add Master nodes

tbc