Jerzy Suzanowicz

I work mostly with Java, AngularJs, ReactJs, Docker, GKE, K8s, OpenShift.

Create a CentOS 8 kubernetes worker node

06 May 2023 » k8s, centos8

Update system

dnf -y upgrade

Disable SELinux enforcement.

setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

Disable SWAP

sed -i '/swap/d' /etc/fstab
swapoff -a

Set network

cat << EOF | tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
cat << EOF | tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

sysctl --system
modprobe overlay
modprobe br_netfilter
firewall-cmd --add-masquerade --permanent
firewall-cmd --zone=public --permanent --add-port={10250,10251,30000-32767}/tcp

# zabbix,mosquitto,minecraft,mariadb
firewall-cmd --zone=public --permanent --add-port={10051,1883,25565,3306}/tcp


firewall-cmd --reload
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf update
dnf install -y containerd

mkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml

vi /etc/containerd/config.toml
nano /etc/containerd/config.toml set SystemdCgroup = true if problem with join
systemctl restart containerd
systemctl enable containerd
systemctl start containerd
systemctl status containerd
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
dnf -y install kubelet-1.21.14 kubeadm-1.21.14 kubectl-1.21.14
dnf -y install python3-dnf-plugin-versionlock
dnf versionlock kubelet kubeadm kubectl
systemctl enable kubelet.service
systemctl start kubelet.service
systemctl status kubelet.service
# new join
kubeadm token create --print-join-command

kubeadm join 10.132.11.14:6443 --token yi11i5.x26vxvqy1cd4tllp     --discovery-token-ca-cert-hash sha256:cecf1c199659a4669363bc91c64ebe323ba28670a2da22c433cb2fddf7817e39 --v=5
systemctl enable systemd-resolved.service
systemctl start systemd-resolved.service
systemctl status systemd-resolved.service

for synology scsi provider

dnf -y install iscsi-initiator-utils

if used nfs volumes

dnf install -y nfs-utils
dnf -y  install lm_sensors
sensors-detect
sensors

Node worker role

kubectl label node node4 node-role.kubernetes.io/worker=worker

Dasboard token

kubectl get secrets --namespace kubernetes-dashboard
kubectl describe --namespace kubernetes-dashboard secret dashboard-admin-token
kubectl drain <nodename> --ignore-daemonsets --delete-local-data
kubectl uncordon <nodename>

https://blog.yasithab.com/centos/multi-master-kubernetes-cluster-setup-with-crio-and-ceph-block-storage-on-centos-8#44-configure-metallb-load-balancer

Related Posts