Parte de la serie: Kubernetes
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