Featured image of post k8s journey - WIP

k8s journey - WIP

prereq

disable SWAP

1
2
sudo systemctl stop swap-create@zram0
sudo dnf remove zram-generator-defaults
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system

containerd as Container Runtime

https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd

install containerd

sudo dnf install -y containerd

configre containerd

edit /etc/containerd/config.toml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# config.toml
version = 2

[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
       runtime_type = "io.containerd.runc.v2"
    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
      SystemdCgroup = true
    [plugins."io.containerd.grpc.v1.cri".cni]
      bin_dir = "/usr/libexec/cni/"
      conf_dir = "/etc/cni/net.d"
  [plugins."io.containerd.internal.v1.opt"]
    path = "/var/lib/containerd/opt"

start containerd sudo systemctl enable --now containerd && sudo systemctl status containerd

k8s

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

disable SELinux

1
2
3
# Set SELinux in permissive mode (effectively disabling it)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

k8s repo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# This overwrites any existing configuration in /etc/yum.repos.d/kubernetes.repo
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

install k8s

1
sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes && sudo systemctl enable --now kubelet

NOTE: The kubelet is now restarting every few seconds, as it waits in a crashloop for kubeadm to tell it what to do.

start Kubeadm

sudo kubeadm join 172.16.87.21:6443 –token btoouj.emwps19f05il7gpo –discovery-token-ca-cert-hash sha256:cb4c414e4f4edf3aa3110a2fc07d12e46115e894e3e96115eee0718f86265fde

cleanup Pods

kubectl delete -A –field-selector ‘status.phase!=Running’ pods

remove images

crictl rmi –prune