Files
kubernetes/readme.md

12 KiB

🚀 Guía y Presentación del Clúster Kubernetes en SUSE

Este repositorio contiene los manifiestos, scripts y documentación para desplegar y gestionar un clúster Kubernetes basado en SUSE Linux. Además, incluye una explicación visual y sencilla de la arquitectura y componentes del clúster.


1. 🌍 Visión general del clúster

  • Kubernetes 1.33 (vainilla) → versión estándar, instalamos todas las piezas manualmente.

  • Dos sites (A y B) con dos servidores cada uno.

  • Plan: añadir un tercer site con nodo árbitro:

    • Su función será desempatar si un site cae y mantener coherencia.
Site Servidores Discos Ceph
A 2 hosts 12 discos
B 2 hosts 12 discos
C 1 árbitro -

2. 🔧 Componentes básicos

2.1. Runtime de contenedores

  • Usamos containerd (Docker ya no es soportado directamente por Kubernetes).

2.2. Red

  • Flannel ➝ conecta los pods entre nodos.
  • Multus ➝ permite varias interfaces de red por pod (NAD).

2.3. Almacenamiento

  • CSI contra DELL Powervault:

    • 1 cabina por site.
    • Requiere nodeSelector por zonas (para hacerlo bien)
  • Ceph distribuido:

    • 24 discos en total (6 por servidor).
    • Replica 4 ➝ soporta caída de un site completo.
    • Requiere el quinto nodo árbitro para quorum real.
  • Se expone a Kubernetes como un StorageClass (plantilla de volúmenes).

2.4. Balanceo de IPs

  • MetalLB ➝ asigna IPs virtuales a servicios.

3. 🌐 Redes y servicios

  • Dos redes:

    • 🔧 br-admin ➝ administración interna.
    • 🌐 br-servicios ➝ servicios para clientes.
  • Los servicios se exponen en una u otra red con loadBalancerIP.

Tipo de servicio Red usada
Clientes finales Servicios
Internos Administración

3.1. Ingress y certificados

  • Ingress NGINX ➝ gestiona el tráfico HTTP/HTTPS.
  • cert-manager ➝ emite certificados SSL.
  • Ingress está en ambas redes ➝ permite pedir certificados en cualquiera.

4. 🔒 Seguridad y acceso remoto

4.1. VPN (WireGuard)

  • Usamos wg-easy:

    • Instancias ilimitadas (clientes o internos).
    • Cada una restringe acceso a ciertas redes.

4.2. DNS interno

  • CoreDNS interno ➝ split-DNS.
  • Clientes VPN usan este DNS.

4.3. Control de accesos

  • ACLs en ingress restringen apps por usuario/red.
  • Combinando VPN + DNS interno + ACLs ➝ control de accesos flexible.

5. 🧩 Integraciones adicionales

5.1. Proxy externo

  • Servicio external ➝ acceso a servicios web fuera del clúster:

    • Firewalls 🔥
    • Consolas iLO 🖥️
    • Cabinas de almacenamiento 💾

5.2. Virtualización

  • KubeVirt ➝ ejecutar máquinas virtuales en Kubernetes.
  • Dashboard para gestionarlas.
  • iso-server ➝ sirve ISOs por HTTPS (subidas vía Samba).

5.3. Copias de seguridad

  • Velero

    • Montado sobre dos almacenes S3 (Minio), uno por SITE
    • Cada almacen en una cabina de almacenamiento (DriverCSI)

6. 📚 Índice de documentos y referencias cruzadas

Documento Descripción Referencia
estructura_manifiestos.md Explicación de la estructura de manifiestos Ver
cluster_init.md Proceso de inicialización del cluster en SUSE Ver
redes_internet.md MetalLB, Multus y demás Ver
ingress.md Capítulo de cert-manager e ingress Ver
rook\readme.md Instalación e integración de Ceph/Rook Ver
seagate\readme.md Instalación del driver CSI para DELL SAN Ver
kubevirt\readme.md Despliegue de KubeVirt y gestión de VMs Ver
vm-windows-demo\readme.md Máquina virtual de ejemplo Ver
comprobaciones.md Checklist tras cada paso crítico Ver
script_limpieza.md Script para limpiar un nodo Ver
coredns-demo\readme.md Ejemplo de Multus con CoreDNS Ver
harbor\readme.md Manual de instalacion de Harbor Ver
storage\readme.md Ejemplo de StorageClass Ver
dashboard\readme.md Ejemplo con ingress dashboard Ver
wireguard\readme.md Manual de WireGuard Ver
coredns\readme.md Configuración del DNS del sistema Ver
apolo\readme.md Manual de Apolo Ver
external\readme.md Funcionamiento de External Ver
gitea\readme.md Manual de instalación de Gitea Ver
guacamole\readme.md Manual de instalación de Guacamole Ver
vscode\readme.md Manual de instalación de VScode Ver
mapas\readme.md Manual de instalación de Tileserver-GL Ver
argos\readme.md Manual de instalación de Argos Core Ver
multusk3s.md Notas para Multus en K3s Ver
velero\readme.md Manual de instalación de Velero Ver

7. 📊 Estado actual de la instalación

Componente Estado Comentario Enlace User/Pass
Arranque Cluster Completado Instalación básica validada https://k8s.c2et.net kubeconfig
Networking Completado probado Multus, flannel y MetalLB y validado - -
Ingress Completado Nginx Nginx funcionando - -
Volumenes persistentes Completado Rook Ceph a 4 nodos, falta ampliar a 5 nodos https://ceph.c2et.net admin / Pozuelo12345
Volumenes persistentes Completado Driver para las cabinas de almacenamiendo DEEL Powervault
Maquinas Virtuales Completado Desplegado kubevirt, dashboard e isoserver https://kubevirt.c2et.net
https://isoserver.c2et.net
-
Wireguard Completado Funcionando https://wireguard.c2et.net Pozuelo12345
CoreDNS Completado Funcionando
Apolo Completado Funcionando https://portal.apolo.c2et.net admin / 123456
Gitea Completado Funcionando https://git.c2et.net
Harbor Completado Funcionando https://harbor.c2et.net
Guacamole Completado Funcionando https://heimdall.c2et.net guacadmin / guacadmin
VSCode Completado Funcionando https://vscode.c2et.net Pozuelo12345
Tileserver-GL Funcionando https://mapas.c2et.net
External Completado Funcionando https://admin.firewall.c2et.net
https://admin.powervault1.c2et.net
https://admin.powervault2.c2et.net
Argos Core Completado Funcionando https://argos.panel.c2et.net/
Velero Completado Funcionando

8. Resumen final

  • Clúster distribuido en 2 sites (+ 1 árbitro en camino).
  • Kubernetes vainilla ➝ instalamos cada pieza: runtime, red, almacenamiento, balanceo.
  • Dos redes: administración y servicios.
  • Seguridad basada en VPN + DNS + ACLs.
  • Ingress con SSL automático.
  • Funcionalidades extra: proxy externo + VMs con KubeVirt + backup.

9. 📌 ¿Cómo usar este repositorio?

  1. Sigue el orden de los documentos desde readme.md.
  2. Comprueba cada paso con comprobaciones.md.
  3. Consulta el resto de documentos según el despliegue requerido (Ceph, KubeVirt, etc).
  4. Actualiza la documentación con lo que vayas validando.