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.
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
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
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
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.
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.
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.
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.
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.