ORQUESTADORES PARA LAS CUATRO
ESTACIONES (SWARM, KUBERNETES, MESOS
Y RANCHER)
JAVIER (@JAVIERPROVECHO), ADRIÁN (@CANONALE)...
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...
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 m...
SWARM NODO WORKER
>_ docker swarm join 
--token SWMTKN-1-0mi0uy4i1b8mycq3dezqj8isrrldfa0525ofkszln8m3277zqg-
172.31.0.186:...
SWARM NODOS
Mostraremos los nodos con los que cuenta el cluster.
>_ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER...
CONTENEDORES
SERVICES
Es la unidad funcional para los workers. Basicamente es como
arrancar un contenedor pero usando Swarm para que
ar...
SERVICES
>_ docker service create --name vote 
--publish 80:80
>_ docker service update vote --image dockersamples/example...
SWARM O K8B
ESCALAR
REPLICAS
Docker swarm permite la replicación en los nodos
disponibles.
>_ docker service update vote --replicas 10
ID NAME...
ACTUALIAR UN SERVICIO.
>_ docker service update vote --image 
dockersamples/examplevotingapp_vote: before
Podemos controla...
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 ...
VOLUMENES
>_ docker service create --name web --mount 
type=volume,source=mi-vol,target=/app/,volume-label=”color=red” 
--...
PLUGINS
Son add-ons de terceros que se puede usar para ampliar la
utilidad de Docker. Usan su API y dan un mayor utilidad ...
STACK
Es la evolución del docker-compose. Se usa para crear stacks
de servicios.
1. Creas un nodo Manager
2. Agregas los n...
STACK.YML
version: "3"
services:
redis:
image: redis:alpine
ports:
- "6379"
networks:
- frontend
deploy:
replicas: 2
updat...
API
API
Docker dispone de un API para su funcionamiento. De hecho
el cli funciona así de manera nativa conectandose al socker
...
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
...
PREGUNTAS????
RANCHER
RANCHER O RANCHEROS
RancherOS: es un sistema operativo hecho a base de
contenedor, todo es un contenedor (Docker Over Kern...
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 Kube...
DESVENTAJAS
A veces hace cosas raras, intenta reiniciar contenedores
constantemente.
Las actulizaciones no son del todo tr...
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 -...
AGENTE EC2
CONTENEDORES
CONTENERIZACIÓN
1. Creamos un stack
2. Creamos los servicios de backend
3. Creamos los servios de frontend
4. Balanceador ...
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 re...
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...
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-...
PREGUNTAS????
Orquestadores para las cuatro estaciones (swarm, kubernetes, mesos y rancher)
Próxima SlideShare
Cargando en…5
×

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

188 visualizaciones

Publicado el

Slides de como orquestas despliegues con Docker Swarm y Rancher. Ejemplo sencillos de cómo hacerlo y disponer de persistencia de datos en los casos que nos interese.

Publicado en: Software
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
188
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
3
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

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

  1. 1. ORQUESTADORES PARA LAS CUATRO ESTACIONES (SWARM, KUBERNETES, MESOS Y RANCHER) JAVIER (@JAVIERPROVECHO), ADRIÁN (@CANONALE) 2017-04-08
  2. 2. QUIEN SOY Adrián CoFundador de DonDocker @canonale (twitter, instagram)
  3. 3. DOCKER SWARM
  4. 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
  5. 5. DOCKER SWARM
  6. 6. SWARM Tabajaremos con distintos host. Uno será el Manager y el resto se unirán a el como Workers.
  7. 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. 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. 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
  10. 10. CONTENEDORES
  11. 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. 12. SERVICES >_ docker service create --name vote --publish 80:80 >_ docker service update vote --image dockersamples/examplevotingapp_vote:before
  13. 13. SWARM O K8B
  14. 14. ESCALAR
  15. 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. 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. 17. RED
  18. 18. EXPONER PUERTOS >_ docker service update vote --publish-add 8080:80
  19. 19. VOLUMENES
  20. 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. 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. 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. 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. 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. 25. API
  26. 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. 27. API Arrancar. >_ dockerd -D -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
  28. 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
  29. 29. PREGUNTAS????
  30. 30. RANCHER
  31. 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.
  32. 32. COMPONENTES
  33. 33. INICIO Instalacion >_ docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
  34. 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. 35. DESVENTAJAS A veces hace cosas raras, intenta reiniciar contenedores constantemente. Las actulizaciones no son del todo transparentes.
  36. 36. COMPONENTES Infraestructure service Metadatos Networking PersistentStorage LoadBalancer AuditLoggin DNS ServiceAccounts
  37. 37. REPLICACIÓN Para añadir más nodos al claster solo hay que hacer un par de clics.
  38. 38. AÑADIR HOSTS Tipos de host disponibles
  39. 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
  40. 40. AGENTE EC2
  41. 41. CONTENEDORES
  42. 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
  43. 43. ESCALAR
  44. 44. ESCALAR SERVICIOS Una vez de nidos los servicios. Escalar es simplemente hacer clic para ampliar el numero de contenedores.
  45. 45. RED
  46. 46. EXPOSICION DE PUERTOS. Puedes indicarlo en el contenedor Pero tambien el el balanceador frontal.
  47. 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.
  48. 48. VOLUMENES
  49. 49. VOLUMNES RANCHER GESTIONA LOS VOLUMNES USANDO CONTENEDOR ESPECIFICOS
  50. 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. 51. VOLUMENES Rancher tiene un catálogo de drivers
  52. 52. API
  53. 53. API Rancher tiene un API http Tiene un cli llamado rancher-compose Webhook para determinadas acciones (scale, updates)
  54. 54. API
  55. 55. API Solo es necesario activar una llave
  56. 56. API >_ u=06BFB18677FE1FCFE14F >_ p=CyLQxskRzQo7drvTn6SAoD6Xm5ZQQL8oyaijgR5w >_ curl -u $u:$p http://52.88.45.165:8080/v2-beta/projects/1a5/services/1s17
  57. 57. PREGUNTAS????

×