SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
ORQUESTADORES PARA LAS CUATRO
ESTACIONES (SWARM, KUBERNETES, MESOS
Y RANCHER)
JAVIER (@JAVIERPROVECHO), ADRIÁN (@CANONALE)
2017-04-08
QUIEN SOY
Adrián
CoFundador de DonDocker
@canonale (twitter, instagram)
DOCKER SWARM
DOCKER SWARM
Swarm incliudo en propio cli de
Docker
Servicio de discovery
(DNS)
Diseño descentralizado Balancedor de carga.
Modelo declarativo Sisteam seguro. TLS
Monitarización del stack Rolling updates.
Red Mutlihost
DOCKER SWARM
SWARM
Tabajaremos con distintos host.
Uno será el Manager y el resto se unirán a el como
Workers.
SWARM
Iniciar un nodo Manager:
>_ docker swarm init
Swarm initialized: current node (ac610sbsb1lhkszsses1b9rm4) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join 
--token SWMTKN-1-0mi0uy4i1b8mycq3dezqj8isrrldfa0525ofkszln8m3277zqg-3b5u162oe
172.31.0.186:2377
Puerto 2377 abierto
SWARM NODO WORKER
>_ docker swarm join 
--token SWMTKN-1-0mi0uy4i1b8mycq3dezqj8isrrldfa0525ofkszln8m3277zqg-
172.31.0.186:2377
This node joined a swarm as a worker.
SWARM NODOS
Mostraremos los nodos con los que cuenta el cluster.
>_ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATU
ac610sbsb1lhkszsses1b9rm4 * ip- 172-31-0-186 Ready Active Leader
dqqv081lv4pexh6b47wszzmyq ip- 172-31-7-100 Ready Active
CONTENEDORES
SERVICES
Es la unidad funcional para los workers. Basicamente es como
arrancar un contenedor pero usando Swarm para que
arranque y gestione los contenedores en los nodos que
corresponda.
SERVICES
>_ docker service create --name vote 
--publish 80:80
>_ docker service update vote --image dockersamples/examplevotingapp_vote:before
SWARM O K8B
ESCALAR
REPLICAS
Docker swarm permite la replicación en los nodos
disponibles.
>_ docker service update vote --replicas 10
ID NAME IMAGE NODE DESIRED STATE CUR
m5sygbcu32mf vote.1 doapp_vote:after ip- 172-31-0-186 Running Ru
n45huqltx2si vote.2 doapp_vote:after ip- 172-31-5-186 Running Ru
zr439y2ja5ws vote.3 doapp_vote:after ip- 172-31-0-186 Running Ru
7xd99t048br2 vote.4 doapp_vote:after ip- 172-31-0-186 Running Ru
ox78dc14qk7u vote.5 doapp_vote:after ip- 172-31-0-186 Running Ru
mlcicpm7f3ks vote.6 doapp_vote:after ip- 172-31-0-186 Running Ru
r4d9vwf3ssg9 vote.7 doapp_vote:after ip- 172-31-5-186 Running Ru
zoq5blpgn6cl vote.8 doapp_vote:after ip- 172-31-5-186 Running Ru
08opxdz5yebl vote.9 doapp_vote:after ip- 172-31-5-186 Running Ru
wwkshm05r999 vote.10 doapp_vote:after ip- 172-31-5-186 Running Ru
También podemos modi car parametros del servicio como
puertos o imagen.
ACTUALIAR UN SERVICIO.
>_ docker service update vote --image 
dockersamples/examplevotingapp_vote: before
Podemos controlar la forma de actualizar:
Cuantos a la vez --update-parallelism
Cuanto tiempo de espera --update-delay
RED
EXPONER PUERTOS
>_ docker service update vote --publish-add 8080:80
VOLUMENES
VOLUMENES
En un servicio existen 3 tipos de almacenamientos:
Volumen, monta un volumen persistente de Docker.
Bind, monta un directorio o un chero del host al
contenedor.
tmpfs, monta un sistema e mero tmpfs
VOLUMENES
>_ docker service create --name web --mount 
type=volume,source=mi-vol,target=/app/,volume-label=”color=red” 
--publish 80:80 nginx:alpine
PLUGINS
Son add-ons de terceros que se puede usar para ampliar la
utilidad de Docker. Usan su API y dan un mayor utilidad al
sistema. Existen muchos tipos de plugins de almacenamiento,
y con ellos podemos utilizar diferentes sistemas de cheros:
Flocker, AWS EFS, Cepth...
>_ docker volumen create -d flocker --name Volume1 [-o options]
>_ /etc/init.d/docker-volume-netshare start
>_ docker volume create -d efs --name fs-2faf7a86
STACK
Es la evolución del docker-compose. Se usa para crear stacks
de servicios.
1. Creas un nodo Manager
2. Agregas los nodos Worker
3. Creas el dichero yaml
4. docker stack deploy -c fichero.yml MISTACK
STACK.YML
version: "3"
services:
redis:
image: redis:alpine
ports:
- "6379"
networks:
- frontend
deploy:
replicas: 2
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
db:
image: postgres:9.4
volumes:
API
API
Docker dispone de un API para su funcionamiento. De hecho
el cli funciona así de manera nativa conectandose al socker
que gestiona el daemon.
Para habilitarlo de forma remota tenemos que cambiar
algunos parametros. Permitir conexiones de cualquier ip y
habilitar o no TLS.
API
Arrancar.
>_ dockerd -D -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
API
Probar la conexion
>_ curl http://54.148.47.96:2375/info
Listar imagenes
>_ curl http://54.148.47.96:2375/images/json
Crear un contenedor
>_curl http://54.148.47.96:2375/containers/create 
-H "Content-Type: application/json" -d '{"Image": "httpd", “Cmd”: "httpd-foregro
-X POST
PREGUNTAS????
RANCHER
RANCHER O RANCHEROS
RancherOS: es un sistema operativo hecho a base de
contenedor, todo es un contenedor (Docker Over Kernel)
Rancher: es una plataforma para gestionar contenedores.
Pueden ir juntos o separados.
COMPONENTES
INICIO
Instalacion
>_ docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
VENTAJAS DE RANCHER
Permite crear stacks completos a golpe de ratón. Incluso
stacks prede nidos.
Puedes desplegar con Kubernetes, Mesos, Swarm y Cattle
Añadir nodos es muy simple.
DESVENTAJAS
A veces hace cosas raras, intenta reiniciar contenedores
constantemente.
Las actulizaciones no son del todo transparentes.
COMPONENTES
Infraestructure service Metadatos
Networking PersistentStorage
LoadBalancer AuditLoggin
DNS ServiceAccounts
REPLICACIÓN
Para añadir más nodos al claster solo hay que hacer un par de
clics.
AÑADIR HOSTS
Tipos de host disponibles
HOST CUSTOM
Genera un código para añadir a nuestro contenedor.
>_ sudo docker run -e CATTLE_AGENT_IP="34.208.105.179" -d --privileged
-v /var/run/docker.sock:/var/run/docker.sock 
-v /var/lib/rancher:/var/lib/rancher 
rancher/agent:v1.2.1 
http://34.208.105.179:8080/v1/scripts/
91AF8633DA75CC7923DE:1483142400000:saVp4eMy5GBTrkfrWdZMmPLbRMo
AGENTE EC2
CONTENEDORES
CONTENERIZACIÓN
1. Creamos un stack
2. Creamos los servicios de backend
3. Creamos los servios de frontend
4. Balanceador para entrada de internet
ESCALAR
ESCALAR SERVICIOS
Una vez de nidos los servicios. Escalar es simplemente hacer
clic para ampliar el numero de contenedores.
RED
EXPOSICION DE PUERTOS.
Puedes indicarlo en el contenedor
Pero tambien el el balanceador frontal.
RED
Dispone de 4 modos.
MANAGED. Rancher controla la red a través de una red
overlay
HOST. Usa las mismas interfaces de red que el an trión.
BRIDGE. Red por defecto de docker. (172.17.0.0/16)
NONE. Sin red.
VOLUMENES
VOLUMNES
RANCHER GESTIONA LOS VOLUMNES USANDO CONTENEDOR
ESPECIFICOS
VOLUMENES
1. Activamos el driver para los volumenes. Se crea el servicio
2. Desde la pestaña Storage creamos el volumen.
3. Lo asignamos al contenedor que le apliquemos el volumen.
VOLUMENES
Rancher tiene un catálogo de drivers
API
API
Rancher tiene un API http
Tiene un cli llamado rancher-compose
Webhook para determinadas acciones (scale, updates)
API
API
Solo es necesario activar una llave
API
>_ u=06BFB18677FE1FCFE14F
>_ p=CyLQxskRzQo7drvTn6SAoD6Xm5ZQQL8oyaijgR5w
>_ curl -u $u:$p 
http://52.88.45.165:8080/v2-beta/projects/1a5/services/1s17
PREGUNTAS????

Mais conteúdo relacionado

Mais procurados

Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Christian Rodriguez
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresBel Rey
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020BelnGonzlezGarca1
 
Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloScalia
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryMario IC
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
DockerparadesarrolloEric Zeidan
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSJan Sanchez
 
Inf tec estandariza_comp_escrit
Inf tec estandariza_comp_escritInf tec estandariza_comp_escrit
Inf tec estandariza_comp_escritClemente MR
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Vicente Gerardo Guzman Lucio
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Luis Enrique Tejeda Rodriguez
 
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTSInstalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTSJose Antonio Carrasco Moreno
 
Control de versiones utilizando subversion
Control de versiones utilizando subversionControl de versiones utilizando subversion
Control de versiones utilizando subversionJulio Pari
 
Instalacion de Docker CE en Windows 10
Instalacion de Docker CE en Windows 10Instalacion de Docker CE en Windows 10
Instalacion de Docker CE en Windows 10Moisés Elías Araya
 

Mais procurados (20)

FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...
 
Docker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos AiresDocker 101 Workshop - WomenWhoCode Buenos Aires
Docker 101 Workshop - WomenWhoCode Buenos Aires
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 
Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrollo
 
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, RegistryDocker Ecosystem: Engine, Compose, Machine, Swarm, Registry
Docker Ecosystem: Engine, Compose, Machine, Swarm, Registry
 
Dockerparadesarrollo
DockerparadesarrolloDockerparadesarrollo
Dockerparadesarrollo
 
Docker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJSDocker orientado al desarrollo de aplicaciones con NodeJS
Docker orientado al desarrollo de aplicaciones con NodeJS
 
Vagrant
VagrantVagrant
Vagrant
 
Inf tec estandariza_comp_escrit
Inf tec estandariza_comp_escritInf tec estandariza_comp_escrit
Inf tec estandariza_comp_escrit
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Curso Vagrant
Curso VagrantCurso Vagrant
Curso Vagrant
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
 
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTSInstalación de Docker Engine en Ubuntu Server 16.04 LTS
Instalación de Docker Engine en Ubuntu Server 16.04 LTS
 
Control de versiones utilizando subversion
Control de versiones utilizando subversionControl de versiones utilizando subversion
Control de versiones utilizando subversion
 
Instalacion de Docker CE en Windows 10
Instalacion de Docker CE en Windows 10Instalacion de Docker CE en Windows 10
Instalacion de Docker CE en Windows 10
 
Configservers
ConfigserversConfigservers
Configservers
 
Taller docker _es-cl
Taller docker _es-clTaller docker _es-cl
Taller docker _es-cl
 

Semelhante a Orquestadores para las cuatro estaciones (swarm, kubernetes, mesos y rancher)

Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18enyert
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacionStivenLopez46
 
Funcionamiento con my sql
Funcionamiento con my sqlFuncionamiento con my sql
Funcionamiento con my sqldante123456
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Mauro Parra-Miranda
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3Loquenecesito,com
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemMario IC
 
Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDAndres Ldño
 
Servicio apache gnu linux-centos ::: http://leymebamba.com
Servicio apache  gnu linux-centos  ::: http://leymebamba.comServicio apache  gnu linux-centos  ::: http://leymebamba.com
Servicio apache gnu linux-centos ::: http://leymebamba.com{|::::::. ELDAVAN .:::::::|}
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxykaliz
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerceDavid Ramirez
 

Semelhante a Orquestadores para las cuatro estaciones (swarm, kubernetes, mesos y rancher) (20)

Docker 10 02_18
Docker 10 02_18Docker 10 02_18
Docker 10 02_18
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
administracion de sistemas de informacion
administracion de sistemas de informacionadministracion de sistemas de informacion
administracion de sistemas de informacion
 
Funcionamiento con my sql
Funcionamiento con my sqlFuncionamiento con my sql
Funcionamiento con my sql
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3
 
Tomcat
TomcatTomcat
Tomcat
 
Introduction to docker. Stratio
Introduction to docker. StratioIntroduction to docker. Stratio
Introduction to docker. Stratio
 
Jenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker EcosystemJenkins Peru Meetup Docker Ecosystem
Jenkins Peru Meetup Docker Ecosystem
 
Jug málaga docker 101 - final
Jug málaga   docker 101 - finalJug málaga   docker 101 - final
Jug málaga docker 101 - final
 
Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUID
 
Servicio apache gnu linux-centos ::: http://leymebamba.com
Servicio apache  gnu linux-centos  ::: http://leymebamba.comServicio apache  gnu linux-centos  ::: http://leymebamba.com
Servicio apache gnu linux-centos ::: http://leymebamba.com
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Docker WordPress
Docker WordPressDocker WordPress
Docker WordPress
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxy
 
PROXY CENTOS 6.5
PROXY CENTOS 6.5PROXY CENTOS 6.5
PROXY CENTOS 6.5
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 

Orquestadores para las cuatro estaciones (swarm, kubernetes, mesos y rancher)

  • 1. ORQUESTADORES PARA LAS CUATRO ESTACIONES (SWARM, KUBERNETES, MESOS Y RANCHER) JAVIER (@JAVIERPROVECHO), ADRIÁN (@CANONALE) 2017-04-08
  • 2. QUIEN SOY Adrián CoFundador de DonDocker @canonale (twitter, instagram)
  • 4. DOCKER SWARM Swarm incliudo en propio cli de Docker Servicio de discovery (DNS) Diseño descentralizado Balancedor de carga. Modelo declarativo Sisteam seguro. TLS Monitarización del stack Rolling updates. Red Mutlihost
  • 6. SWARM Tabajaremos con distintos host. Uno será el Manager y el resto se unirán a el como Workers.
  • 7. SWARM Iniciar un nodo Manager: >_ docker swarm init Swarm initialized: current node (ac610sbsb1lhkszsses1b9rm4) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-0mi0uy4i1b8mycq3dezqj8isrrldfa0525ofkszln8m3277zqg-3b5u162oe 172.31.0.186:2377 Puerto 2377 abierto
  • 8. SWARM NODO WORKER >_ docker swarm join --token SWMTKN-1-0mi0uy4i1b8mycq3dezqj8isrrldfa0525ofkszln8m3277zqg- 172.31.0.186:2377 This node joined a swarm as a worker.
  • 9. SWARM NODOS Mostraremos los nodos con los que cuenta el cluster. >_ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATU ac610sbsb1lhkszsses1b9rm4 * ip- 172-31-0-186 Ready Active Leader dqqv081lv4pexh6b47wszzmyq ip- 172-31-7-100 Ready Active
  • 11. SERVICES Es la unidad funcional para los workers. Basicamente es como arrancar un contenedor pero usando Swarm para que arranque y gestione los contenedores en los nodos que corresponda.
  • 12. SERVICES >_ docker service create --name vote --publish 80:80 >_ docker service update vote --image dockersamples/examplevotingapp_vote:before
  • 15. REPLICAS Docker swarm permite la replicación en los nodos disponibles. >_ docker service update vote --replicas 10 ID NAME IMAGE NODE DESIRED STATE CUR m5sygbcu32mf vote.1 doapp_vote:after ip- 172-31-0-186 Running Ru n45huqltx2si vote.2 doapp_vote:after ip- 172-31-5-186 Running Ru zr439y2ja5ws vote.3 doapp_vote:after ip- 172-31-0-186 Running Ru 7xd99t048br2 vote.4 doapp_vote:after ip- 172-31-0-186 Running Ru ox78dc14qk7u vote.5 doapp_vote:after ip- 172-31-0-186 Running Ru mlcicpm7f3ks vote.6 doapp_vote:after ip- 172-31-0-186 Running Ru r4d9vwf3ssg9 vote.7 doapp_vote:after ip- 172-31-5-186 Running Ru zoq5blpgn6cl vote.8 doapp_vote:after ip- 172-31-5-186 Running Ru 08opxdz5yebl vote.9 doapp_vote:after ip- 172-31-5-186 Running Ru wwkshm05r999 vote.10 doapp_vote:after ip- 172-31-5-186 Running Ru También podemos modi car parametros del servicio como puertos o imagen.
  • 16. ACTUALIAR UN SERVICIO. >_ docker service update vote --image dockersamples/examplevotingapp_vote: before Podemos controlar la forma de actualizar: Cuantos a la vez --update-parallelism Cuanto tiempo de espera --update-delay
  • 17. RED
  • 18. EXPONER PUERTOS >_ docker service update vote --publish-add 8080:80
  • 20. VOLUMENES En un servicio existen 3 tipos de almacenamientos: Volumen, monta un volumen persistente de Docker. Bind, monta un directorio o un chero del host al contenedor. tmpfs, monta un sistema e mero tmpfs
  • 21. VOLUMENES >_ docker service create --name web --mount type=volume,source=mi-vol,target=/app/,volume-label=”color=red” --publish 80:80 nginx:alpine
  • 22. PLUGINS Son add-ons de terceros que se puede usar para ampliar la utilidad de Docker. Usan su API y dan un mayor utilidad al sistema. Existen muchos tipos de plugins de almacenamiento, y con ellos podemos utilizar diferentes sistemas de cheros: Flocker, AWS EFS, Cepth... >_ docker volumen create -d flocker --name Volume1 [-o options] >_ /etc/init.d/docker-volume-netshare start >_ docker volume create -d efs --name fs-2faf7a86
  • 23. STACK Es la evolución del docker-compose. Se usa para crear stacks de servicios. 1. Creas un nodo Manager 2. Agregas los nodos Worker 3. Creas el dichero yaml 4. docker stack deploy -c fichero.yml MISTACK
  • 24. STACK.YML version: "3" services: redis: image: redis:alpine ports: - "6379" networks: - frontend deploy: replicas: 2 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure db: image: postgres:9.4 volumes:
  • 25. API
  • 26. API Docker dispone de un API para su funcionamiento. De hecho el cli funciona así de manera nativa conectandose al socker que gestiona el daemon. Para habilitarlo de forma remota tenemos que cambiar algunos parametros. Permitir conexiones de cualquier ip y habilitar o no TLS.
  • 27. API Arrancar. >_ dockerd -D -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
  • 28. API Probar la conexion >_ curl http://54.148.47.96:2375/info Listar imagenes >_ curl http://54.148.47.96:2375/images/json Crear un contenedor >_curl http://54.148.47.96:2375/containers/create -H "Content-Type: application/json" -d '{"Image": "httpd", “Cmd”: "httpd-foregro -X POST
  • 31. RANCHER O RANCHEROS RancherOS: es un sistema operativo hecho a base de contenedor, todo es un contenedor (Docker Over Kernel) Rancher: es una plataforma para gestionar contenedores. Pueden ir juntos o separados.
  • 33. INICIO Instalacion >_ docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
  • 34. VENTAJAS DE RANCHER Permite crear stacks completos a golpe de ratón. Incluso stacks prede nidos. Puedes desplegar con Kubernetes, Mesos, Swarm y Cattle Añadir nodos es muy simple.
  • 35. DESVENTAJAS A veces hace cosas raras, intenta reiniciar contenedores constantemente. Las actulizaciones no son del todo transparentes.
  • 36. COMPONENTES Infraestructure service Metadatos Networking PersistentStorage LoadBalancer AuditLoggin DNS ServiceAccounts
  • 37. REPLICACIÓN Para añadir más nodos al claster solo hay que hacer un par de clics.
  • 38. AÑADIR HOSTS Tipos de host disponibles
  • 39. HOST CUSTOM Genera un código para añadir a nuestro contenedor. >_ sudo docker run -e CATTLE_AGENT_IP="34.208.105.179" -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.1 http://34.208.105.179:8080/v1/scripts/ 91AF8633DA75CC7923DE:1483142400000:saVp4eMy5GBTrkfrWdZMmPLbRMo
  • 42. CONTENERIZACIÓN 1. Creamos un stack 2. Creamos los servicios de backend 3. Creamos los servios de frontend 4. Balanceador para entrada de internet
  • 44. ESCALAR SERVICIOS Una vez de nidos los servicios. Escalar es simplemente hacer clic para ampliar el numero de contenedores.
  • 45. RED
  • 46. EXPOSICION DE PUERTOS. Puedes indicarlo en el contenedor Pero tambien el el balanceador frontal.
  • 47. RED Dispone de 4 modos. MANAGED. Rancher controla la red a través de una red overlay HOST. Usa las mismas interfaces de red que el an trión. BRIDGE. Red por defecto de docker. (172.17.0.0/16) NONE. Sin red.
  • 49. VOLUMNES RANCHER GESTIONA LOS VOLUMNES USANDO CONTENEDOR ESPECIFICOS
  • 50. VOLUMENES 1. Activamos el driver para los volumenes. Se crea el servicio 2. Desde la pestaña Storage creamos el volumen. 3. Lo asignamos al contenedor que le apliquemos el volumen.
  • 51. VOLUMENES Rancher tiene un catálogo de drivers
  • 52.
  • 53. API
  • 54. API Rancher tiene un API http Tiene un cli llamado rancher-compose Webhook para determinadas acciones (scale, updates)
  • 55. API
  • 56. API Solo es necesario activar una llave
  • 57. API >_ u=06BFB18677FE1FCFE14F >_ p=CyLQxskRzQo7drvTn6SAoD6Xm5ZQQL8oyaijgR5w >_ curl -u $u:$p http://52.88.45.165:8080/v2-beta/projects/1a5/services/1s17