GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo crear un Docker Swarm Manager y nodos en Linode

Antes de comenzar

  1. Completar esta guía requerirá al menos dos Linodes ubicados en el mismo centro de datos. Las instrucciones de esta guía se escribieron para Ubuntu 16.04, pero se pueden usar otras distribuciones; los Linodes no necesitan usar la misma distribución.

  2. Siga nuestra guía de configuración y protección de una instancia informática para actualizar su sistema. También puede establecer la zona horaria, configurar su nombre de host, crear una cuenta de usuario limitada y fortalecer el acceso SSH.

  3. Instale Docker en cada Linode. Consulte nuestra guía Instalación de Docker e Implementación de una pila LAMP o los documentos de instalación de Docker para obtener más información.

Nota Los pasos de esta guía requieren privilegios de root. Asegúrese de ejecutar los pasos a continuación como root o con sudo prefijo. Para obtener más información sobre los privilegios, consulte nuestra guía de usuarios y grupos.

Aumente el poder de Docker creando un clúster de hosts de Docker, llamado Docker Swarm. Necesita un Linode para que funcione como Docker Swarm Manager y algunos hosts de Docker para unirse a Swarm como nodos.

En esta guía, configurará un Docker Swarm Manager y conectará nodos para una implementación de contenedores escalable. Esto requiere varios Linodes con Docker instalados y ejecutándose en el mismo centro de datos. No es necesario que ejecuten la misma distribución.

Crear Docker Swarm Manager

El propósito de Docker Swarm Manager es recibir comandos en nombre del clúster y asignar contenedores a los nodos. Swarm Manager utiliza el algoritmo de consenso de Raft para administrar los estados de Swarm. El algoritmo de consenso de Raft garantiza que todos los nodos administradores que están a cargo de administrar y programar tareas en un clúster almacenen el mismo estado coherente. Si ocurre una falla, un solo nodo asume las tareas y restaura el estado estable.

En esta guía, creamos un solo Swarm Manager. Si su objetivo es la alta disponibilidad, puede crear varios administradores.

  1. Inicie sesión en el Linode que ha elegido para el administrador de Swarm e inicialice el administrador. Reemplazar PUBLIC_IP en este ejemplo con la dirección IP pública de Linode:

    docker swarm init --advertise-addr PUBLIC_IP
    

    Docker responde con el comando necesario para que los nodos se unan al Swarm:

  2. Usar docker info para verificar que su Swarm está funcionando y activo:

    docker info
    

Unir nodos al administrador

En el paso 1 de la sección anterior, el docker swarm init El comando genera instrucciones sobre cómo unirse al administrador.

docker swarm join --token TOKEN PUBLIC_IP:2377

Donde TOKEN es la larga cadena de caracteres que se le presentó cuando inicializó Swarm, y PUBLIC_IP es la dirección IP pública de su Swarm Manager Linode. Si no recuerda el token, ejecute join-token en el administrador para ver la información del swarm init comando:

docker swarm join-token worker
  1. Para unir el nodo al Swarm, ejecute docker swarm join del nodo. Cambiar TOKEN al token del Paso 1 en la sección anterior, y PUIBLIC_IP a la IP pública del administrador:

    docker swarm join --token TOKEN PUBLIC_IP:2377
    

    El resultado muestra que el nodo se ha unido al enjambre como trabajador. Ahora tiene un pequeño clúster de Docker Swarm, con un administrador y un nodo:

  2. Repita el Paso 1 para unir tantos nodos al Swarm como sea necesario.

  3. En el administrador, use docker node ls para ver información sobre el administrador y una lista de todos los nodos:

    docker node ls
    

Implementar un servicio con Docker Swarm

Para implementar un servicio con Docker Swarm, use el administrador para preparar un solo nodo, luego escale la configuración para satisfacer sus necesidades. En este ejemplo, instalará NGINX en un nodo y luego lo ampliará a un clúster (enjambre) de tres nodos.

  1. Desde Swarm Manager, use service create para implementar un servicio en un nodo. Cambiar nginxexample a lo que quieras:

    docker service create -p 80:80 --name nginxexample nginx
    
  2. Escale el servicio NGINX a tres nodos:

    docker service scale nginxexample=3
    
  3. Verifique que el servicio se haya implementado con docker ps -a desde cualquier nodo:

    docker ps -a
    
  4. Para detener el nginxexample servicio, use el service remove comando:

    docker service remove nginxexample
    

Más información

Es posible que desee consultar los siguientes recursos para obtener información adicional sobre este tema. Si bien estos se proporcionan con la esperanza de que sean útiles, tenga en cuenta que no podemos garantizar la precisión o la puntualidad de los materiales alojados externamente.

  • Documentos de Docker
  • Tutorial de prueba de Docker
  • Centro acoplable

Docker
  1. Cómo exportar e importar contenedores Docker

  2. Cómo implementar un contenedor nginx con Docker en Linode

  3. Cómo y por qué usar un host Docker remoto

  4. Cómo instalar y usar Docker Compose en CentOS

  5. Cómo crear una imagen de Docker a partir de un contenedor y un archivo Docker

Cómo instalar Docker y Docker Compose en Linux

Cómo limpiar y eliminar imágenes de Docker

Cómo crear una imagen de Docker desde un contenedor en ejecución

Cómo crear un registro Docker privado en Ubuntu Linux

Cómo crear un contenedor de aplicaciones Django Docker

Cómo implementar y administrar un contenedor Docker MongoDB