Un simulador interactivo de Kubernetes para aprender conceptos de orquestación de contenedores, infraestructura en la nube y DevOps.
- Gestión de Clusters: Crear y administrar clusters de Kubernetes simulados
- Administración de Nodos: Agregar y configurar nodos worker con diferentes tipos de instancia
- Despliegue de Servicios: Simular despliegues de aplicaciones con auto-escalado
- 🌐 Networking Module (NUEVO): Configuración avanzada de Load Balancers, Network Policies, Ingress
- Monitoreo en Tiempo Real: Métricas de CPU, memoria y rendimiento
- Pruebas de Carga: Sistema de testing para evaluar el comportamiento bajo carga
- Exportación YAML: Generar configuraciones reales de Kubernetes
El módulo de Networking agrega funcionalidades avanzadas para simular aspectos de red de Kubernetes:
- Tipos soportados: LoadBalancer (Cloud), NodePort, ClusterIP
- Configuración de puertos: Puerto externo y puerto de destino
- Distribución de tráfico: Round-robin, health checks
- IPs externas simuladas: Generación automática de IPs públicas
- Pruebas de conectividad: Verificación de estado y latencia
- ClusterIP: Servicios internos del cluster
- NodePort: Exposición en puertos específicos de nodos
- LoadBalancer: Servicios con balanceadores de carga externos
- Endpoints automáticos: Generación de endpoints por réplica
- DNS interno: Resolución de nombres simulada
- Control de tráfico: Políticas de Allow/Deny
- Dirección de tráfico: Ingress, Egress o ambos
- Filtrado por CIDR: Especificación de rangos de red
- Aplicación por servicio: Políticas específicas por aplicación
- Toggle dinámico: Habilitación/deshabilitación en tiempo real
- Routing por host: Configuración de dominios virtuales
- Path-based routing: Enrutamiento por rutas específicas
- TLS/SSL: Soporte para HTTPS simulado
- Ingress Classes: Nginx y otros controladores
- Pruebas de URL: Verificación de accesibilidad externa
- Estado global de la aplicación (
appState) - Configuraciones del sistema (
config) - Funciones de gestión de estado (
StateManager) - Cálculo de métricas agregadas
- Funciones de formateo y validación
- Sistema de logging (
Logger) - Utilidades para exportación/importación
- Generación de YAML para Kubernetes
- Crear y eliminar clusters
- Validaciones y gestión de estado
- Exportación de configuraciones
- Cálculo de costos y métricas
- Agregar y administrar nodos worker
- Monitoreo de recursos en tiempo real
- Simulación de fallos y recuperación
- Drenado de nodos
- Despliegue de aplicaciones
- Auto-escalado horizontal
- Simulación de carga y errores
- Métricas de rendimiento
- Sistema de métricas en tiempo real
- Pruebas de carga configurables
- Reportes automáticos de testing
- Interfaz de usuario unificada
-
index.html- Versión original monolíticaopen index.html
- ✅ Funcionalidad completa en un solo archivo
- ❌ Difícil de mantener y extender
-
index-atomized.html- Versión modular básicaopen index-atomized.html
- ✅ Código organizado en módulos
- ✅ Fácil mantenimiento
- ✅ Funcionalidad idéntica al original
-
index-extended.html- 🆕 Versión con Networkingopen index-extended.html
- ✅ Todas las ventajas de la versión atomizada
- ✅ Módulo completo de Networking
- ✅ Funcionalidades avanzadas de red
- 🎯 RECOMENDADA para aprendizaje completo
- Para estudiantes/aprendizaje:
index-extended.html(más completo) - Para desarrollo/modificación:
index-atomized.html(más simple de extender) - Para referencia:
index.html(versión original)
- Crear nuevo módulo (ejemplo:
networking.js):
const NetworkingManager = {
// Nueva funcionalidad aquí
};
window.NetworkingManager = NetworkingManager;- Incluir en HTML:
<script src="src/js/networking.js"></script>- Usar en otros módulos:
// Ahora disponible globalmente
NetworkingManager.nuevaFuncion();- Editar
src/css/styles.css - Los cambios se reflejan automáticamente
- Extender el objeto
configenstate.js - Usar en cualquier módulo:
config.nuevaConfiguracion
- Aprender conceptos de Kubernetes sin complejidad
- Experimentar con auto-escalado y pruebas de carga
- Entender métricas y monitoreo
- Demostrar conceptos de orquestación
- Simular escenarios reales de producción
- Mostrar mejores prácticas de DevOps
- Entender arquitecturas de microservicios
- Aprender sobre recursos y límites
- Practicar con configuraciones YAML
Si tienes el código original y quieres migrar:
- Separar CSS: Mover estilos a
src/css/styles.css - Modularizar JavaScript: Dividir funcionalidades en archivos específicos
- Actualizar HTML: Referenciar archivos externos
- Probar funcionalidad: Verificar que todo funciona igual
- ✅ Crear clusters en diferentes regiones
- ✅ Agregar nodos con distintos tipos de instancia
- ✅ Desplegar servicios con auto-escalado
- ✅ Ejecutar pruebas de carga
- ✅ Verificar exportación YAML
- Nombres de recursos válidos
- Límites de réplicas respetados
- Capacidad de cluster disponible
- Configuraciones coherentes
- Número de clusters activos
- Total de nodos en ejecución
- Pods desplegados
- Requests por segundo
- Uso promedio de CPU
- Consumo de memoria
- Distribución de carga por nodo
- Estado de salud de servicios
- RPS durante pruebas de carga
- Tiempo de respuesta promedio
- Tasa de errores
- Escalado automático activado
Editar config.nodeTypes en state.js:
nodeTypes: [
{ value: 'custom.large', label: 'Custom Large (8 vCPU, 32GB RAM)' },
// Agregar más tipos...
]Extender config.loadPatterns y TestingManager.calculateCurrentRPS():
case 'custom-pattern':
// Lógica personalizada
return customCalculation(test);Modificar config.technologies:
technologies: [
{ value: 'java', label: 'Java', icon: '☕' },
{ value: 'dotnet', label: '.NET', icon: '🔷' }
]- [+] Persistencia en localStorage
- [+] Importar/exportar configuraciones completas
- [+] Visualización de topología de red
- Simulación de fallos de infraestructura
- Integración con métricas reales (Prometheus)
- Plantillas predefinidas de despliegues
- Sistema de notificaciones y alertas
- Dashboard de costos detallado
- Networking: Simular balanceadores de carga y redes
- Storage: Volúmenes persistentes y backups
- Security: RBAC y políticas de seguridad
- CI/CD: Pipeline de despliegue automatizado
- Multi-cloud: Soporte para diferentes proveedores
Error: "No hay clusters creados"
- Solución: Crear al menos un cluster antes de agregar nodos o servicios
Pruebas de carga no funcionan
- Verificar que hay servicios desplegados
- Confirmar que el cluster tiene nodos disponibles
Métricas no se actualizan
- Verificar la consola del navegador por errores
- Recargar la página si es necesario
Auto-escalado no funciona
- Verificar límites de réplicas mínimas/máximas
- Confirmar que hay capacidad en el cluster
Para activar logging detallado, abrir la consola del navegador:
// Ver estado completo
console.log(appState);
// Ver logs del sistema
console.log(Logger.logs);
// Ver métricas actuales
console.log(StateManager.getTotals());type(scope): description
feat(clusters): add multi-region support
fix(nodes): resolve memory leak in metrics
docs(readme): update installation instructions
style(css): improve responsive design
- Crear branch desde
main - Implementar cambios en módulos apropiados
- Probar funcionalidad completa
- Actualizar documentación si es necesario
- Crear PR con descripción detallada
Este proyecto es de código abierto y está disponible bajo la licencia MIT.
- Inspirado en las mejores prácticas de Kubernetes
- Diseñado para facilitar el aprendizaje de DevOps
- Construido con tecnologías web estándar para máxima compatibilidad
¡Disfruta aprendiendo Kubernetes de manera interactiva! 🚀
Para preguntas o sugerencias, no dudes en abrir un issue o contribuir al proyecto.