Skip to content

Instantly share code, notes, and snippets.

@mathisve
Last active January 2, 2023 19:57
Show Gist options
  • Save mathisve/79d9c5cf3762bebad2a952cce2ac0479 to your computer and use it in GitHub Desktop.
Save mathisve/79d9c5cf3762bebad2a952cce2ac0479 to your computer and use it in GitHub Desktop.
Kubernetes cluster using Kubeadm
## works for ubuntu
## source: https://www.linuxtechi.com/install-kubernetes-on-ubuntu-22-04/
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /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 apt-key add -
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
sudo kubeadm init --control-plane-endpoint={ip of machine or cluster} --pod-network-cidr={cidr}/24
## cluster is installed
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
## install network add on here (i recommend calico)
## https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment