Actualizar readme-suse.md
This commit is contained in:
113
readme-suse.md
113
readme-suse.md
@ -397,4 +397,117 @@ kubectl delete pod multus-test
|
||||
|
||||
> **Nota:** Puedes crear tantas NADs (NetworkAttachmentDefinition) como bridges/VLANs quieras conectar a pods específicos (con Multus), ideal para appliances de red, gateways, SDN, pruebas de seguridad, etc.
|
||||
|
||||
---
|
||||
|
||||
# 11. Instalación y configuración de MetalLB (LoadBalancer local)
|
||||
|
||||
MetalLB permite asignar IPs flotantes de tu red LAN a servicios `LoadBalancer`, igual que hacen los clústeres en la nube. Es fundamental si quieres exponer servicios como ingress, dashboards, etc., accesibles desde tu red local.
|
||||
|
||||
---
|
||||
|
||||
## a) Instala MetalLB
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
|
||||
```
|
||||
|
||||
Esto crea el namespace `metallb-system` y los pods necesarios.
|
||||
|
||||
---
|
||||
|
||||
## b) Declara múltiples pools de IP
|
||||
|
||||
Puedes crear varios pools (por ejemplo, uno para producción y otro para test, o para diferentes VLANs/segmentos). Los pools se definen en el objeto `IPAddressPool`.
|
||||
|
||||
**Ejemplo: `metallb/ipaddresspool.yaml`**
|
||||
|
||||
```yaml
|
||||
apiVersion: metallb.io/v1beta1
|
||||
kind: IPAddressPool
|
||||
metadata:
|
||||
name: pool-produccion
|
||||
namespace: metallb-system
|
||||
spec:
|
||||
addresses:
|
||||
- 192.168.1.100-192.168.1.110
|
||||
---
|
||||
apiVersion: metallb.io/v1beta1
|
||||
kind: IPAddressPool
|
||||
metadata:
|
||||
name: pool-lab
|
||||
namespace: metallb-system
|
||||
spec:
|
||||
addresses:
|
||||
- 192.168.2.100-192.168.2.110
|
||||
```
|
||||
|
||||
**Ejemplo: `metallb/l2advertisement.yaml`**
|
||||
|
||||
```yaml
|
||||
apiVersion: metallb.io/v1beta1
|
||||
kind: L2Advertisement
|
||||
metadata:
|
||||
name: advert-all
|
||||
namespace: metallb-system
|
||||
spec: {}
|
||||
```
|
||||
|
||||
**Kustomization:**
|
||||
|
||||
```yaml
|
||||
resources:
|
||||
- ipaddresspool.yaml
|
||||
- l2advertisement.yaml
|
||||
```
|
||||
|
||||
Para aplicar:
|
||||
|
||||
```bash
|
||||
kubectl apply -k metallb/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## c) Asigna un pool concreto a un Service (anotaciones)
|
||||
|
||||
Por defecto, los Services `LoadBalancer` usan cualquier pool disponible. Para forzar el uso de un pool específico, **añade esta anotación al Service**:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ejemplo-prod
|
||||
annotations:
|
||||
metallb.universe.tf/address-pool: pool-produccion
|
||||
spec:
|
||||
selector:
|
||||
app: ejemplo
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 80
|
||||
type: LoadBalancer
|
||||
```
|
||||
|
||||
* Cambia `pool-produccion` por el nombre de pool que quieras usar.
|
||||
|
||||
Al crear el Service, MetalLB le asignará una IP **solo de ese pool**.
|
||||
|
||||
---
|
||||
|
||||
## d) Comprobar el resultado
|
||||
|
||||
```bash
|
||||
kubectl get svc
|
||||
```
|
||||
|
||||
Verás la IP asignada en la columna `EXTERNAL-IP`.
|
||||
|
||||
---
|
||||
|
||||
> **Notas:**
|
||||
>
|
||||
> * Puedes definir tantos pools como necesites, uno por segmento/VLAN/uso.
|
||||
> * Puedes versionar los manifiestos de MetalLB en una carpeta específica del repositorio (`metallb/`).
|
||||
|
||||
---
|
||||
|
||||
|
Reference in New Issue
Block a user