Alex Sarmiento
ES / EN

2. Instalación y configuración de los nodos del cluster de Kubernetes

2.1 Configuración previa en todos los nodos

Ejecuta estos comandos en todos los nodos (master y workers):

# Deshabilitar swap
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab

# Configurar módulos de kernel requeridos
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# Configurar parámetros de red
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

sudo sysctl --system

2.2 Instalar K3s en el nodo master

En el nodo master (k3s-master), ejecuta:

# Instalar K3s como servidor (master)
curl -sfL https://get.k3s.io | sh -s - --disable=traefik

# Verificar la instalación
sudo kubectl get nodes

# Generar el token para añadir nodos worker
TOKEN=$(sudo cat /var/lib/rancher/k3s/server/node-token)
echo "Token de nodo: $TOKEN"

Guarda el token generado, lo necesitarás para los nodos worker.

2.3 Instalar K3s en los nodos worker

En cada nodo worker (k3s-worker1 y k3s-worker2), ejecuta:

# Sustituye IP_MASTER y TOKEN por los valores correctos
curl -sfL https://get.k3s.io | K3S_URL=https://192.168.1.127:6443 K3S_TOKEN=ELTOKENQUEGUARDASTE sh -

2.4 Verificar la instalación del cluster

En el nodo master, ejecuta:

sudo kubectl get nodes --kubeconfig /etc/rancher/k3s/k3s.yaml

# Deberías ver algo como:
# NAME          STATUS   ROLES                  AGE     VERSION
# k3s-master    Ready    control-plane,master   5m32s   v1.27.x+k3s1
# k3s-worker1   Ready    worker o none          2m8s    v1.27.x+k3s1
# k3s-worker2   Ready    worker o none          1m15s   v1.27.x+k3s1

2.5 Configurar acceso remoto al cluster

Para acceder al cluster desde tu máquina Windows, necesitas el archivo kubeconfig:

# En el nodo master:
sudo cat /etc/rancher/k3s/k3s.yaml

Copia el contenido de este archivo y guárdalo en tu máquina Windows como C:\Users\<tu-usuario>\.kube\config.

Importante: Modifica la línea server: https://127.0.0.1:6443 para que tenga la IP real del nodo master: server: https://192.168.1.127:6443.

Alternativamente, para facilitar el uso de kubectl y helm en el nodo master, puedes crear una copia del archivo kubeconfig para tu usuario:

# En el nodo master
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
chmod 600 ~/.kube/config