‫Esta será la primera conferencia en la que de hecho vamos a usar varios hosts o nodos, Vamos a configurar un enjambre de 3 nodos
‫o instancias, o lo que quieras. múltiples Desafortunadamente no podemos hacer esta parte con el Docker incorporado en su
‫máquina porque eso solo nos proporcionará un sistema operativo. Necesitamos tres sistemas operativos Linux para jugar con este próximo conjunto de características.
‫La primera opción que vas a tener es usar play-with-docker. com.
‫Es absolutamente la manera más fácil de comenzar.
‫Viene con Docker preinstalado. Le toma segundos aprovisionar tres máquinas diferentes,
‫y no requiere inversión en su extremo. Pero significa que cada cuatro horas borrará todo el trabajo que ha realizado.
‫de días, entonces esta puede no ser la mejor opción para ti.
‫Entonces, si crees que vas a hacer el resto de esta sección en el transcurso Pero si te vas a enfocar durante unas horas, definitivamente podrás superar la
‫mayoría, si no todas, las cosas de enjambres de múltiples nodos utilizando Play With Docker de una vez.
‫Otra opción que tiene es que puede usar docker-machine, que no
‫es algo de lo que ya hayamos hablado, pero es una herramienta de línea de comandos que realmente se instala con Docker para Windows y Docker para Mac.
‫Puede descargarlo para Linux, y básicamente es una herramienta de automatización para el
‫aprovisionamiento de máquinas virtuales localmente, y en Internet, y luego configura automáticamente Docker por usted.
‫La forma predeterminada en que funciona es con VirtualBox, que puede instalar gratis. vas a ejecutar tres máquinas virtuales localmente, cada una de ellas probablemente necesite un poco
‫de RAM o más para ejecutar muchos de estos ejemplos.
‫Pero sí significa que si Entonces necesitarás una máquina con una buena cantidad de RAM. Otra opción, y la que voy
‫a usar de forma predeterminada para muchas de estas demostraciones y revisiones, es DigitalOcean.
‫Solo recomiendo DigitalOcean solo porque tienen
‫el servicio más barato y fácil para comenzar, y ejecutan todo en SSD, por lo que es agradable y rápido. De hecho, puede usar esto en una configuración muy, muy similar a lo que sería la producción,
‫ya que está utilizando tres máquinas virtuales reales en la nube y tarda
‫aproximadamente un minuto en iniciar cada máquina virtual.
‫Si piensa que esa podría ser una opción, puede usar mi código de referencia y las
‫referencias a esta sección para obtener sus primeros $ 10 gratis.
‫Si solo va a tomar unos días para superar este enjambre, puede aprovisionar tres nodos
‫de $ 10 al mes y tenerlos listos durante días o una semana.
‫Y eso podría encajar dentro del presupuesto de $ 10, por lo que técnicamente no le costaría nada.
‫Y, por último, hay muchas maneras de instalar Docker,
‫y eso es todo lo que necesita: tres máquinas con Docker instalado. Puede usar Docker Machine.
‫Ha incorporado controladores que le permiten usarlo para aprovisionar instancias de Amazon, o instancias de Azure,
‫o DigitalOcean Droplets, o nodos de Google
‫Compute, o en cualquier lugar donde pueda obtener una máquina virtual Linux, en realidad puede instalar Docker con un script automatizado de obtener. estibador. com.
‫Francamente, prefiero el get. estibador. Versión de com solo porque Docker Machine puede ahorrarle algunos pasos, especialmente para ubicaciones como Amazon y Azure que requieren aprovisionar una gran
‫cantidad de cosas diferentes antes
‫de poder aprovisionar una máquina virtual. Pero probablemente no
‫va a utilizar Docker Machine en producción.
‫Es una herramienta para simplemente automatizar entornos de prueba y desarrollo. En realidad, nunca fue diseñado para configurar todos los ajustes de producción
‫que pueda necesitar para un enjambre de múltiples nodos.
‫No hay nada intrínsecamente incorrecto con eso, pero normalmente lo entiendo. estibador. com funciona en todas las principales distribuciones de
‫Linux y no demora más tiempo en usar Docker Machine.
‫Voy a darles un ejemplo muy
‫rápido de cómo obtener cualquiera de estos escenarios hasta el punto en que Docker está instalado. Entonces todos serán muy similares en la forma
‫en que realmente creamos el enjambre y hacemos nuestros servicios.
‫Así que no piense que tiene que hacerlo de la manera en que lo hago.
‫Realmente solo estamos tratando de obtener información de Docker para que realmente nos brinde información,
‫y luego solo para asegurarnos de que los tres nodos tengan acceso de red entre ellos y estén en una red bien conectada.
‫Entonces, idealmente, deberían estar en la misma red.
‫Si fuera a usar Play With Docker, en realidad solo vas a jugar con el acoplador. casilla porque no soy un robot.
‫com y revisa la
‫Y si te da la pantalla de CAPTCHA, simplemente sigue.
‫Todo bien. Verás que la cuenta regresiva es de cuatro horas.
‫Pero si solo hago clic en la instancia de creación y luego hago clic dos veces más,
‫creará tres entornos virtuales muy rápidamente.
‫Como nota al margen, esto es en realidad utilizando Docker en Docker, que es una tecnología bastante ordenada en la que en realidad estamos ejecutando
‫Docker dentro de un contenedor Docker.
‫otros capitanes de Docker y el equipo de Docker, es realmente difícil notar la diferencia.
‫Pero en esta configuración con Play With Docker, creada por
‫Si voy al nodo 1, ya puedo ver que la información de Docker me da la última versión. Y si incluso intenté hacer ping al nodo2, en realidad
‫reconoce nombres amistosos,
‫por lo que será más fácil comunicarse entre ellos.
‫Entonces, si esto es algo que desea probar, es una manera fácil y sencilla en máquinas de baja potencia o si simplemente no desea tomarse el tiempo para configurar un entorno
‫durante las próximas cuatro horas.
‫La opción dos es usar docker-machine. Si lo tiene instalado, debe ser al menos la
‫versión 10 si no más reciente.
‫Sabrás si está instalado porque escribirás el comando docker-machine desde tu línea de comando
‫y funcionará o no funcionará.
‫Si necesita descargarlo para su sistema operativo Linux en particular, puede ir a Docker Documentation, que en
‫realidad le dará una línea rápida para descargarlo.
‫Si está usando ToolBox en Windows 7 y 8, o Docker para Windows en Windows 10, o Docker para Mac
‫en Mac OS, ya estará actualizado en esos SO para usted.
‫Si desea usar la opción VirtualBox, que es la
‫predeterminada, solo debe saltar a virtualbox. org y descargue la última versión para su sistema operativo. hacer nada con VirtualBox.
‫Y ni siquiera tiene que
‫Solo necesita ser instalado. Y luego desde su línea de comandos, puede simplemente escribir
‫docker-machine create
‫node1, y esto se ejecutará creando una máquina virtual con BusyBox, que es una distribución de Linux muy ligera.
‫Esto se ejecutará realmente mediante la creación de una máquina Linux muy liviana, y usted simplemente repetirá esos
‫dos comandos para los nodos 2 y 3.
‫Si necesita más información sobre un Docker Machine, puede consultar mi sección de
‫referencia para ver los enlaces del tutorial.
‫Una vez que se crean sus máquinas, realmente tiene dos opciones sobre cómo puede acceder a esas máquinas.
‫Puedes usar docker-machine ssh, y luego el nombre del
‫nodo que creaste y que te llevará directamente a esa máquina.
‫O puede usar el comando de entorno.
‫Entonces, el comando docker-machine
‫env, y luego el nombre de la máquina que desea, le dará
‫algún resultado, y puede cortar y pegar estas opciones en su línea de comando o puede copiar y pegar la opción inferior, y eso lo hará en realidad creo la variable de entorno para
‫que cuando ejecute mi comando de portón, porque una vez más, la CLI de Docker solo necesita saber con qué host de Docker hablar. hablando con su máquina local.
‫Y de forma predeterminada, está
‫Pero eso simplemente lo reprogramó para hablar con el
‫nodo Docker Machine1.
‫Si hago la información del acoplador, verás que su nombre es node1 porque ese
‫es el que estoy actualmente operando.
‫Para el último ejemplo, voy a utilizar DigitalOcean, en el que he creado una cuenta.
‫Aquí, llaman a los servidores Droplets. Lo
‫recomiendo si no tiene una razón específica para ejecutar otro sistema operativo, para comenzar con Ubuntu 16. distribución de Linux para admitir las nuevas características de Docker.
‫04 porque esa tiende a ser la primera
‫Entonces ese es el predeterminado allí.
‫Entonces recomendaría para el resto de este curso que usemos el servidor de $ 10 al mes. Es posible que pueda salirse con la suya con el
‫servidor de $ 5 al mes, pero puede ser un
‫poco lento durante algunas de las demostraciones posteriores cuando supervisamos y registramos contenedores en la parte superior de nuestras aplicaciones.
‫Luego puede elegir el centro de datos más cercano a usted. Entonces, la única otra opción es agregar una clave SSH.
‫cargar el público en DigitalOcean, hay un gran tutorial que tienen para él que puede encontrar
‫en los recursos de esta sección.
‫Si no está familiarizado con cómo crear su propia clave SSH localmente y luego
‫Abajo en la parte inferior voy a crear tres máquinas, y voy a llamarlos node1, 2 y 3.
‫Entonces necesito esperar probablemente unos 60 segundos y estarán listos para mí. Al hacer clic en el botón de copiar y luego ssh root @ la dirección IP.
‫Podrías usar las direcciones IP aquí. saltar en estas máquinas. Y si su clave SSH está configurada correctamente en su
‫máquina, entonces iniciará sesión automáticamente con esa clave.
‫Pero en la sección de recursos, le he dado un ejemplo de cómo configurar un. file que te permitirá tener
‫estos tres nodos en una configuración para que simplemente los llames node1, node2, node3, en lugar de
‫tener que recordar sus direcciones IP, en caso de que vayas a hacer esto durante varios días .
‫ssh config Esa es realmente una manera fácil de entrar y salir de estos servidores.
‫Si usó Docker Machine o si usó Play With
‫Docker, entonces Docker ya está instalado y se está preparando para crear su enjambre.
‫Pero si usa DigitalOcean, o tira sus propias máquinas virtuales, entonces necesita instalar Docker.
‫La forma más fácil de hacerlo, que me gusta usar, es utilizar el script en get. estibador. com.
‫Aquí puede ver ejemplos de cómo usar esta secuencia de comandos para obtener la versión de producción
‫actual de Docker en su máquina.
‫instalada la última versión de Docker y estamos listos para configurar nuestro enjambre.
‫Ahora, mis tres servidores tienen
‫Una vez más, todo lo que se requiere es que estos tres nodos tengan una red sólida entre
‫sí y puertos específicos abiertos.
‫Si tiene curiosidad acerca de los puertos de enjambre, busque en los recursos de esta sección donde realmente tengo un enlace a mi propia lista de puertos
‫de firewall necesarios para que Swarm funcione.
‫Si recuerdas antes, hicimos el enjambre de enjambre init. Ahora, en este caso, que es bastante común en los servidores en la nube, quiere que especifiquemos una dirección IP para
‫publicitar el servicio Swarm.
‫Desea utilizar una dirección IP a la que se pueda acceder desde los otros servidores.
‫En este caso, voy a usar la dirección
‫IP pública para mi host DigitalOcean.
‫Y ahí vamos.
‫Hasta ahora, esto es como en nuestra máquina local.
‫Esta vez, sin embargo, voy a copiar el comando swarm join y pasar al nodo 2 y agregarlo.
‫Y ahí vamos.
‫Este nodo ahora es parte del enjambre.
‫Así que volvemos a node1, docker node ls, y ahora tenemos dos.
‫Notarás que el segundo nodo es solo un trabajador. Porque como dice, si quisiéramos que fuera un gerente, deberíamos haber obtenido esta ficha
‫de administrador. Pero no te preocupes De hecho, podemos
‫actualizar este trabajador para promocionarlo como administrador.
‫Pero si estamos en el nodo 2, observe que no puedo usar comandos Swarm. Porque los trabajadores no son realmente privilegiados.
‫Ellos no tienen acceso para controlar el enjambre.
‫Por lo tanto, no podrán usar ninguno de los comandos de Swarm que estamos acostumbrados a usar en los administradores. Lo que estaba haciendo allí era presionar la tecla Tab para completar la pestaña, lo cual siempre es una
‫De vuelta en el nodo1 y el administrador, voy a hacer una actualización del nodo acoplable. característica fantástica en Docker, especialmente con tantas funciones. Me guiaba
‫en cada paso de cómo usar ese comando de actualización.
‫Ahora finalizo esta actualización final y ha cambiado node2.
‫Ahora si hago mi nodo portador ls, verás que ahora se considera alcanzable.
‫Pero el nodo original sigue siendo el líder. Por cierto, ¿el pequeño asterisco? Eso solo significa que ese es el
‫nodo con el que estás hablando actualmente.
‫Para el nodo 3, vamos a agregarlo como administrador de forma predeterminada.
‫Necesitamos volver a
‫nuestro comando original de enjambre de docker, y luego tenemos que obtener el administrador de token de unión.
‫Puedes obtener estos tokens en cualquier momento.
‫No tiene que escribirlos o guardarlos.
‫Son parte de la configuración de enjambre y se almacenan encriptados en el disco, así que no te preocupes por eso.
‫También puede cambiar estos en caso de que puedan quedar expuestos o tal
‫vez obtenga un servidor que podría haber tenido una vulnerabilidad, y desea asegurarse de que ningún nodo pueda unirse al enjambre de la clave anterior,
‫puede rotar estas claves .
‫Voy a copiar esto y pegarlo en el nodo3.
‫Y ahí vamos. De vuelta en node1.
‫Si vuelvo a hacer un nodo docker, verás que tengo tres nodos. administrador que indica que son gerentes.
‫Y todos tienen un estado de
‫Entonces ahora tenemos un enjambre redundante de 3 nodos, con tres administradores. Hagamos lo mismo que hicimos
‫antes, servicio
‫Docker create alpine ping 8. 8. 8. 8 Solo que esta
‫vez,
‫démosle tres réplicas.
‫y veremos que ya
‫tenemos tres de tres en ejecución.
‫Y luego haga un servicio de acoplador,
‫Si hice un nodo docker ps, realmente puedo ver que mi nodo local realmente está ejecutando esta tarea o contenedor.
‫De hecho, puedo especificar el nodo, nodo2, y me dará solo los contenedores que se ejecutan en el nodo2.
‫Si quisiera obtener una lista completa, podría hacer un servicio déjame expandir la
‫de acoplador ps, y luego somnoliento es el nombre que dio a nuestro servicio. Y verás aquí. pantalla un poco. Puede ver aquí que enumera las tres tareas.
‫Una vez que haya creado este enjambre, normalmente no
‫necesita escribir comandos en todos los nodos diferentes. Realmente puedes operar todo el enjambre, para la mayoría de las cosas, desde el nodo1.
‫pero por ahora, dale palmaditas en la espalda porque tienes un cluster de enjambre completamente operativo.
‫Así que vamos a hacer mucho de nuestro trabajo desde node1 en conferencias futuras,
‫
‫sistemas operativos en los tres nodos.