Temario del curso
Día 1 – Contenedores y Gestión de Imágenes
Introducción a Plataformas de Contenedores
- Comparación del despliegue tradicional de aplicaciones frente al despliegue basado en contenedores
- Contenedores y máquinas virtuales
- Runtos de contenedores y motores de contenedores
- El rol de Docker, Kubernetes y OpenShift
- Arquitecturas comunes de plataformas de contenedores
- Flujos de trabajo de desarrollo, pruebas y producción
Trabajo con Contenedores
- Ejecución y gestión de contenedores
- Ciclo de vida del contenedor
- Inicio, detención y eliminación de contenedores
- Ejecución de comandos dentro de contenedores
- Variables de entorno
- Mapeo de puertos
- Registros (logs) del contenedor
- Uso de recursos e inspección de procesos
Construcción de Imágenes de Contenedores
- Estructura de imágenes y capas
- Creación de Dockerfiles y Containerfiles
- Selección de imágenes base
- Agregado de dependencias de la aplicación
- Configuración de puntos de entrada y comandos
- Caché de imágenes
- Reducción del tamaño de la imagen
- Construcción de imágenes reproducibles
Registros de Contenedores
- Registros públicos y privados
- Etiquetado y versionado de imágenes
- Carga y extracción de imágenes (push y pull)
- Autenticación de imágenes
- Retención y limpieza de imágenes
- Consideraciones básicas de seguridad de imágenes
Redes y Almacenamiento de Contenedores
- Conceptos de redes de contenedores
- Redes bridge
- Exposición de puertos
- Comunicación entre contenedores
- Mounts vinculados y volúmenes
- Datos persistentes del contenedor
- Consideraciones de respaldo (backup)
Ejercicios Prácticos
- Ejecutar e inspeccionar contenedores
- Construir una imagen de aplicación
- Configurar puertos y variables de entorno
- Publicar una imagen en un registro
- Almacenar datos persistentes fuera de un contenedor
Día 2 – Arquitectura de Kubernetes y Cargas de Trabajo
Fundamentos de Kubernetes
- El propósito de la orquestación de contenedores
- Arquitectura de Kubernetes
- Componentes del plano de control (control plane)
- Nodos trabajadores (worker nodes)
- Servidor API
- Planificador (Scheduler)
- Controladores
- Estado del clúster y estado deseado
- Comunicación con el clúster utilizando kubectl
Recursos de Kubernetes
- Pods
- ReplicaSets
- Deployments
- Espacios de nombres (Namespaces)
- Etiquetas y anotaciones
- Selectores
- Definiciones de recursos declarativas
- Manifiestos en YAML
Implementación de Aplicaciones
- Creación y gestión de Deployments
- Escalado de cargas de trabajo
- Actualización de imágenes de contenedores
- Actualizaciones progresivas (Rolling updates)
- Reversión de cambios (Rollbacks)
- Historial de despliegues
- Reinicio de cargas de trabajo
- Gestión de réplicas de aplicaciones
Configuración de Aplicaciones
- ConfigMaps
- Secrets (Secretos)
- Variables de entorno
- Archivos de configuración
- Separación del código de la aplicación de la configuración
- Gestión de configuraciones específicas del entorno
Gestión de Recursos
- Solicitudes de CPU y memoria
- Límites de CPU y memoria
- Cuotas de recursos
- Rangos de límite (Limit ranges)
- Implicaciones en el escalado (Scheduling)
- Diagnóstico de fallas relacionadas con recursos
Ejercicios Prácticos
- Implementar una aplicación en contenedor
- Crear y actualizar manifiestos de Kubernetes
- Escalar una aplicación
- Realizar un actualización progresiva (rolling update) y reversiones (rollbacks)
- Configurar la aplicación utilizando ConfigMaps y Secrets
- Aplicar solicitudes y límites de recursos
Día 3 – Redes, Almacenamiento y Seguridad en Kubernetes
Redes en Kubernetes
- Modelo de red del clúster
- Comunicación entre pods
- Descubrimiento de servicios (Service discovery)
- DNS dentro del clúster
- Servicios ClusterIP
- Servicios NodePort
- Servicios LoadBalancer
- Conceptos de Ingress
- Patrones de exposición de aplicaciones
Políticas de Red
- Control del tráfico entre cargas de trabajo
- Reglas de ingress y egress
- Control de tráfico basado en espacios de nombres
- Pruebas de conectividad de red
- Resolución de problemas de comunicación de servicios
Almacenamiento Persistente
- Almacenamiento efímero y persistente
- Volumes (Volúmenes)
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Provisionamiento dinámico
- Modos de acceso
- Políticas de reclaim (recuperación)
- Almacenamiento para aplicaciones con estado
Control de Acceso en Kubernetes
- Conceptos de autenticación y autorización
- Control de Acceso Basado en Roles (RBAC)
- Roles y ClusterRoles
- RoleBindings y ClusterRoleBindings
- Cuentas de servicio
- Acceso de privilegio mínimo
- Inspección de permisos efectivos
Seguridad de Cargas de Trabajo
- Contextos de seguridad (Security contexts)
- Ejecución de contenedores como usuario no root
- Capacidades de Linux
- Sistemas de archivos de solo lectura
- Gestión de secretos
- Procedencia de imágenes
- Riesgos comunes de configuración
Ejercicios Prácticos
- Exponer una aplicación utilizando servicios de Kubernetes
- Configurar ingress
- Restringir tráfico utilizando una política de red
- Provisionar almacenamiento persistente
- Configurar permisos RBAC
- Ejecutar una carga de trabajo con un contexto de seguridad apropiado
Día 4 – Trabajo con Entornos OpenShift
Introducción a OpenShift
- OpenShift como plataforma de aplicaciones basada en Kubernetes
- Recursos de Kubernetes en un entorno OpenShift
- Arquitectura del clúster de OpenShift
- Proyectos y espacios de nombres
- Usuarios de la plataforma y cuentas de servicio
- Trabajo con la consola web
- Trabajo con la CLI de OpenShift
Gestión de Proyectos y Acceso
- Creación y gestión de proyectos
- Asignación de permisos de usuario
- Roles a nivel de proyecto
- Acceso administrativo
- Cuotas de recursos
- Rangos de límite (Limit ranges)
- Cuentas de servicio
- Revisión de recursos del proyecto
Implementación de Aplicaciones
- Despliegue de imágenes de contenedores
- Creación de cargas de trabajo de aplicaciones
- Gestión de despliegues
- Escalado de aplicaciones
- Actualización de versiones de aplicaciones
- Reversión de cambios (Rollbacks)
- Gestión de la configuración de la aplicación
- Trabajo con secrets
Exposición de Aplicaciones
- Servicios en OpenShift
- Rutas (Routes)
- Conceptos de TLS
- Acceso interno y externo a aplicaciones
- Nombres de host y certificados
- Diagnóstico de problemas de rutas y servicios
Almacenamiento en OpenShift
- Persistent Volume Claims
- StorageClasses
- Conexión de almacenamiento a cargas de trabajo
- Cargas de trabajo con estado (Stateful workloads)
- Permisos de acceso al almacenamiento
- Resolución de problemas de montaje de volúmenes
Escalado y Gestión de Nodos
- Etiquetas y selectores
- Selectores de nodo (Node selectors)
- Taints y tolerations
- Conceptos de afinidad y anti-afinidad
- Ubicación de cargas de trabajo
- Aislamiento y vaciado de nodos (Cordoning and draining)
- Consideraciones de mantenimiento de nodos
Ejercicios Prácticos
- Acceder a un entorno OpenShift
- Crear y configurar un proyecto
- Implementar y exponer una aplicación
- Configurar acceso de usuarios y cuentas de servicio
- Conectar almacenamiento persistente
- Escalar y actualizar una carga de trabajo en ejecución
Día 5 – Operaciones, Monitoreo y Resolución de Problemas
Monitoreo de la Plataforma
- Monitoreo de la salud del clúster y de la aplicación
- Métricas de recursos
- Salud de los nodos
- Estado de las cargas de trabajo
- Capacidad y utilización de recursos
- Identificación de limitaciones de rendimiento
Registros (Logging) y Eventos
- Registros del contenedor
- Registros del pod
- Registros anteriores del contenedor
- Eventos de Kubernetes
- Mensajes de aplicaciones y plataforma
- Filtrado e interpretación de datos operativos
Verificaciones de Salud (Health Checks)
- Probes de inicio (Startup probes)
- Probes de preparación (Readiness probes)
- Probes de vitalidad (Liveness probes)
- Diseño de puntos finales de salud útiles
- Diagnóstico de fallas de probes
- Prevención de reinicios innecesarios de aplicaciones
Resolución de Problemas de Cargas de Trabajo
- Pods pendientes
- Fallos en la extracción de imágenes (Image pull failures)
- Bucles de crash (Crash loops)
- Variables de entorno mal configuradas
- Montajes fallidos
- Recursos insuficientes
- Errores de permisos
- Problemas de conectividad de servicios y rutas
- Problemas de DNS
- Fallos en el inicio de aplicaciones
Seguridad Operativa
- Revisión de permisos
- Uso de cuentas de servicio
- Manejo seguro de credenciales
- Prácticas de seguridad de imágenes
- Aislamiento de red
- Auditoría del acceso a la plataforma
- Aplicación del principio de privilegio mínimo
Mantenimiento y Gestión del Ciclo de Vida
- Verificaciones rutinarias de la plataforma
- Mantenimiento de nodos
- Consideraciones de respaldo de aplicaciones
- Respaldo de configuración
- Planificación de actualizaciones
- Gestión de cambios
- Pruebas de actualizaciones
- Planificación de reversiones (Rollbacks)
- Conceptos de recuperación ante desastres
Taller Práctico Final
Los participantes completan un escenario operacional completo:
- Construir y etiquetar una imagen de contenedor.
- Publicar la imagen en un registro.
- Implementar la aplicación en Kubernetes u OpenShift.
- Configurar la configuración y credenciales de la aplicación.
- Exponer la aplicación.
- Conectar almacenamiento persistente.
- Configurar permisos de acceso.
- Agregar verificaciones de salud (health checks).
- Escalar y actualizar la aplicación.
- Diagnosticar y resolver un fallo introducido intencionalmente.
Formato del Curso
- Lecciones interactivas y discusiones técnicas.
- Demostraciones por parte del instructor.
- Amplia práctica con ejercicios hands-on.
- Talleres de administración y resolución de problemas basados en escenarios.
- Trabajo práctico en entornos de contenedores, Kubernetes y OpenShift.
Opciones de Personalización del Curso
- El curso puede adaptarse a la infraestructura existente del participante, proveedor de nube y herramientas de contenedores.
- El equilibrio entre los temas de Docker, Kubernetes y OpenShift puede ajustarse según la experiencia del equipo.
- Los ejercicios prácticos pueden adaptarse a las aplicaciones, procesos de despliegue y requisitos operativos de la organización.
Aviso de Marca Comercial
OpenShift es una marca comercial de Red Hat, Inc. Esta formación desarrollada independientemente no está afiliada con, respaldada por ni autorizada por Red Hat.
Requerimientos
Los participantes deben tener:
- Experiencia utilizando la línea de comandos de Linux.
- Conocimientos básicos de administración de sistemas o DevOps.
- Una comprensión general de los conceptos de redes.
- Familiaridad con los procesos de despliegue de software.
Experiencia previa con Docker, Kubernetes o OpenShift es útil pero no requerida.
Reseñas (7)
Reda explicó y simplificó mucho el entendimiento
Eric Van Wyk
Curso - Docker, Kubernetes and OpenShift 3 for Administrators
Traducción Automática
Los laboratorios fueron lo mejor. Son muy prácticos y proporcionan experiencia práctica. Personalmente, creo que es el medio más efectivo para comprender realmente el curso y aplicar los conceptos que se cubrieron.
Hishaam Johnstone
Curso - Docker, Kubernetes and OpenShift 3 for Administrators
Traducción Automática
Aprecié mucho la disposición para ayudar y explicar más cuando había incertidumbre
Letlotlo Miffi
Curso - Docker, Kubernetes and OpenShift 3 for Administrators
Traducción Automática
Adriano estudió el tema muy profundamente, lo cual es el estilo que más prefiero: menos sobre los comandos y más sobre el mecanismo detrás de ellos. Los escenarios discutidos estaban bien respaldados por ejemplos prácticos, lo que ayudó mucho a comprender el material presentado.
Mariusz BANASZCZYK - Sopra Steria
Curso - Docker, Kubernetes and OpenShift for Administrators
Traducción Automática
Conocimientos profundos de Adriano. Explicación de los conceptos básicos
Tomasz Szalankiewicz - LPP SA
Curso - Docker, Kubernetes and OpenShift for Administrators
Traducción Automática
Generalmente me gustó el presentador.
Josif Kovacevic - ANZ
Curso - Docker, Kubernetes and OpenShift for Administrators
Traducción Automática
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
Curso - Docker, Kubernetes and OpenShift for Administrators
Traducción Automática