Cree un clúster local con Vagrant/CoreOS/Docker

Cree un clúster local con Vagrant/CoreOS/Docker

Estoy intentando crear un entorno local para fines de prueba compuesto por:

  • un clúster Vagrant CoreOS (3 nodos)
  • un contenedor Docker lanzado con una imagen Nginx cargada, lanzado en un nodo

Instalé exitosamente Vagrant y CoreOS. Etcd está en funcionamiento y he jugado mucho con Fleet. También lancé un servicio de flota de lanzamiento de contenedores Nginx. Lo que realmente no puedo entender es:

  • ¿Cómo puedo enrutar el tráfico en un contenedor específico? Quiero que al apuntar mi navegador local a una dirección local (es decir, ejemplo.dev), el clúster responda con el contenedor Nginx correcto (ubicado en algún lugar del clúster).
  • ¿Es un proxy una solución adecuada? Si no es así, ¿hay algo creado para este propósito?

¡Gracias de antemano y no dudes en preguntar más detalles que quizás haya olvidado!

Respuesta1

La respuesta simple es simplemente editar su archivo de hosts local, por ejemplo, /etc/hostsen Linux u OS X, o C:\Windows\System32\drivers\etc\hostsen una máquina típica de Windows.

Si desea algo que tenga más nivel de producción que una solución rápida para el desarrollo, entonces lo que necesita es un proxy inverso como nginx o haproxy, y configurarlo automáticamente según la disponibilidad de los contenedores nginx de backend.

  • Cada contenedor nginx backend necesitará un servicio 'compañero' para anunciar su disponibilidad en etcd.
  • entonces correconfiarpara escuchar los cambios de etcd y actualizar la configuración del proxy inverso

Esto le permite enrutar un único puerto en el proxy inverso a cualquier número de servicios nginx de backend que solo necesitan escuchar en la red privada.

He escritouna ilustración más detallada de este enfoque aquí.

información relacionada