Actualizar cluster_init.md
This commit is contained in:
@@ -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):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user