Actualizar cluster_init.md

This commit is contained in:
xguefer
2025-08-08 19:47:25 +02:00
parent e9dfb7c7f5
commit 9533e22877

View File

@@ -357,11 +357,13 @@ kubeadm init phase upload-certs --upload-certs
``` ```
Si copiamos ambos resultados y lo unimos en un solo comando join conseguiremos el objetivo. Explicado más abajo. Si copiamos ambos resultados y lo unimos en un solo comando join conseguiremos el objetivo. Explicado más abajo.
## d) Instala la red de pods (Flannel) usando la VLAN interna del clúster # d) Instala la red de pods (Flannel) usando la VLAN interna del clúster
Kubernetes solo define la infraestructura; necesitas un complemento de red (CNI) para que los pods puedan comunicarse entre sí. Flannel es la opción más sencilla y compatible, y puedes configurarla para usar una interfaz/VLAN específica para el tráfico overlay (muy recomendable si segmentas redes en tu clúster). Kubernetes solo define la infraestructura; necesitas un complemento de red (CNI) para que los pods puedan comunicarse entre sí. **Flannel** es la opción más sencilla y compatible, y puedes configurarla para usar una interfaz/VLAN específica para el tráfico overlay (muy recomendable si segmentas redes en tu clúster).
### **¡ATENCIÓN! CNI Y PLUGINS:** ---
## ¡ATENCIÓN! CNI Y PLUGINS
Antes de aplicar Flannel, **asegúrate de tener los plugins CNI instalados en `/opt/cni/bin/`** (en SUSE esto NO siempre lo hace el paquete de Flannel): Antes de aplicar Flannel, **asegúrate de tener los plugins CNI instalados en `/opt/cni/bin/`** (en SUSE esto NO siempre lo hace el paquete de Flannel):
@@ -371,6 +373,8 @@ ARCH="amd64"
sudo curl -Lo cni-plugins.tgz https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz sudo curl -Lo cni-plugins.tgz https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz
sudo mkdir -p /opt/cni/bin sudo mkdir -p /opt/cni/bin
sudo tar -C /opt/cni/bin -xzf cni-plugins.tgz sudo tar -C /opt/cni/bin -xzf cni-plugins.tgz
sudo chmod +x /opt/cni/bin/*
sudo chown root:root /opt/cni/bin/*
``` ```
Verifica que existen al menos: Verifica que existen al menos:
@@ -379,37 +383,74 @@ Verifica que existen al menos:
* `/opt/cni/bin/flannel` * `/opt/cni/bin/flannel`
* `/opt/cni/bin/bridge` y otros * `/opt/cni/bin/bridge` y otros
Corrige permisos si hace falta: ---
## Instalación de Flannel especificando la interfaz de la VLAN de clúster
**Descarga el manifiesto de Flannel:**
```bash ```bash
sudo chmod +x /opt/cni/bin/* wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
sudo chown root:root /opt/cni/bin/*
``` ```
**Luego sí aplica Flannel:** **Edita el manifiesto para forzar la interfaz de red correcta:**
* Abre `kube-flannel.yml`
* Busca el bloque `args:` bajo el contenedor principal.
* Añade la línea siguiente (ajusta el nombre según tu interfaz real, por ejemplo, `vlan40`, `bond0.40`, etc.):
```yaml
- --iface=vlan40 # <--- Pon aquí el nombre de la interfaz con IP 192.168.4.x
```
### Ejemplo del bloque completo:
```yaml
containers:
- args:
- --ip-masq
- --kube-subnet-mgr
- --iface=vlan40 # <--- Nueva línea
command:
- /opt/bin/flanneld
...
```
> **TIP:** Puedes comprobar el nombre con `ip a` en el host, buscando la interfaz con la IP `192.168.4.x` (VLAN 40).
**Aplica el manifiesto editado:**
```bash ```bash
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml kubectl apply -f kube-flannel.yml
``` ```
--- ---
## e) Comprueba que Flannel funciona ## Verifica el despliegue y que Flannel usa la interfaz correcta
* Comprueba que todos los pods de Flannel están en estado **Running**:
```bash ```bash
kubectl -n kube-flannel get pods -o wide kubectl -n kube-flannel get pods -o wide
``` ```
> Todos los pods deben estar en estado `Running`. * Consulta los logs de Flannel en cada nodo:
Si no levanta, **verifica logs y revisa `/opt/cni/bin/`**: ```bash
kubectl -n kube-flannel logs <nombre-pod-flannel-en-cada-nodo> | grep Using
```
* Los binarios deben ser para la arquitectura correcta (x86\_64/amd64). Debes ver una línea como:
* Deben tener permisos de ejecución y ser propiedad de root.
```text
Using interface with name vlan40 and address 192.168.4.x
```
Si todo es correcto, ya puedes comprobar conectividad pod-to-pod entre nodos.
--- ---
## f) Une el resto de nodos control-plane ## e) Une el resto de nodos control-plane
En los demás nodos control-plane (tras configurar Keepalived y tener la VIP activa): En los demás nodos control-plane (tras configurar Keepalived y tener la VIP activa):