Sin categoría

Contenedor Docker utilizando Apache Mesos y Marathon

apache-mesos-logo apache-mesos-marathon-logo Docker Logo

Apache Mesos es un gestor de clústeres de código abierto desarrollado en UC Berkeley. Proporciona aislamiento y compartición de recursos entre aplicaciones distribuidas. La figura muestra los principales componentes de Mesos.

Mesos consta de maestro que gestiona esclavo que se ejecutan en cada nodo del clúster. Marcos Mesos son aplicaciones que se ejecutan en Mesos y ejecutan tareas sobre estos esclavos. Los esclavos son
máquinas físicas o virtuales, normalmente del mismo proveedor.
mesos-architecture

Mesos utiliza un mecanismo de programación de dos niveles en el que ofertas de recursos a los frameworks. El nodo maestro de Mesos decide cuántos recursos ofrecer a cada framework, mientras que cada framework determina los recursos que acepta y qué aplicación
ejecutar en esos recursos.

Maratón es una plataforma de orquestación de contenedores que se ejecuta en Mesos. Múltiples formatos de contenedores y Docker es compatible con
sin duda, la más común.

Este blog mostrará cómo configurar Mesos, Marathon, y ejecutar una imagen Docker simple. Esta configuración es sólo para los valientes de corazón. Siempre estoy interesado en mirar bajo el capó y eso es lo que motivó este post. Pero un futuro post mostrará una
instalación sin problemas.

Empecemos.

Configurar CentOS VM

Descargar CentOS y configure la máquina virtual como se muestra:
centos-7.1-install

Instalar componentes

Instale los distintos componentes necesarios para esta configuración.

  1. Configure el repositorio de Mesos:
  2. Instale Mesos y Marathon:
  3. Instala ZooKeeper:
  4. Añadir repositorio Docker:
  5. Instala Docker:

Configurar la asignación de nombre de host/dirección IP

Editar /etc/hosts y cree una correspondencia entre el nombre de host y la dirección IP. Encuentre la dirección IP usando ifconfig y elija la interfaz de red activada durante la instalación de CentOS.

Iniciar Servicios

Iniciar todos los servicios

  1. Inicie Docker:
  2. Inicia ZooKeeper:
  3. Iniciar maestro Mesos:
  4. Configure mesos y docker contenedores:
  5. Inicie el esclavo Mesos:
  6. Maratón de salida:
  7. Buscar servicios:Mesos UI: http://127.0.0.1:5050 Marathon UI: http://127.0.0.1:8080 Registros: tail -f /var/log/messages
  8. Comprueba el maestro Mesos:
  9. Comprueba el esclavo Mesos:
  10. Comprueba ZooKeeper:

Despliegue de aplicaciones Docker en Mesos

A aplicación sencilla basada en Docker se define mediante el archivo de configuración. Maratón se ejecuta en el puerto 8080 y por lo tanto la configuración actualizada
tiene el siguiente aspecto:

Despliega la aplicación como:

La aplicación tardará algún tiempo en descargar la imagen y luego ejecutar el contenedor. Esta configuración es ligeramente sensible y múltiples ejecuciones de la aplicación mostraron que la imagen Docker no se descargó correctamente todas las veces.
En ese caso, la imagen Docker se descargó manualmente utilizando docker pull python:3 y entonces la aplicación podría desplegarse con éxito.

En nuestro caso, maestro y esclavo se están ejecutando en la misma máquina, por lo que la lista de imágenes Docker y contenedores en ejecución se puede ver fácilmente:

La aplicación está disponible en el puerto 31669 y puede verse en http://127.0.0.1:31669 como:
mesos-marathon-app-output
Interfaz de usuario de Mesos (http://127.0.0.1:5050):
marathon-ui-app-output
Marathon UI (http://127.0.0.1:8080):
mesos-ui-app-output
En
Como puede ver, se trata de una configuración bastante complicada. En una futura entrada del blog se mostrará cómo utilizar DC/OS y configurar esto de forma más fluida.

Lecturas complementarias ...

Canal Slack de Mesos ¡es impresionante! Particularmente aprendí mucho sobre Mesos de @jgarcia.mesosphere, @akaplan.mesosphere, @harpreet.mesosphere, @graham.mesosphere. Gracias chicos, ¡seguid colaborando con la comunidad!

¡Que aproveche!

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Arun Gupta, Vicepresidente, Defensa del Desarrollador, Couchbase

Arun Gupta es vicepresidente de promoción de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante más de 10 años en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campañas de marketing y programas. Anteriormente dirigió equipos de ingeniería en Sun y es miembro fundador del equipo Java EE. Gupta es autor de más de 2.000 entradas de blog sobre tecnología. Tiene una amplia experiencia como conferenciante en más de 40 países sobre innumerables temas y es una JavaOne Rock Star desde hace tres años consecutivos. Gupta también fundó el capítulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educación tecnológica entre los niños. Autor de varios libros sobre tecnología, ávido corredor, trotamundos, campeón de Java, líder de JUG, miembro del Dream Team de NetBeans y capitán de Docker, es fácilmente accesible en @arungupta.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.