1. Instalación del nodo master

Documento para instalar un cluster kubernetes con tres nodos, un master y dos workers.

Pasos a seguir una vez instalado y actualizado el sistema operativo.

  1. Repositorios

Instalar el repo de docker en su última versión

dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Instalar el repo de kubernetes en su versión 1.36

vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.36/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.37/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
  1. Paquetería

Para instalar los paquetes necesarios para el funcionamiento de Kubernetes, ejecutar el siguiente comando:

dnf update -y
dnf install epel-release wget vim-enhanced socat bind \
containerd.io kubelet kubeadm kubectl \
docker-ce --disableexcludes=kubernetes -y
  1. Deshabilitar swap

Es necesario deshabilitar el swap para que kubelet funcione correctamente.

swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  1. Deshabilitar SELinux y firewall

Es necesario deshabilitar SELinux y el firewall para que Kubernetes funcione correctamente.

sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
systemctl stop firewalld
systemctl disable firewalld
  1. Customizar containerd

Para que containerd funcione correctamente con Kubernetes, es necesario habilitar el uso de cgroups con systemd y cargar los módulos overlay y br_netfilter.

vi /etc/modules-load.d/containerd.conf
    overlay
    br_netfilter

Para generar el archivo de configuración de containerd, ejecutar el siguiente comando:

containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
  1. Configurar sysctl

Para que Kubernetes funcione correctamente, es necesario habilitar el reenvío de paquetes.

vi /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-iptables  = 1  ??
    net.ipv4.ip_forward                 = 1
  1. Recargar configuración

Para que los cambios realizados en la configuración del sistema tengan efecto, es necesario recargar la configuración del sistema.

modprobe overlay
modprobe br_netfilter
sysctl --system
  1. Habilitar e iniciar servicios

systemctl enable --now containerd
systemctl enable --now kubelet
systemctl enable --now docker