tutorial kubernet instalar español engine diferencias docker kubernetes docker-compose

instalar - kubernetes vs docker diferencias



¿Cuál es la diferencia entre docker compose y kubernetes? (5)

Al sumergirse en Docker, Google Cloud y Kubernetes, y sin comprender claramente a los tres todavía, me parece que estos productos se superponen, pero no son compatibles.

Por ejemplo, un archivo docker-compose, debe reescribirse para que una aplicación pueda implementarse en Kubernetes.

¿Podría alguien proporcionar una descripción aproximada de alto nivel de dónde se superponen Docker, Docker-Compose, Docker Cloud y Kubernetes y dónde uno depende del otro?


Además de respuesta , me gustaría agregar algunos detalles aquí que podrían ayudar a las personas con su viaje de comprensión de Kubernetes.

Respuesta corta:

  • docker-compose : es una herramienta que toma un archivo YAML que describe su aplicación de contenedores múltiples y lo ayuda a crear , iniciar / detener , eliminar todos esos contenedores sin tener que escribir múltiples docker ... comandos para cada contenedor.
  • Kubernetes : es una plataforma para gestionar cargas de trabajo y servicios en contenedores, que facilita tanto la configuración declarativa como la automatización. ¿Qué? 🤔 Sigue leyendo ...

Docker Compose

(de los documentos): Compose es una herramienta para definir y ejecutar aplicaciones Docker de contenedores múltiples. Con Compose, utiliza un archivo YAML para configurar los servicios de su aplicación. Luego, con un solo comando, crea e inicia todos los servicios desde su configuración.

Compose tiene comandos para administrar todo el ciclo de vida de su aplicación:

  • Iniciar, detener y reconstruir servicios
  • Ver el estado de los servicios en ejecución
  • Transmita la salida de registro de los servicios en ejecución
  • Ejecute un comando único en un servicio

Kubernetes

(de Introducción a Kubernetes ): Kubernetes es un orquestador de contenedores como Docker Swarm, Mesos Marathon, Amazon ECS, Hashicorp Nomad . Los orquestadores de contenedores son las herramientas que agrupan hosts para formar un clúster y nos ayudan a asegurarnos de que las aplicaciones:

  • son tolerantes a fallas,
  • puede escalar y hacer esto a pedido
  • utilizar los recursos de manera óptima
  • puede descubrir otras aplicaciones automáticamente y comunicarse entre sí
  • son accesibles desde el mundo externo
  • puede actualizar / revertir sin ningún tiempo de inactividad.

Mucha gente argumenta que Kubernetes es difícil de aprender. Es porque resuelve una serie de problemas y las personas intentan comprender sin conocer todos los requisitos previos. Esto lo hace complicado. Comience a armar las piezas del rompecabezas leyendo sobre conceptos / términos como los siguientes. Este proceso lo ayudará a comprender el tipo de problemas que Kubernetes intenta resolver:

  • Aplicaciones de 12 factores,
  • Embalaje automático,
  • Mecanismos de autocuración,
  • Escala horizontal,
  • Descubrimiento de servicio y equilibrio de carga,
  • Lanzamientos y retrocesos automatizados,
  • Despliegues azul-verde / Despliegues canarios
  • Secretos y gestión de configuraciones,
  • Orquestación de almacenamiento

Y debido a que hay muchas cosas diferentes en torno a los contenedores y su administración, vigile el paisaje de Cloud Native:

Versión interactiva aquí: landscape.cncf.io/


Docker-Compose es un archivo de implementación que predefinió uno o más contenedores con su entorno, como volúmenes, redes, un comando para ejecutar, etc.

Kubernetes, por otro lado, es un sistema que organiza contenedores docker y otros microservicios y los hace escalables y confiables en múltiples nodos


La primera distinción es entre el motor del contenedor y el orquestador del contenedor.

docker es un motor de contenedor, te hace construir y ejecutar generalmente no más de un contenedor como máximo, localmente en tu PC para fines de desarrollo.

docker-compose es una utilidad Docker para ejecutar múltiples contenedores y les permite compartir volúmenes y redes a través de las características del motor docker, se ejecuta localmente para emular la composición del servicio y de forma remota en clústeres.

Kubernetes es una plataforma de orquestación de contenedores, se encarga de ejecutar contenedores y mejorar las características del motor para que los contenedores se puedan componer y escalar para servir aplicaciones complejas (tipo de PaaS, administrado por usted o el proveedor de la nube). La característica principal de Kubernetes es desacoplar la infraestructura de la aplicación utilizando contenedores, y también está abierta para otros motores que Docker, por ejemplo, puede ejecutar contenedores con rkt o cri-o.

Docker Cloud también es una oferta de PaaS que le permitirá ejecutar y orquestar contenedores a través de la API del motor de Docker.

Ahora, según sus necesidades, el nivel de control de la infraestructura y el público objetivo, puede usar Kubernetes en baremetal, Azure ACS o Google GKE, etc.

Espero que esto haya ayudado :) Saludos


Docker :

Docker es la tecnología de contenedores que le permite contener sus aplicaciones en contenedores. Docker es el núcleo para usar las otras tecnologías.

Docker Compose:

Permite configurar e iniciar múltiples contenedores acoplables. Esto se usa principalmente como ayuda cuando quieres iniciar múltiples contenedores acoplables y no quieres iniciar cada uno por separado usando docker run ... Docker compose se usa para iniciar contenedores en el mismo host.

Enjambre Docker:

Docker Swarm es para ejecutar y conectar contenedores en múltiples hosts. Docker Swarm es una herramienta de gestión y organización de clústeres de contenedores. Gestiona contenedores que se ejecutan en varios hosts y hace cosas como escalar, iniciar un nuevo contenedor cuando se bloquea, contenedores de red ...

Docker Swarm es Docker en producción. Es la herramienta de orquestación nativa de Docker que está integrada en Docker Engine.

El archivo de enjambre de Docker llamado archivo de pila es muy similar a un archivo de composición de Docker.

Kubernetes:

Una herramienta de orquestación de contenedores desarrollada por Google. El objetivo de Kubernetes es muy similar al del enjambre de Docker.

Docker Cloud:

Un servicio docker empresarial de paid que le permite construir y ejecutar contenedores en servidores en la nube o servidores locales. Proporciona una interfaz de usuario web y un panel de control central para ejecutar y administrar contenedores al tiempo que proporciona todas las características de la ventana acoplable en una interfaz web fácil de usar.

Actualizar:

Nube Docker "parcialmente" descontinuada

Los servicios en Docker Cloud que proporcionan administración de clústeres de aplicaciones, nodos y enjambres se cerrarán el 21 de mayo ... las compilaciones automatizadas y los servicios de almacenamiento de registros no se verán afectados y continuarán estando disponibles.


Docker Compose:

En un archivo docker-compose.yml , cada entrada puede obtener opcionalmente docker-compose para construir una imagen. cada entrada puede representar un único contenedor que queremos construir y cada entrada define los requisitos de red o puertos.

Kubernetes:

Kubernetes espera que todas las imágenes ya estén construidas y hay un archivo de configuración por objeto que queremos crear y tenemos que configurar manualmente todas las redes.

Por lo tanto, nos aseguramos de que nuestra imagen esté alojada en Docker Hub, cree un archivo de configuración para crear el contenedor y un archivo de configuración para configurar la red.