JavaRush /Blog Java /Random-ES /¿Quiénes son Docker, Kubernetes, OpenShift y cómo se rela...
Павел
Nivel 11

¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?

Publicado en el grupo Random-ES
Todo comienza con el embalaje. En el desarrollo industrial, existe la necesidad de "empaquetar" la aplicación ensamblada, por ejemplo, para que pueda transferirse al servidor donde funcionará, en la forma en que el desarrollador la ensambló en su computadora, tal "empaquetado" debería servir como una especie de protección. Esto elimina sorpresas, como cuando una aplicación funciona durante una prueba, pero falla cuando se transfiere a producción. Además, el "empaquetado" aísla una aplicación de otra ubicada en el mismo servidor, dicho aislamiento permite que una aplicación no interfiera con el trabajo de otra (por ejemplo: una aplicación no podrá tomar toda la RAM del servidor, dejando la segunda aplicación a su destino). Las ventajas de "empaquetar" una arquitectura de microservicios son especialmente notables, y esto es comprensible: hay muchos microservicios, muchas aplicaciones pequeñas que deben comunicarse entre sí, pero al mismo tiempo no deben interferir entre sí. Un ejemplo es una cómoda (servidor), en la que hay muchos cajones diferentes, y podemos mover fácilmente diferentes calcetines de un cajón a otro, y al mismo tiempo no se mezclarán entre sí ni con las bragas. ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 1 El paquete se crea mediante herramientas de virtualización. Érase una vez, las máquinas virtuales (VM) se utilizaban como "paquetes". Las personas mayores recordarán cómo implementaron Windows XP en Vista en una máquina virtual. Ahora las máquinas virtuales para empaquetar aplicaciones son cosa del pasado. Los contenedores se han apoderado del mundo. Porque son: más ligeros, más productivos y más seguros. Más detalladamente: ¿en qué se diferencia un contenedor de una máquina virtual? ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 2 Es necesario recordar algunas ventajas de los contenedores: • son más pequeños (ocupan menos memoria en el servidor); • tener acceso a recursos compartidos del servidor (RAM, tiempo de cálculo del procesador); • tener una mejor portabilidad a otros entornos (desde pruebas hasta industriales); • proporcionar mayor velocidad de lanzamiento (dado que el contenedor es liviano, se lanza más rápido). Docker es la madre de los contenedores. Cuando dicen contenedor, se refieren a Docker. Docker es un software para automatizar la implementación y gestión de aplicaciones en entornos en contenedores. Por ejemplo, Docker es un cruce entre un diseñador en línea y una impresora 3D con grúa. Es decir, primero puede diseñar una plantilla (imagen) para un contenedor, imprimir (crear) el contenedor de acuerdo con las condiciones dadas (imagen) y luego moverlo donde sea necesario. Se utilizan Dockerfiles en lugar de palancas. El proceso de administración es simple: escribe archivos, comandos, los ejecuta y ve qué sucede. ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 3 Primer contacto con Docker Docker Compose: Docker actualizado Ahora veamos un escenario en el que es necesario ejecutar varios contenedores en una ubicación. La utilidad utilizada para esto es Docker Compose. Docker Compose es una herramienta incluida con Docker. Está diseñado para resolver problemas relacionados con la implementación de proyectos. Diferencia entre Docker y Docker Compose: Docker se utiliza para administrar contenedores individuales. Docker Compose se utiliza para gestionar varios contenedores simultáneamente. Esta herramienta ofrece las mismas capacidades que Docker, pero le permite trabajar con estructuras más complejas. ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 4 Escenario típico de uso de Docker Compose: imagina que eres desarrollador de un proyecto web. Este proyecto incluye dos sitios web. El primero permite a los empresarios crear tiendas online con sólo unos pocos clics. El segundo está dirigido a la atención al cliente. Estos dos sitios interactúan con la misma base de datos. Tu proyecto se está volviendo cada vez más popular y resulta que la potencia del servidor en el que se ejecuta ya no es suficiente. Como resultado, decide trasladar todo el proyecto a otra máquina. Si no ha utilizado algo como Docker Compose, tendrá que migrar y reconfigurar los contenedores uno a la vez, con la esperanza de no olvidar nada en el proceso. Si usa Docker Compose, mover su proyecto a un nuevo servidor es un asunto que se puede resolver ejecutando algunos comandos. Para completar la transferencia del proyecto a una nueva ubicación, solo necesita realizar algunas configuraciones y cargar una copia de seguridad de la base de datos en el nuevo servidor. DockerComposer típico: ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 5 lo que debe recordar aquí: los contenedores son el medio principal para "empaquetar" aplicaciones. Docker maneja contenedores, crea imágenes de contenedores, recoge y mueve contenedores. Para gestionar simultáneamente un montón de contenedores, se utiliza Docker Compose, que está incluido en Docker. Estos programas son software gratuito (obsequios, en una palabra) Kubernetes (K8): automatización de Docker. Y por eso implementamos contenedores, sabemos cómo transferirlos "en lotes" de una máquina a otra. ¡Pero de repente uno de los contenedores cayó! ¿Qué hacer? ¿Quién lo volverá a levantar? ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 6 Por supuesto, puedes hacerlo manualmente, a través de Docker. Pero tienes que hacer algo, escribir algo, necesitas algún tipo de herramienta de automatización. Aquí es donde entra en escena Kubernetes (abreviado K8), que también se ocupará de la gestión y orquestación (gestión automatizada de entidades relacionadas) de contenedores. Con los K8 a su disposición, no necesita monitorear los contenedores día y noche. Basta con definir el escenario de comportamiento y el K8 hará todo por sí solo. Características clave de Kubernetes 1. Proporciona escalabilidad y gestión de su configuración. 2. Puede describir lo que desea obtener al implementar un clúster y K8 lo hará. Por ejemplo, especifique el número de pods, cuánta memoria asignarles, indique la cantidad de réplicas (instancias) de aplicaciones implementadas (en contenedores) en pods. 3. Responsable de mantener el sistema en un estado determinado, si algo cae, K8s lo recogerá, según la configuración establecida. Lo que debe recordar aquí: Kubernetes es una herramienta para orquestar aplicaciones en contenedores, automatizando su implementación, escalamiento y coordinación en un clúster. Admite las principales tecnologías de contenedorización, incluido Docker. K8s es un software de código abierto. ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 7 OpenShift es un Ferrari en el mundo de la virtualización, genial, rápido y caro. Desarrollando el tema, pasemos a OpenShift. OpenShift es un complemento de Kubernetes que ofrece funciones adicionales. Está listo para usar de inmediato, no requiere una configuración larga y complicada y se puede poner en producción inmediatamente. Mira cuántos íconos diferentes hay encima de Kubernetes. Y cada uno de ellos hace sus propias cosas interesantes. ¿Quiénes son Docker, Kubernetes, OpenShift y cómo se relacionan entre sí?  - 8 Aspectos destacados de OpenShift: • Es un producto pago, a diferencia de los K8; • DevOps listo para usar, soporte para escenarios de implementación canary azul/verde básicos; • Soporte integrado para Jenkins; • Proporciona herramientas convenientes para administrar y trabajar con el clúster; • Tiene un modelo de seguridad más estricto y monitoreo integrado. Vale la pena enfatizar una vez más que OpenShift es un producto pago, a diferencia de Kubernetes. La diferencia es esta: si tomamos Kubernetes desnudos, resolveremos todos los problemas nosotros mismos. Si hablamos de OpenShift, es un producto de Red Hat, que resuelve problemas emergentes como parte del soporte pago. Resumamos: en el desarrollo industrial existe la necesidad de "empaquetar" la aplicación; este enfoque es especialmente relevante en la arquitectura de microservicios. Los contenedores son el principal medio de aplicaciones de embalaje. Docker maneja contenedores, crea imágenes de contenedores, recoge y mueve contenedores. Para gestionar simultáneamente un montón de contenedores, se utiliza Docker Compose, que está incluido en Docker. Estos programas son software libre. Kubernetes(K8s) es una herramienta para orquestar aplicaciones en contenedores, automatizando su implementación, escalamiento y coordinación en un clúster. Admite las principales tecnologías de contenedorización, incluido Docker. K8s es un software de código abierto. OpenShift es un complemento de Kubernetes que ofrece funciones adicionales. Este es un producto pago, a diferencia del K8, destinado a uso corporativo. Proporciona DevOps listo para usar: soporte para los principales escenarios de implementación azul/verde, canario, tiene soporte integrado para Jenkins y proporciona herramientas convenientes para administrar y trabajar con el clúster. Tiene un modelo de seguridad más estricto y monitoreo integrado. Para aquellos que tienen ganas de codificar: Empaquetar una aplicación Spring Boot en un contenedor Cómo implementar Postgres en Docker y conectarse a una aplicación Spring-Boot Seminario web: Docker: ¿Cómo trabajar con contenedores? — Desarrollo backend en Java
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION