explicando readme

This commit is contained in:
2025-08-22 18:33:33 +02:00
parent 824a9f92cd
commit 1a46afecda

208
readme.md
View File

@@ -1,65 +1,175 @@
# Guía de Instalación de Kubernetes en SUSE # 🚀 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.
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 | * **Kubernetes 1.33 (vainilla)** → versión estándar, instalamos todas las piezas manualmente.
| ------------------- | ------------------------------------------ | ------------------------ | * **Dos sites (A y B)** con **dos servidores cada uno**.
| `cluster_init.md` | Proceso de inicializacion del cluster detallado en SUSE | [Ver](cluster_init.md) | * Plan: añadir un **tercer site con nodo árbitro**:
| `redes_internet.md` | MetalLB, Multus y demas | [Ver](redes_internet.md) |
| `ingress.md` | Capitulo dedicado a certmanager y diferentes ingress | [Ver](ingress.md) | * Su función será **desempatar** si un site cae y mantener coherencia.
| `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) | | Site | Servidores | Discos Ceph |
| `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) | | A | 2 hosts | 12 discos |
| `script_limpieza.md` | Como hacer un script para eliminar la configuracion de un nodo | [Ver](script_limpieza.md) | | B | 2 hosts | 12 discos |
| `coredns-demo\readme.md` | Ejemplo de Multus: CoreDNS | [Ver](./coredns-demo/readme.md) | | C | 1 árbitro | - |
| `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) |
--- ---
## Estado actual de la instalación ## 2. 🔧 Componentes básicos
| Componente | Estado | Comentario |Enlace |User/Pass | ### 2.1. Runtime de contenedores
| ------------------- | -------------------------- | ----------------------------------- |----------------- |------------- |
| `Arranque Cluster` | ✅ Completado | Instalación básica validada | https://k8s.c2et.net | kubeconfig | * Usamos **containerd** (Docker ya no es soportado directamente por Kubernetes).
| `Networking` | ✅ Completado | probado Multus, flannel y MetalLB y validado |- |- |
| `Ingress` | ✅ Completado Nginx | Nginx funcionando |- |- | ### 2.2. Red
| `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/ |- | * **Flannel** ➝ conecta los pods entre nodos.
| `Wireguard` | ✅ Completado | Funcionando |https://wireguard.c2et.net/ | Pozuelo12345 | * **Multus** ➝ permite varias interfaces de red por pod (**NAD**).
| `CoreDNS` | ✅ Completado | Funcionando | | |
| `Apolo` | ✅ Completado | Funcionando |https://portal.apolo.c2et.net/ | admin / 123456 | ### 2.3. Almacenamiento
| `Gitea` | ✅ Completado | Funcionando |https://git.c2et.net/ | |
| `Harbor` | ✅ Completado | Funcionando |https://harbor.c2et.net/ | | * **Ceph distribuido**:
| `Guacamole` | ✅ Completado | Funcionando |https://heimdall.c2et.net/ | |
| `VSCode` | ✅ Completado | Funcionando |https://vscode.c2et.net/ | Pozuelo12345 | * 24 discos en total (6 por servidor).
| `Tileserver-GL` | ✅ Completado | Funcionando |https://mapas.c2et.net/ | | * **Replica 4** ➝ soporta caída de un site completo.
| `External` | ✅ Completado | Funcionando |varias | | * Requiere el **quinto nodo árbitro** para quorum real.
| `Argos Core` | ✅ Completado | Funcionando |https://argos.panel.c2et.net/ | | * 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`. 1. Sigue el orden de los documentos desde `readme.md`.
2. Comprueba cada paso con `comprobaciones.md`. 2. Comprueba cada paso con `comprobaciones.md`.
3. Consulta el resto de documentos según el despliegue requerido (Ceph, KubeVirt, etc). 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.