Actualizar redes_internet.md
This commit is contained in:
@@ -160,7 +160,7 @@ MetalLB permite asignar IPs flotantes de tu red LAN a servicios `LoadBalancer`,
|
||||
|
||||
---
|
||||
|
||||
## 2.1 Instala MetalLB
|
||||
## 2.1 Instalar MetalLB
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
|
||||
@@ -170,9 +170,55 @@ Esto crea el namespace `metallb-system` y despliega los pods necesarios.
|
||||
|
||||
---
|
||||
|
||||
## 2.2 Define un pool con múltiples rangos
|
||||
## 2.2 Habilitar `strictARP` en kube-proxy (obligatorio en L2)
|
||||
|
||||
En lugar de crear múltiples `IPAddressPool` por separado, puedes declarar varios rangos de IP en un **solo** `IPAddressPool`. Esto simplifica la gestión.
|
||||
Para evitar problemas de **ARP flapping** y garantizar que solo el nodo que anuncia la IP responda a las peticiones ARP, es necesario activar `strictARP` en kube-proxy.
|
||||
|
||||
```bash
|
||||
kubectl -n kube-system edit configmap kube-proxy
|
||||
```
|
||||
|
||||
En la sección `config.conf` busca la línea `strictARP` y cámbiala a:
|
||||
|
||||
```yaml
|
||||
strictARP: true
|
||||
```
|
||||
|
||||
Guarda y reinicia kube-proxy:
|
||||
|
||||
```bash
|
||||
kubectl -n kube-system rollout restart daemonset kube-proxy
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2.3 Eliminar la etiqueta que excluye los nodos de anunciar LoadBalancer
|
||||
|
||||
Por defecto, Kubernetes etiqueta los nodos `control-plane` con:
|
||||
|
||||
```text
|
||||
node.kubernetes.io/exclude-from-external-load-balancers
|
||||
```
|
||||
|
||||
Esto impide que MetalLB anuncie servicios desde esos nodos.
|
||||
|
||||
Para eliminarla de todos los nodos:
|
||||
|
||||
```bash
|
||||
kubectl label node --all node.kubernetes.io/exclude-from-external-load-balancers-
|
||||
```
|
||||
|
||||
Verifica que ya no aparece:
|
||||
|
||||
```bash
|
||||
kubectl get nodes -L node.kubernetes.io/exclude-from-external-load-balancers
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2.4 Definir un pool con múltiples rangos
|
||||
|
||||
En lugar de crear múltiples `IPAddressPool` por separado, puedes declarar varios rangos de IP en un **solo** `IPAddressPool`.
|
||||
|
||||
**Ejemplo: `metallb/ipaddresspool.yaml`**
|
||||
|
||||
@@ -215,9 +261,9 @@ kubectl apply -k metallb/
|
||||
|
||||
---
|
||||
|
||||
## 2.3 Asignar una IP concreta al Service (`loadBalancerIP`)
|
||||
## 2.5 Asignar una IP concreta al Service (`loadBalancerIP`)
|
||||
|
||||
Puedes indicar directamente la IP deseada usando el campo `loadBalancerIP`, y MetalLB la asignará si pertenece a uno de los rangos definidos.
|
||||
Puedes indicar directamente la IP deseada usando el campo `loadBalancerIP`.
|
||||
|
||||
### ✅ Ejemplo 1: Asignación explícita con `loadBalancerIP`
|
||||
|
||||
@@ -236,8 +282,6 @@ spec:
|
||||
loadBalancerIP: 192.168.1.105 # IP concreta del pool
|
||||
```
|
||||
|
||||
No es necesario usar anotaciones si la IP está incluida en el `IPAddressPool`.
|
||||
|
||||
### ✅ Ejemplo 2: Sin IP explícita (MetalLB elige una disponible)
|
||||
|
||||
```yaml
|
||||
@@ -254,40 +298,30 @@ spec:
|
||||
type: LoadBalancer
|
||||
```
|
||||
|
||||
MetalLB seleccionará automáticamente una IP libre de **cualquier** rango declarado en el pool.
|
||||
|
||||
---
|
||||
|
||||
## 2.4 Verificar los resultados
|
||||
## 2.6 Verificar el funcionamiento
|
||||
|
||||
Para comprobar que **MetalLB** asigna direcciones IP correctamente, realiza la siguiente prueba utilizando el manifiesto `test-lb.yaml` que ya está en el repositorio:
|
||||
Prueba con el manifiesto `test-lb.yaml`:
|
||||
|
||||
```bash
|
||||
kubectl apply -f test-lb.yaml
|
||||
```
|
||||
|
||||
Supervisa la asignación de IP externa:
|
||||
|
||||
```bash
|
||||
kubectl -n lb-test get svc test-lb -w
|
||||
```
|
||||
|
||||
Deberías ver en la columna `EXTERNAL-IP` una de las direcciones configuradas en tu `IPAddressPool`.
|
||||
|
||||
Ejemplo de salida esperada:
|
||||
Salida esperada:
|
||||
|
||||
```
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
test-lb LoadBalancer 10.104.58.240 192.168.1.100 80:30248/TCP 9s
|
||||
```
|
||||
|
||||
Cuando quieras limpiar la prueba:
|
||||
Cuando termines:
|
||||
|
||||
```bash
|
||||
kubectl delete -f test-lb.yaml
|
||||
```
|
||||
|
||||
Esto eliminará el Namespace `lb-test` y todos los recursos creados para la prueba.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user