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