From 1a46afecda663f7cc50c8ec2aca9a58c80830bc1 Mon Sep 17 00:00:00 2001 From: xguefer Date: Fri, 22 Aug 2025 18:33:33 +0200 Subject: [PATCH] explicando readme --- readme.md | 208 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 159 insertions(+), 49 deletions(-) diff --git a/readme.md b/readme.md index 402945e..83ab168 100644 --- a/readme.md +++ b/readme.md @@ -1,65 +1,175 @@ -# Guía de Instalación de Kubernetes en SUSE - -Este repositorio contiene los **manifiestos, scripts y documentación** para desplegar y gestionar un clúster Kubernetes basado en SUSE Linux. +# 🚀 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. --- -## Índice de documentos y referencias cruzadas +## 1. 🌍 Visión general del clúster -| Documento | Descripción | Referencia | -| ------------------- | ------------------------------------------ | ------------------------ | -| `cluster_init.md` | Proceso de inicializacion del cluster detallado en SUSE | [Ver](cluster_init.md) | -| `redes_internet.md` | MetalLB, Multus y demas | [Ver](redes_internet.md) | -| `ingress.md` | Capitulo dedicado a certmanager y diferentes ingress | [Ver](ingress.md) | -| `cephrook.md` | Instalación e integración de Ceph/Rook | [Ver](./cephrook.md) | -| `kubevirt\readme.md` | Despliegue de KubeVirt y gestión de VMs | [Ver](./kubevirt/readme.md) | -| `vm-windows-demo\readme.md` | Maquina virtual de ejemplo | [Ver](./vm-windows-demo/readme.md) | -| `comprobaciones.md` | Checklist y pruebas tras cada paso crítico | [Ver](./comprobaciones.md) | -| `script_limpieza.md` | Como hacer un script para eliminar la configuracion de un nodo | [Ver](script_limpieza.md) | -| `coredns-demo\readme.md` | Ejemplo de Multus: CoreDNS | [Ver](./coredns-demo/readme.md) | -| `storage\readme.md` | Ejemplo de recurso “class”: storage | [Ver](./storage/readme.md) | -| `dashboard\readme.md` | Ejemplo con un ingress: k8s dashboard | [Ver](./dashboard/readme.md) | -| `wireguard\readme.md` | Manual de instalación de Wireguard | [Ver](./wireguard/readme.md) | -| `coredns\readme.md` | Configuracion del DNS del sistema | [Ver](./coredns/readme.md) | -| `apolo\readme.md` | Manual de instalación de Apolo | [Ver](./apolo/readme.md) | -| `external\readme.md` | Manual de funcionamiento de External | [Ver](./external/readme.md) | -| `gitea\readme.md` | Manual de instalación de Gitea | [Ver](./gitea/readme.md) | -| `guacamole\readme.md` | Manual de instalación de Guacamole | [Ver](./guacamole/readme.md) | -| `vscode\readme.md` | Manual de instalación de VScode | [Ver](./vscode/readme.md) | -| `mapas\readme.md` | Manual de instalación de Tileserver-GL | [Ver](./mapas/readme.md) | -| `argos\readme.md` | Manual de instalación de Argos Core | [Ver](./argos/readme.md) | -| `multusk3s.md` | por si un dia instalo multus en k3s en vez de en k8s | [Ver](./multusk3s.md) | +* **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 | - | --- -## Estado actual de la instalación +## 2. 🔧 Componentes básicos -| 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 | -| `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/ | | -| `VSCode` | ✅ Completado | Funcionando |https://vscode.c2et.net/ | Pozuelo12345 | -| `Tileserver-GL` | ✅ Completado | Funcionando |https://mapas.c2et.net/ | | -| `External` | ✅ Completado | Funcionando |varias | | -| `Argos Core` | ✅ Completado | Funcionando |https://argos.panel.c2et.net/ | | +### 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 + +* **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. --- -## ¿Cómo usar este repositorio? +## 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). + +--- + +## 6. 📚 Índice de documentos y referencias cruzadas + +| Documento | Descripción | Referencia | +| --------------------------- | --------------------------------------------- | ---------------------------------- | +| `cluster_init.md` | Proceso de inicialización del cluster en SUSE | [Ver](cluster_init.md) | +| `redes_internet.md` | MetalLB, Multus y demás | [Ver](redes_internet.md) | +| `ingress.md` | Capítulo de cert-manager e ingress | [Ver](ingress.md) | +| `cephrook.md` | Instalación e integración de Ceph/Rook | [Ver](./cephrook.md) | +| `kubevirt\readme.md` | Despliegue de KubeVirt y gestión de VMs | [Ver](./kubevirt/readme.md) | +| `vm-windows-demo\readme.md` | Máquina virtual de ejemplo | [Ver](./vm-windows-demo/readme.md) | +| `comprobaciones.md` | Checklist tras cada paso crítico | [Ver](./comprobaciones.md) | +| `script_limpieza.md` | Script para limpiar un nodo | [Ver](script_limpieza.md) | +| `coredns-demo\readme.md` | Ejemplo de Multus con CoreDNS | [Ver](./coredns-demo/readme.md) | +| `storage\readme.md` | Ejemplo de StorageClass | [Ver](./storage/readme.md) | +| `dashboard\readme.md` | Ejemplo con ingress dashboard | [Ver](./dashboard/readme.md) | +| `wireguard\readme.md` | Manual de WireGuard | [Ver](./wireguard/readme.md) | +| `coredns\readme.md` | Configuración del DNS del sistema | [Ver](./coredns/readme.md) | +| `apolo\readme.md` | Manual de Apolo | [Ver](./apolo/readme.md) | +| `external\readme.md` | Funcionamiento de External | [Ver](./external/readme.md) | +| `gitea\readme.md` | Manual de instalación de Gitea | [Ver](./gitea/readme.md) | +| `guacamole\readme.md` | Manual de instalación de Guacamole | [Ver](./guacamole/readme.md) | +| `vscode\readme.md` | Manual de instalación de VScode | [Ver](./vscode/readme.md) | +| `mapas\readme.md` | Manual de instalación de Tileserver-GL | [Ver](./mapas/readme.md) | +| `argos\readme.md` | Manual de instalación de Argos Core | [Ver](./argos/readme.md) | +| `multusk3s.md` | Notas para Multus en K3s | [Ver](./multusk3s.md) | + +--- + +## 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](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/](https://ceph.c2et.net/) | admin / Pozuelo12345 | +| `Maquinas Virtuales` | ✅ Completado | Desplegado kubevirt, dashboard e isoserver | [https://kubevirt.c2et.net/](https://kubevirt.c2et.net/) [https://isoserver.c2et.net/](https://isoserver.c2et.net/) | - | +| `Wireguard` | ✅ Completado | Funcionando | [https://wireguard.c2et.net/](https://wireguard.c2et.net/) | Pozuelo12345 | +| `CoreDNS` | ✅ Completado | Funcionando | | | +| `Apolo` | ✅ Completado | Funcionando | [https://portal.apolo.c2et.net/](https://portal.apolo.c2et.net/) | admin / 123456 | +| `Gitea` | ✅ Completado | Funcionando | [https://git.c2et.net/](https://git.c2et.net/) | | +| `Harbor` | ✅ Completado | Funcionando | [https://harbor.c2et.net/](https://harbor.c2et.net/) | | +| `Guacamole` | ✅ Completado | Funcionando | [https://heimdall.c2et.net/](https://heimdall.c2et.net/) | | +| `VSCode` | ✅ Completado | Funcionando | [https://vscode.c2et.net/](https://vscode.c2et.net/) | Pozuelo12345 | +| `Tileserver-GL` | ✅ Completado | Funcionando | [https://mapas.c2et.net/](https://mapas.c2et.net/) | | +| `External` | ✅ Completado | Funcionando | varias | | +| `Argos Core` | ✅ Completado | Funcionando | [https://argos.panel.c2et.net/](https://argos.panel.c2et.net/) | | + +--- + +## 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. + +--- + +## 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 documentacion con lo que vayas validando. - - +4. Actualiza la documentación con lo que vayas validando.