Inicio: 16 Enero 2023
Course
Docker & Kubernetes
Informes: Organiza:
Celular / WhatsApp: (+51) 944123529
Síguenos Facebook: PCLinux Perú
Email: informes@pclinux.pe
Introducción .-
El “Course - Docker & Kubernetes - (2023-01)", esta desarrollado
para entrenar al participante en el uso adecuado de la tecnología de
la contenerización, con su herramienta estrella Docker, para poder
crear contenedores basados en imágenes de terceros e imágenes
propias, subir imágenes al registro de docker (docker hub) y montar
entornos locales de desarrollo con docker y otros.
La forma en que se despliegan aplicaciones en producción evoluciona
y cambia todos los días, por lo que usaremos Kubernetes, el cual nos
ayuda a la administración de aplicaciones, estas aplicaciones corren
en containers de Docker.
Las aplicaciones Kubernetes son soluciones en contenedores para
el entorno empresarial, ofrecen plantillas de despliegue predefinidas,
portabilidad, asignación de licencias simplificada y facturación
consolidada, pueden ejecutarse en on-premise.o en la nube, permiten
aumentar la productividad de los desarrolladores.
Nuestra organización le invita a participar de nuestro curso y lograr
ser un Administrador “Docker & Kubernetes”
PCLinux Perú.
TALLERES PRESENCIALES - INFONET SOLUCIONES PERÚ - HUAMANGA, PUCALLPA, HUANCAYO, IQUITOS, PUNO, ETC.
Contenedores
Los contenedores son unidades ejecutables de software en los
que el código de aplicación se empaqueta, junto con sus bibliotecas
y dependencias, de forma común para que pueda ejecutarse en
cualquier lugar, ya sea en el desktop, en la TI tradicional o en la nube.
Para ello, los contenedores utilizan una forma de virtualización
del sistema operativo (SO) en la que las características del SO
(específicamente los espacios de nombres y las primitivas de cgroups
en el caso del kernel de Linux) se aprovechan al máximo para aislar
procesos y controlar la cantidad de CPU, memoria y disco a los que
dichos procesos tienen acceso.
Los contenedores son pequeños, rápidos y portátiles porque, a
diferencia de una máquina virtual, los contenedores no necesitan
incluir un SO invitado en todos los casos y, en su lugar, pueden
simplemente hacer uso de las características y recursos del
sistema operativo host.
Los contenedores son una forma de virtualización del sistema
operativo. Un solo contenedor se puede usar para ejecutar
cualquier cosa, desde un microservicio o un proceso de software
a una aplicación de mayor tamaño. Dentro de un contenedor se
encuentran todos los ejecutables, el código binario, las bibliotecas
y los archivos de configuración necesarios.
Sin embargo, en comparación con los métodos de virtualización
de máquinas o servidores, los contenedores no contienen imágenes
del sistema operativo. Esto los hace más ligeros y portátiles, con
una sobrecarga significativamente menor.
Los contenedores aparecieron hace décadas, con versiones como
FreeBSD Jails y AIX Workload Partitions, pero la mayoría de los
desarrolladores modernos recuerdan el 2013 como el inicio de la
era moderna del contenedor con la introducción de Docker.
Beneficios de los contenedores
Los contenedores son una forma optimizada de crear, probar, poner
en marcha y volver a poner en marcha aplicaciones en varios entornos,
desde un portátil local de un desarrollador hasta un centro de datos
on-premises e incluso en la nube.
Algunos de los beneficios de los contenedores son:
Menos sobrecarga
Los contenedores requieren menos recursos del sistema que los
entornos de máquinas virtuales tradicionales o de hardware porque
no incluyen imágenes del sistema operativo.
Mayor portabilidad
Las aplicaciones que se ejecutan en contenedores se pueden poner
en marcha fácilmente en sistemas operativos y plataformas de
hardware diferentes.
Funcionamiento más constante
Los equipos de DevOps saben que las aplicaciones en contenedores
van a ejecutarse igual, independientemente de dónde se pongan en
marcha.
Mayor eficiencia
Los contenedores permiten poner en marcha, aplicar parches o
escalar las aplicaciones con mayor rapidez.
Mejor desarrollo de aplicaciones
Los contenedores respaldan los esfuerzos ágiles y de DevOps para
acelerar los ciclos de desarrollo, prueba y producción.
Casos de uso de contenedores
Algunas de las formas más habituales en las que las organizaciones
usan los contenedores son:
El rehospedaje de las aplicaciones existentes en arquitecturas
de nube modernas
Algunas organizaciones utilizan contenedores para migrar las
aplicaciones existentes a entornos más modernos.
Esta práctica ofrece algunos de los beneficios básicos de la
virtualización de sistemas operativos, no ofrece todas las ventajas
de una arquitectura de aplicaciones modular basada en contenedores.
Refactorización de las aplicaciones existentes para contenedores
Aunque la refactorización requiere mucho más que la migración del
rehospedaje, esta ofrece todos los beneficios de un entorno de
contenedores.
Desarrollo de nuevas aplicaciones nativas del contenedor
Al igual que la refactorización, este método permite disfrutar de
todos los beneficios de los contenedores.
Más compatibilidad con las arquitecturas de microservicios
Las aplicaciones distribuidas y los microservicios se pueden aislar,
poner en marcha y escalar más fácilmente utilizando elementos
básicos de contenedores individuales.
Soporte de DevOps para la integración y la puesta en marcha
continuas (CI/CD)
La tecnología de contenedores permite la creación, la prueba y la
puesta en marcha optimizadas a partir de las mismas imágenes
de contenedores.
Una puesta en marcha más sencilla de tareas y trabajos repetitivos
Los contenedores se ponen en marcha para dar soporte a uno o
varios procesos parecidos que, a menudo, se ejecutan en segundo
plano, como las funciones ETL o los lotes de tareas.
Docker
Docker es una plataforma de código abierto para crear, implementar
y gestionar aplicaciones en múltiples contenedores.
Docker es una plataforma de contenerización de código abierto.
Docker permite empaquetar aplicaciones en contenedores:
componentes ejecutables estandarizados que combinan el código
fuente de la aplicación con las bibliotecas del sistema operativo (SO)
y las dependencias necesarias para ejecutar dicho código en cualquier
entorno.
Los contenedores simplifican la entrega de aplicaciones distribuidas
y se han vuelto populares a medida que las organizaciones cambian
al desarrollo nativo de la nube y entornos híbridos multinube.
Los desarrolladores pueden crear contenedores sin Docker, pero la
plataforma permite crear, implementar y gestionar contenedores de
forma más fácil, sencilla y segura.
Docker es esencialmente un kit de herramientas que permite a los
desarrolladores crear, implementar, ejecutar, actualizar y detener
contenedores utilizando comandos simples y automatización que
ahorra trabajo a través de una única API.
Funcionamiento de Docker
La tecnología Docker utiliza el kernel de Linux y sus funciones,
como los grupos de control y los espacios de nombre, para dividir
los procesos y ejecutarlos de manera independiente. El propósito
de los contenedores es ejecutar varios procesos y aplicaciones por
separado para que se pueda aprovechar mejor la infraestructura
y al mismo tiempo, conservar la seguridad que se obtendría con los
sistemas individuales.
Las herramientas de los contenedores, como Docker, proporcionan
un modelo de implementación basado en imágenes. Esto permite
compartir fácilmente una aplicación o un conjunto de servicios,
con todas las dependencias en varios entornos.
Docker también automatiza la implementación de las aplicaciones
(o los conjuntos de procesos que las constituyen) en el entorno
de contenedores.
Estas herramientas están diseñadas a partir de los contenedores
de Linux, por eso la tecnología Docker es sencilla y única. Además,
ofrecen a los usuarios acceso a las aplicaciones, la posibilidad de
realizar implementaciones en poco tiempo y el control sobre las
versiones y su distribución.
Kubernetes
Kubernetes (también conocida como k8s o "kube") es una plataforma
open source para la organización en contenedores que automatiza
muchos de los procesos manuales involucrados en la implementación,
la gestión y el ajuste de las aplicaciones que se alojan en ellos.
Con la gran popularidad de los contenedores en las organizaciones,
Kubernetes, el software de administración centrado en contenedores,
se convirtió en el estándar de facto para implementar y operar
aplicaciones en contenedores.
Google Cloud es la base de Kubernetes, que originalmente se desarrolló
en Google y se lanzó como código abierto en 2014. Kubernetes se creó
sobre la base de la experiencia de 15 años de ejecuciones de cargas de
trabajo en contenedores de Google y las valiosas contribuciones de la
comunidad de código abierto.
Kubernetes es inspirado en el sistema de administración de clústeres
interno de Google, Borg, Kubernetes facilita todo lo asociado con la
implementación y la administración de tu aplicación.
¿Cuál es la relación que Docker y Kubernetes tienen con los
contenedores?
Es muy probable que los usuarios que trabajen en entornos de
contenedores conozcan dos herramientas y plataformas muy
conocidas que se utilizan para crear y gestionar contenedores.
Estas herramientas son Docker y Kubernetes.
Docker es un popular entorno en tiempo de ejecución que se usa para
crear y construir software dentro de contenedores. Usa imágenes de
Docker (instantáneas de copia en escritura) para poner en marcha
aplicaciones o software en contenedores en varios entornos, desde el
desarrollo hasta las pruebas y la producción. Docker se basa en
estándares abiertos y funciona en la mayoría de los entornos
operativos más comunes, incluidos Linux, Microsoft Windows y otras
infraestructuras locales o basadas en la nube.
Las aplicaciones en contenedores pueden ser complicadas.
Durante la producción, muchas pueden requerir cientos o miles de
contenedores independientes. Es en este punto donde los entornos
en tiempo de ejecución de contenedores, como Docker, se benefician
del uso de otras herramientas para orquestar o gestionar todos los
contenedores en funcionamiento.
Una de las herramientas más populares para este fin es Kubernetes,
un orquestador de contenedores que reconoce varios entornos en
tiempo de ejecución de contenedores, incluido Docker.
Kubernetes orquesta el funcionamiento de varios contenedores
juntos de forma armónica.
Gestiona el uso de recursos de infraestructura subyacentes para
aplicaciones en contenedores (ejemplo: cantidad de recursos de
computación, red y almacenamiento).
Las herramientas de orquestación como Kubernetes facilitan la
automatización y el escalado de cargas de trabajo basadas en
contenedores para entornos de producción activos.
Organiza .-
PCLinux Perú.
Modalidad Online .-
El entrenamiento será de 10 Sesiones Online de 02+1/2horas c/u.
Se utilizará un Grupo de WhatsApp para consultas y respuestas.
Se comparten recursos: archivos ISO, máquinas virtuales,
documentos de lectura y aplicación, software, etc.
Se utilizará la herramienta Zoom para las Sesiones Online.
Todas las sesiones serán grabadas en video HD.
Drive Google: Videos de sesiones, materiales y aplicaciones.
Inicio.-
Lunes 16 de Enero de 2023.
Duración & Horario.-
10 Sesiones Online ( 02+1/2 horas c/u. )
Luenes y Jueves ( 20:00 hasta 22:30 Horas - Perú )
Dirigido a .-
Estudiantes y profesionales de: Ing. de Sistemas,
Ing. Informática, Ing. de Computación y Sistemas,
Ing. Electrónica, Ing. de Telecomunicaciones, Ing. Industrial ,
Computación e Informática, Tecnólogos Informáticos y
otras carreras afines, etc.
Requisitos .-
01 o 02 PC/Laptop - Mínimo:
4GB RAM - Recomendable 8GB RAM.
Procesador i5 - Recomendable i7.
Sistema Operativo Anfitrión: Win10 de 64 bits.
Acceso a Internet, Parlantes, Micrófono o Audífonos.
Certificación .-
Certificado Digital, será enviado a su email. (100 horas).
Temática .-
Introducción: Contenedores, Docker & Kubernertes
¿Qué son los contenedores?
Diferencia entre Contenerización y virtualización.
¿Qué es Dockers?
Arquitectura de Dokers
Funcionamiento de redes en Dockers
¿Qué es Kubernetes?
Arquitectura de Kubernetes
Componentes de Kubernetes
Funcionamiento de redes en Kubernetes
Contenedores en las Nubes
Docker
Introducción.
Instalación de OS para Docker.
Instalación básica y avanzada de OS RHEL 8.7.
Registro y post-instalación de RHEL 8.7.
Particionamiento de Docker con soporte LVM
Manejo del soporte LVM:
Conceptos: Creación, expansión y eliminación de volúmenes
Instalación de Dockers
Elegir la correcta configuración de infraestructura de dockers
Configuración de Dockers
Ejecutar pruebas de entorno
Gestión de imágenes y contenedores
Mapeado de puertos
Creación de imágenes propias. Capas, variables, volúmenes,
bind mounts, etiquetas, repositorios.
Docker imágenes I
Imágenes oficiales
Creando nuestra primera imagen
Probando nuestra primera imagen
Deployando nuestra página web
Docker imágenes II
Introducción a Dockerfile
Dockerfile - From / Run / Copy / Add / CMD
Dockerfile - Env / WorkDir / Expose
Eliminando imágenes y contenedores
Docker Contenedores
Introducción - Contenedores
Listar - Mapear puertos
Iniciar - Reiniciar - Detener
Inspeccionar - Variables de entorno
Contenedores de aplicaciones
Crear un contenedor Mysql
Crear un contenedor MongoDB
Crear un contenedor Jenkins
Crear un contenedor Rabbitmq
Crear un contenedor PostgreSQL
Mas aplicaciones
Deploy Microservicio con Nodejs
Deploy SPA Angular
Deploy Container con Nuxtjs
Deploy Container con Reactjs
Deploy Container con Vuejs y Container con Wordpress
Escenarios multi-contenedor
Docker Compose
Configuración mediante variables de entorno y mediante bind mounts
Gestión de entornos con compose
Docker Compose en escenarios multi-contenedor
Acceso externo a contenedores. Redes internas
Creación y administración de redes en Docker
Sesiones interactivas
Escalado de instancias
Gestión remota de contenedores
Docker Storage y Volúmenes
Docker Network.
Docker Stacks.
Docker compose file.
Docker Toolbox for Windows.
Seguridad y buenas prácticas para Docker.
Kubernetes
Introducción
Kubernetes objetos
Kubernetes storage
Kubernetes networking
Kubernetes namespaces
Instalación de Kubernetes
Elegir la correcta configuración de infraestructura de Kubernetes
Instalación del Kubernetes/miniKube
Instale y use kubeadm/kubectl (clústeres de Kubernetes)
Ejecutar pruebas de entorno
Creación y gestión de pods y clústeres, con servicios comunes
Ejecutar comandos para la creación y gestión de pods
Ejecutar comandos para la creación y gestión de clusters
Comprender la configuración de red en los nodos del clúster
Comprender los conceptos de redes de pod
Como monitorear todos los componentes del clúster y aplicaciones
Configurar la autenticación y autorización
Comprender las primitivas de seguridad de Kubernetes
Configurar políticas de red
Orquestadores: Kubernetes
Orquestadores más comunes
Kubernetes en local: Minikube, MicroK8s, K3os.
Kubernetes: Servicios. Pods. Escalado de pods.
Despliegues declarativos en Kubernetes.
Aplicaciones multi-contenedor en Kubernetes
Servicios, taints, tolerancias
Kubernetes: Controladores y jobs, StatefulSet y DaemonSet
Kubernetes: Despliegue sin interrupciones de servicios
Kubernetes: Volúmenes, temporales, persistentes, diferentes tipos
Métricas en Kubernetes (metrics-server, heapster, Prometheus, Grafana)
Autoescalado de pods
Asignación de pods a nodos
Seguridad con RBAC (conceptos fundamentales, crear usuarios,
crear service accounts, tipos de roles por defecto)
La API de Kubernetes (versionamiento, acceso con kubectl, custom
resource definitions, librerías)
Configuración mediante ConfigMaps
Ingress - Soporte de HTTPS de Ingress
healthchecks, dependencias entre servicios, liveness/readyness, probes
Controladores y jobs en Kubernetes
Uso de Helm para simplificar la instalación de componentes en
Kubernetes (incluye Helm 2 y Helm 3)
Kustomize
Exposición de servicios a internet
Escalado de aplicaciones
Ecosistema de Kubernetes
Helm, Cert-manager, Docker Desktop, Prometheus, Grafana
Organización de un clúster
Namespaces
Comunicación entre contenedores
Trainer .- Ing. Paúl Criollo Ortiz
Consultor e Instructor con 25 años de experiencia en Tecnologías de la
Información; relacionadas en las áreas de: Seguridad Informática, Seguridad
de la Información, Sistemas de Gestión de Seguridad de la Información,
Ethical Hacking, Análisis de Vulnerabilidades, Virtualización, Computación
Forense, Metodologías de Intrusión, Soluciones de Red en Servidores Linux,
Unix, Windows, etc.
En Perú y Ecuador, asesor especializado en proyectos relacionados con
tecnologías libres y seguridad, en organismos gubernamentales, empresas
privadas; financieras, productivas, mineras, universidades, etc.
Inversión .-
Desde Perú: S/. 400.00 Soles (No incluye IGV)
Cuentas Bancarias - Titular: Paul Criollo Ortiz
BBVA - Cuenta de Ahorros - Soles 0011-0274-0200387784
BN - Cuenta de Ahorros - Soles 04-674-117049
BCP - Cuenta de Ahorros - Soles 535-93980883-0-02
SCOTIABANK - Cuenta de Ahorros - Soles 359-0213140
INTERBANK - Cuenta de Ahorros - Soles 898-3178343396
!!! Consultar pagos YAPE / PLIN !!!
Desde Otros Países: US$105.00 Dólares Americanos
Western Unión o MoneyGram
Titular: Paúl Criollo Ortiz - País: Perú
El participante deberá cancelar los impuestos de envío.
!!! Consultar pagos PAYPAL !!!
Inscripciones.-
Enviar Boleta de Depósito / Transferencia, con datos del participante:
Nombres Completos, Número de Documento Identificación Nacional,
Email, Celular / WhatsApp, Empresa, Cargo, Especialidad, Ciudad y País.
Celular / WhatsApp: (+51) 944123529
Correo: informes@pclinux.pe
Síguenos: PCLinux Perú