SlideShare una empresa de Scribd logo
Adrián Gómez Lois
Administración de Sistemas Informáticos y Redes
CIFP A Carballeira - Marcos Valcárcel
Noviembre - 2018
Creando un Dockerfile
▪ Partirá de una imagen limpia de Debian.
▪ Instalará los paquetes: net-tools, curl, mysql, apache2, php y otros paquetes necesarios relacionados:
wget, nano, curl, openssh-server y supervisor.
▪ Creará una BBDD Worpress con usuario y password y le otorgará permisos.
▪ Copiará un contenido de una instalación previamente configurada con un theme personalizado y
adaptado de Worpress, asignará el propietario www-data al directorio.
▪ Creará un directorio en el contenedor y copiará en él los certificados SSL para el dominio de la web.
(Del dominio “itgal.es” adquirido a través del registrar (registrador) 1&1).
▪ Copiará dos ficheros Virtualhost previamente configurados al servidor Apache2 del contenedor y
habilitará los módulos utilizados y necesarios para Apache2.
▪ Creará y configurará un usuario para para la conexión SSH al contenedor.
▪ Establecerá un banner motd personalizado.
▪ Expondrá públicamente los puertos para SSH/22, HTTP/80 y HTTPS/443.
▪ Establecerá como entrypoint (CMD) del contenedor la ejecución de supervisord. 2
Subir imagen a Docker Hub
3
Diagrama AWS:
Docker Swarm,
Auto Scaling Group,
Elastic Load Balancer
4
root@manager:~# docker service create 
> --name webitgal 
> --publish 80:80 
> --publish 443:443 
> --replicas 3 
> --update-parallelism 1 
> --update-delay 5s 
> --restart-condition on-failure 
> adryanaws/webitgal
8eoqdtcmx20mne3iepo2074px
overall progress: 3 out of 3 tasks
1/3: running [=========================>]
2/3: running [=========================>]
3/3: running [=========================>]
verify: Service converged
Docker Swarm:
Crear el servicio con tres
tareas de réplica en tres
nodos desplegados con ASG
5
Elastic Load Balancer:
Balanceador de carga entre instancias EC2 gestionadas por ASG
e instancia fija correspondiente al nodo manager.
6
Crear un registro CNAME en
la configuración DNS que
apunte al DNS Name del ELB
Elastic Load Balancer:
Balanceo de carga entre instancias
EC2 (nodos Swarm). Para el servicio
replicado “webital”
<div style="background-color:black;color:white;font-
size:1.5em;text-align:center;padding:5px;width:100%">
<?php echo
file_get_contents("http://169.254.169.254/latest/meta-
data/local-ipv4"); ?>
<br />
<?php echo
file_get_contents("http://169.254.169.254/latest/meta-
data/instance-id"); ?>
</div>
7
root@manager:~# docker service update --replicas=6 webitgal
webitgal
overall progress: 6 out of 6 tasks
1/6: running [==================================>]
2/6: running [==================================>]
3/6: running [==================================>]
4/6: running [==================================>]
5/6: running [==================================>]
6/6: running [==================================>]
verify: Service converged
Docker Swarm:
Actualizar el servicio con tres
tareas de réplica
8
Auto Scaling Group
Scale-out en una
instancia que se
agregará al nodo Swarm
9
root@manager:~# docker service update --force webitgal
webitgal
overall progress: 6 out of 6 tasks
1/6: running [==================================>]
2/6: running [==================================>]
3/6: running [==================================>]
4/6: running [==================================>]
5/6: running [==================================>]
6/6: running [==================================>]
verify: Service converged
Docker Swarm:
Actualización de servicio con las
misma tareas de réplicas anteriores,
creando así el rebalanceo de
carga entre los nodos del Swarm
10
root@manager:~# docker service update --replicas=1
webitgal
webitgal
overall progress: 1 out of 1 tasks
1/1: running
[===============================================>]
verify: Service converged
Docker Swarm:
Actualización de servicio para
reducir las tareas de réplicas a uno
11
Auto Scaling Group
Scale-in a cero en todas las instancias desplegadas
12
root@manager:~# docker node ls
ID HOSTNAME STATUS
AVAILABILITY MANAGER STATUS ENGINE VERSION
eyxf2pqhfbprckm6db44761zj ip-192-168-10-64 Down
Active 18.06.1-ce
qw84n3ev09yhc30vlmddrwpzb ip-192-168-20-133 Down
Active 18.06.1-ce
togf7g1cv22rol9c9jowj1ioh ip-192-168-30-222 Down
Active 18.06.1-ce
b5mm1cmv2d2jr1dgh5rlr3oqk * manager Ready
Active Leader 18.06.1-ce
Docker Swarm:
Después del scale-in a cero, el
estado de los nodos es ”Down”
13
#!/bin/bash
nodo_down=$(docker node ls | grep Down | sed -n '1p' |
awk '{print $1}')
while [ "$nodo_down" != "" ];
do
nodo_down=$(docker node ls | grep Down | sed -n '1p'
| awk '{print $1}')
docker node rm --force "$nodo_down"
done
Bash Script:
Script para eliminar nodos “down”
del Swarm de nodos. (Instancias en
estado “terminated”)
14
$>WHOAMI
▪ adrianlois@zonasystem.com
▪ https://zonasystem.com
▪ @adrianlois_
15
https://www.youtube.com/watch?v=HzsBiJjgrOo

Más contenido relacionado

PDF
1212
PDF
PDF
Servidor web Apache
PPTX
Apache practica
PDF
Proyecto Integrado Chef
PPTX
Servidor web apache
PDF
Bulma 441
PPTX
Servidor Web Apache para Linux
1212
Servidor web Apache
Apache practica
Proyecto Integrado Chef
Servidor web apache
Bulma 441
Servidor Web Apache para Linux

La actualidad más candente (20)

PDF
Aprendiendo REDIS en 20 minutos
PPTX
Taller HA y Balanceo de Cargas con NIGX.
PPTX
Creacion de un Repositorio Local en CentOS_6.0
PDF
Configuracion del servidor vsftpd en linux
PDF
Introducción a Servidor HTTP Apache
PPTX
Seguridad de las Redes
PDF
Manual servicio http bajo linux red hat
PDF
Dns estatico IPv4 e IPv6 en Debian 8.7.1
PDF
DNS (Bind) con Fedora.
PDF
Instalación Servidor DNS
PDF
APACHE MYSQL SAMBA
PPT
Taller de samba
PDF
PDF
Configurar un servidor dns (bind) en linux ubuntu (1)
DOCX
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
ODP
Marcos quesada caching_sf2
PPT
Presentacion Squid
PDF
CentOS 6.4 como DNS, Apache, SSL...
ODP
Aprendiendo REDIS en 20 minutos
Taller HA y Balanceo de Cargas con NIGX.
Creacion de un Repositorio Local en CentOS_6.0
Configuracion del servidor vsftpd en linux
Introducción a Servidor HTTP Apache
Seguridad de las Redes
Manual servicio http bajo linux red hat
Dns estatico IPv4 e IPv6 en Debian 8.7.1
DNS (Bind) con Fedora.
Instalación Servidor DNS
APACHE MYSQL SAMBA
Taller de samba
Configurar un servidor dns (bind) en linux ubuntu (1)
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Marcos quesada caching_sf2
Presentacion Squid
CentOS 6.4 como DNS, Apache, SSL...
Publicidad

Similar a Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups y Elastic Load Balancing (20)

PDF
Orquestadores para las cuatro estaciones (swarm, kubernetes, mesos y rancher)
PDF
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
PDF
Jenkins Peru Meetup Docker Ecosystem
PDF
Docker ECS en AWS
PDF
BEEVA | Introducción a Docker
PDF
Taller docker _es-cl
PDF
Docker en el entorno de desarrollo
PPTX
Docker 2014 v2
PPTX
PPTX
Docker para Dummies
PDF
TECNIRIS47-1b.pdf
PPTX
Comenzando con Docker en AWS
PDF
Docker para Data Scientist - Master en Data Science URJC
PDF
Curso Kubernetes CodeURJC
PPTX
Game of pods - Kubernetes
PDF
Comenzando con Docker en AWS
PPTX
AWSPeru Meetup marzo - introduccion a elastic containers seervice
PPTX
Usando docker
PDF
Docker introducción - Flisol 2015 Huancayo
PDF
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Orquestadores para las cuatro estaciones (swarm, kubernetes, mesos y rancher)
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Jenkins Peru Meetup Docker Ecosystem
Docker ECS en AWS
BEEVA | Introducción a Docker
Taller docker _es-cl
Docker en el entorno de desarrollo
Docker 2014 v2
Docker para Dummies
TECNIRIS47-1b.pdf
Comenzando con Docker en AWS
Docker para Data Scientist - Master en Data Science URJC
Curso Kubernetes CodeURJC
Game of pods - Kubernetes
Comenzando con Docker en AWS
AWSPeru Meetup marzo - introduccion a elastic containers seervice
Usando docker
Docker introducción - Flisol 2015 Huancayo
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Publicidad

Último (20)

PDF
Calidad desde el Docente y la mejora continua .pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
taller de informática - LEY DE OHM
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
Presentación de Redes de Datos modelo osi
PDF
SAP Transportation Management para LSP, TM140 Col18
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPT
Que son las redes de computadores y sus partes
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Calidad desde el Docente y la mejora continua .pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Estrategia de apoyo tecnología grado 9-3
Estrategia de apoyo tecnología miguel angel solis
Plantilla para Diseño de Narrativas Transmedia.pdf
Diapositiva proyecto de vida, materia catedra
Power Point Nicolás Carrasco (disertación Roblox).pptx
Presentación PASANTIAS AuditorioOO..pptx
taller de informática - LEY DE OHM
Propuesta BKP servidores con Acronis1.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Influencia-del-uso-de-redes-sociales.pdf
Sesion 1 de microsoft power point - Clase 1
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Presentación de Redes de Datos modelo osi
SAP Transportation Management para LSP, TM140 Col18
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Que son las redes de computadores y sus partes
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx

Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups y Elastic Load Balancing

  • 1. Adrián Gómez Lois Administración de Sistemas Informáticos y Redes CIFP A Carballeira - Marcos Valcárcel Noviembre - 2018
  • 2. Creando un Dockerfile ▪ Partirá de una imagen limpia de Debian. ▪ Instalará los paquetes: net-tools, curl, mysql, apache2, php y otros paquetes necesarios relacionados: wget, nano, curl, openssh-server y supervisor. ▪ Creará una BBDD Worpress con usuario y password y le otorgará permisos. ▪ Copiará un contenido de una instalación previamente configurada con un theme personalizado y adaptado de Worpress, asignará el propietario www-data al directorio. ▪ Creará un directorio en el contenedor y copiará en él los certificados SSL para el dominio de la web. (Del dominio “itgal.es” adquirido a través del registrar (registrador) 1&1). ▪ Copiará dos ficheros Virtualhost previamente configurados al servidor Apache2 del contenedor y habilitará los módulos utilizados y necesarios para Apache2. ▪ Creará y configurará un usuario para para la conexión SSH al contenedor. ▪ Establecerá un banner motd personalizado. ▪ Expondrá públicamente los puertos para SSH/22, HTTP/80 y HTTPS/443. ▪ Establecerá como entrypoint (CMD) del contenedor la ejecución de supervisord. 2
  • 3. Subir imagen a Docker Hub 3
  • 4. Diagrama AWS: Docker Swarm, Auto Scaling Group, Elastic Load Balancer 4
  • 5. root@manager:~# docker service create > --name webitgal > --publish 80:80 > --publish 443:443 > --replicas 3 > --update-parallelism 1 > --update-delay 5s > --restart-condition on-failure > adryanaws/webitgal 8eoqdtcmx20mne3iepo2074px overall progress: 3 out of 3 tasks 1/3: running [=========================>] 2/3: running [=========================>] 3/3: running [=========================>] verify: Service converged Docker Swarm: Crear el servicio con tres tareas de réplica en tres nodos desplegados con ASG 5
  • 6. Elastic Load Balancer: Balanceador de carga entre instancias EC2 gestionadas por ASG e instancia fija correspondiente al nodo manager. 6 Crear un registro CNAME en la configuración DNS que apunte al DNS Name del ELB
  • 7. Elastic Load Balancer: Balanceo de carga entre instancias EC2 (nodos Swarm). Para el servicio replicado “webital” <div style="background-color:black;color:white;font- size:1.5em;text-align:center;padding:5px;width:100%"> <?php echo file_get_contents("http://169.254.169.254/latest/meta- data/local-ipv4"); ?> <br /> <?php echo file_get_contents("http://169.254.169.254/latest/meta- data/instance-id"); ?> </div> 7
  • 8. root@manager:~# docker service update --replicas=6 webitgal webitgal overall progress: 6 out of 6 tasks 1/6: running [==================================>] 2/6: running [==================================>] 3/6: running [==================================>] 4/6: running [==================================>] 5/6: running [==================================>] 6/6: running [==================================>] verify: Service converged Docker Swarm: Actualizar el servicio con tres tareas de réplica 8
  • 9. Auto Scaling Group Scale-out en una instancia que se agregará al nodo Swarm 9
  • 10. root@manager:~# docker service update --force webitgal webitgal overall progress: 6 out of 6 tasks 1/6: running [==================================>] 2/6: running [==================================>] 3/6: running [==================================>] 4/6: running [==================================>] 5/6: running [==================================>] 6/6: running [==================================>] verify: Service converged Docker Swarm: Actualización de servicio con las misma tareas de réplicas anteriores, creando así el rebalanceo de carga entre los nodos del Swarm 10
  • 11. root@manager:~# docker service update --replicas=1 webitgal webitgal overall progress: 1 out of 1 tasks 1/1: running [===============================================>] verify: Service converged Docker Swarm: Actualización de servicio para reducir las tareas de réplicas a uno 11
  • 12. Auto Scaling Group Scale-in a cero en todas las instancias desplegadas 12
  • 13. root@manager:~# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION eyxf2pqhfbprckm6db44761zj ip-192-168-10-64 Down Active 18.06.1-ce qw84n3ev09yhc30vlmddrwpzb ip-192-168-20-133 Down Active 18.06.1-ce togf7g1cv22rol9c9jowj1ioh ip-192-168-30-222 Down Active 18.06.1-ce b5mm1cmv2d2jr1dgh5rlr3oqk * manager Ready Active Leader 18.06.1-ce Docker Swarm: Después del scale-in a cero, el estado de los nodos es ”Down” 13
  • 14. #!/bin/bash nodo_down=$(docker node ls | grep Down | sed -n '1p' | awk '{print $1}') while [ "$nodo_down" != "" ]; do nodo_down=$(docker node ls | grep Down | sed -n '1p' | awk '{print $1}') docker node rm --force "$nodo_down" done Bash Script: Script para eliminar nodos “down” del Swarm de nodos. (Instancias en estado “terminated”) 14
  • 15. $>WHOAMI ▪ adrianlois@zonasystem.com ▪ https://zonasystem.com ▪ @adrianlois_ 15 https://www.youtube.com/watch?v=HzsBiJjgrOo