Skip to content

Instantly share code, notes, and snippets.

@criscola
Last active May 12, 2023 07:54
Show Gist options
  • Save criscola/a887fa02f57638aac6f49d02d627a76c to your computer and use it in GitHub Desktop.
Save criscola/a887fa02f57638aac6f49d02d627a76c to your computer and use it in GitHub Desktop.
Install Kubernetes on Ubuntu with kubeadm and containerd
# from https://www.linuxtechi.com/install-kubernetes-on-ubuntu-22-04/
sudo hostnamectl set-hostname "mgmt"
exec bash
sudo hostnamectl set-hostname "worker1" // 1st worker node
sudo hostnamectl set-hostname "worker2" // 2nd worker node
exec bash
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# If swap is as a file, and not as a partition, run the following instead:
sudo sed -i '/\/swap\.img/ s/^/#/' /etc/fstab
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
sudo 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
sudo sysctl --system
sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y containerd.io
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerd
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/kubernetes-xenial.gpg
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
# On master
sudo kubeadm init --control-plane-endpoint=10.10.70.1
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# On workers, copy paste join command, or regenerate kubeadm token create --print-join-command
# Remove node: https://monowar-mukul.medium.com/kubernetes-remove-worker-node-from-the-cluster-and-completely-uninstall-af41e00c1244
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment