2025-05-04 09:09:43 +00:00
2025-04-27 22:11:52 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 00:26:25 +00:00
2025-05-04 09:09:43 +00:00
2025-05-04 09:09:43 +00:00
2025-05-04 09:09:43 +00:00
2025-05-04 09:09:43 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 21:55:49 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 00:26:25 +00:00
2025-05-04 09:09:43 +00:00
2025-05-04 09:09:43 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 00:26:25 +00:00
2025-04-27 21:55:49 +00:00

🚀 Virtualización Next-Gen: Clúster K3s con DevOps

Bienvenido a Virtualización Next-Gen, una guía práctica y modular para desplegar un clúster Kubernetes con K3s, alta disponibilidad, almacenamiento centralizado, ingress con TLS automático y soporte para máquinas virtuales con KubeVirt. Todo está versionado en Git y gestionado con Argo CD.

Este repositorio está orientado tanto a homelabs avanzados como a entornos profesionales que buscan una infraestructura reproducible, automatizada y documentada.


🧭 Tabla de contenidos

Sección Descripción
📘 Guía de instalación Paso a paso para desplegar el clúster completo.
🏗️ Arquitectura del clúster Estructura lógica, roles de nodos y servicios desplegados.
🌐 Direccionamiento y Redes Asignación de IPs, segmentación de redes y VLANs.
🛠️ Herramientas auxiliares Scripts para automatizar tareas como publicar, clonar o subir repos.
📚 Procedimientos adicionales Tareas puntuales como eliminar namespaces atascados o cargas manuales.
📋 Comandos Kubernetes básicos Referencia rápida de comandos kubectl y virtctl más usados.

⚙️ Componentes clave del clúster

  • Separación de redes: tráfico de gestión, almacenamiento e internodo aislados por VLANs.
  • Alta disponibilidad con IP flotante (keepalived) y bonding de red (bond0)
  • K3s cluster en tartaro, styx y niflheim (dedicado a almacenamiento)
  • ZFS + NFS como backend de almacenamiento
  • Ingress TLS automatizado con cert-manager + ingress-nginx
  • Gitea como Git server para los manifiestos
  • Argo CD para despliegue GitOps (App of Apps)
  • KubeVirt para gestionar VMs dentro de Kubernetes
  • Apache Guacamole para acceso remoto a escritorios vía navegador
  • VS Code Server desplegado como pod accesible por Ingress
  • Harbor como registro de contenedores privado desplegado en Kubernetes

📂 Estructura del repositorio

Estructura del repositorio:

  • docs/: Carpeta de documentación con guías y herramientas auxiliares.
    • guia-instalacion.md: Manual paso a paso para desplegar todo el clúster.
    • direccionamiento-redes.md: Detalle de la segmentación IP y VLANes.
    • comandos-kubectl.md: Comandos frecuentes de gestión Kubernetes y KubeVirt.
    • herramienta git-publish.md: Explica el script para publicar repositorios individuales en Gitea.
    • herramienta publicar-todos.md: Script para publicar todos los manifiestos del clúster de forma masiva.
    • herramienta git-subirtodos.md: Sube todos los cambios a los repositorios remotos.
    • herramienta git-bajartodos.md: Clona todos los repositorios configurados.
    • herramienta git-chilremove.md: Elimina subrepositorios integrados.
  • k8s-argocd/: Manifiestos para desplegar Argo CD, incluyendo Ingress y servicios personalizados.
  • k8s-cert-manager/: Manifiestos para instalar cert-manager, incluyendo ClusterIssuer de staging y producción.
  • k8s-gitea/: Manifiestos para desplegar Gitea y su base de datos con almacenamiento persistente y acceso externo.
  • k8s-guacamole/: Manifiestos para desplegar Apache Guacamole con autenticación MySQL y acceso vía Ingress.
  • k8s-harbor/: Manifiestos para desplegar Harbor como registro de contenedores privado.
  • k8s-ingress-controller/: Despliegue de ingress-nginx como DaemonSet con configuración personalizada, RBAC, y service.
  • k8s-kubevirt-isoserver/: Servidor HTTP que expone imágenes ISO para KubeVirt, con su PVC y despliegue.
  • k8s-kubevirt-manager/: Despliegue opcional del panel web de KubeVirt con su acceso Ingress y RBAC.
  • k8s-master/: Repositorio central con la definición App of Apps de Argo CD (apps/*.yaml para cada servicio).
  • k8s-storage/: Despliegue del NFS server y del NFS client provisioner, con su StorageClass y permisos.
  • k8s-vm-windows-demo/: Ejemplo de despliegue de una máquina virtual Windows usando KubeVirt.
  • k8s-vscode/: Pod de Visual Studio Code Server accesible vía navegador y gestionado por Kubernetes.
  • publicar-todos.sh: Script shell para publicar automáticamente todos los manifiestos locales a sus repos Gitea.
  • readme.md: Documento principal del repositorio con introducción, tabla de contenidos y enlaces.

🛠️ Herramientas auxiliares

En la carpeta docs/ tienes scripts útiles para trabajar con Gitea:


📚 Procedimientos adicionales

Ejemplos:

  • Inyectar el esquema SQL de Guacamole: ver sección correspondiente en la guía de instalación
  • Crear y gestionar volúmenes o VMs de prueba con KubeVirt
  • Publicar todos los manifiestos desde local con publicar-todos.sh

🙌 Autor

Xavor - Manabo Inc
Proyecto autogestionado y mantenido para homelab y formación profesional.
Repositorio privado/documentado en https://git.manabo.org


🧪 Estado actual

Clúster en funcionamiento
Ingress con TLS
Almacenamiento replicado
App of Apps en Argo CD
Acceso remoto vía Guacamole
Registro de contenedores privado con Harbor
☑️ Próximos pasos: integración con FreeIPA, backups, y monitorización

Description
Documentacion
Readme 111 KiB
Languages
Shell 100%