= DevOps Sesión 4 (2022-02-21) Traefik, Swarm == Documentación relacionada * 1-Despliegue de Aplicaciones Docker * ./Traefik1.7.txt * ./Laboratorio Traefik Docker/Docker Traefik.pdf * ./Laboratorios docker-compose/Lab Docker-Compose-miaplicacion/* * ./Laboratorios docker-compose/Lab Docker-Compose-miaplicacion/docker-compose acciones.txt == Clase === traefik * https://traefik.io * https://doc.traefik.io/traefik/v1.7/ * ''docker run -d -p 8580:8080 -p 80:80 --network traefik --name traefik -v $PWD/traefik.toml:/etc/traefik/traefik.toml -v /var/run/docker.sock:/var/run/docker.sock traefik:1.7'' * sticky sesion: en el caso de balanceo, fija una sesión a un contenedor * escalar: * ''docker-compose scale =3'' * ''docker-compose up %%--%%scale =3 -d'' * ''docker compose up -d %%--force-recreate%% %%--%%build ...'' * ./Laboratorio Traefick Docker/traefik.toml * [[https://www.avante.es/video-killed-the-radio-star-o-como-kubernetes-ha-matado-a-docker-o-no/ ]] === swarm * ./2-Docker Swarm.pdf * ./Clase explicacion Swarm.txt * ./Seminario Orquestadores de Contenedores Swarn kubernetes .pdf * [[https://www.youtube.com/channel/UCaL3Poyh7AWECpI5Ee_38xw/featured]] * orquestador * ejecución contenedores en varios nodos * stacks ≡ docker-compose.yml * servicios = unidad mínima * master/esclavo * bdd: * **etcd** * distribuida (entre los masters) * clave=valor * protocolo ralph para escoger master * servidor DNS * **/var/lib/docker/swarm**: información del swarm, por cada nodo. * ''docker swarm init'' * ''docker swarm join-token worker'' * ''docker swarm join-token master'' * creación red **overlay** -> ''docker network ls'' * ''docker node inspect [--pretty]]'' * ''docker network inspect ingress'' * servicios * modos: * replicado (por defecto) * global: entornos de monitorización. se crea un contenedor en cada nodo. no permite escalado * técnicas desplagado * blue-green: cambio en ingress de versiones (implica tener las 2 versiones en marcha) * canary: cambio progresivo * A/B * ''docker node update --availabilty'' * active: modo normal de funcionamiento * pause: no acepta nuevos servicios * drain: se va vaciando el nodo de servicios * constrains * ''docker service create --name cluster1 --constraint "node.role == worker" -p:81:80/tcp russmckendrick/cluster'' * ''-p:8080:80'' -> ''%%--%%publish published=8080,target=80'' == Extra * Rancher Desktop -> https://rancherdesktop.io * sustituto de docker Desktop (licencia) * docker, compose, kubernetes * nip.io * traefik.me