Skip to content

Instantly share code, notes, and snippets.

@nikhiljha
Created November 22, 2020 21:43
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikhiljha/7715285d6b0618737ddc9e7a934779a1 to your computer and use it in GitHub Desktop.
Save nikhiljha/7715285d6b0618737ddc9e7a934779a1 to your computer and use it in GitHub Desktop.
How to setup a Ubuntu 20.04 server with Kubernetes + CRI-O + Cilium

server-setup.md

How to setup a Ubuntu 20.04 server with Kubernetes + CRI-O + Cilium

Networking

vim /etc/netplan/01-netcfg.yaml # optional, if DHCP isn't good enough

CRI-O Installation

export VERSION=1.18
export OS=xUbuntu_20.04
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
apt-get install cri-o cri-o-runc

CRI-O Configuration

sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system

kubeadm installation

sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

kubeadm run

sudo kubeadm init --pod-network-cidr=10.217.0.0/16 --skip-phases=addon/kube-proxy
sudo vim /var/lib/kubelet/config.yaml # add "cgroupDriver: systemd" *while kubeadm is running*

helm installation

curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb 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

cilium installation

helm install cilium cilium/cilium --version 1.9.0 --namespace kube-system --set kubeProxyReplacement=strict --set k8sServiceHost=NODE_IP --set k8sServicePort=6443
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment