Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
docker_swarm_stacks [2022/11/22 19:16] enric_mieza_sanchez [Primer docker stack amb traefik] |
docker_swarm_stacks [2026/10/02 20:51] (actual) enric_mieza_sanchez [Primer docker stack amb traefik] |
||
|---|---|---|---|
| Línia 26: | Línia 26: | ||
| <WRAP info> | <WRAP info> | ||
| - | Podràs visualitzar 2 frontends | + | Podràs visualitzar 2 webs (l' |
| * 10.100.199.200: | * 10.100.199.200: | ||
| - | * 10.100.199.200 : port 80 on podràs veure el frontend de traefik, però de moment ens mostra un '' | + | * 10.100.199.200 : port 80 on podràs veure el //frontend// de traefik, però de moment ens mostra un '' |
| - | * **Si volem veure la web, caldrà que configureu l' | + | * **Si volem veure la web, caldrà que configureu l' |
| * OJU perquè el ''/ | * OJU perquè el ''/ | ||
| * Ara sí que podem visualitzar la web de '' | * Ara sí que podem visualitzar la web de '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | <tabbox Traefik v3> | ||
| + | <file yaml whoami.stack.yml> | ||
| + | version: ' | ||
| + | |||
| + | services: | ||
| + | traefik: | ||
| + | image: traefik: | ||
| + | command: | ||
| + | - --api.insecure=true | ||
| + | - --providers.docker=true | ||
| + | - --providers.swarm=true | ||
| + | - --providers.docker.exposedbydefault=false | ||
| + | - --providers.swarm.exposedbydefault=false | ||
| + | - --entrypoints.web.address=: | ||
| + | ports: | ||
| + | - " | ||
| + | - " | ||
| + | volumes: | ||
| + | - / | ||
| + | deploy: | ||
| + | placement: | ||
| + | constraints: | ||
| + | - node.role == manager | ||
| + | |||
| + | whoami: | ||
| + | image: traefik/ | ||
| + | deploy: | ||
| + | replicas: 4 | ||
| + | labels: | ||
| + | - traefik.enable=true | ||
| + | - traefik.http.routers.whoami.rule=Host(`whoami.docker.local`) | ||
| + | - traefik.http.routers.whoami.entrypoints=web | ||
| + | - traefik.http.services.whoami.loadbalancer.server.port=80 | ||
| + | #- traefik.http.services.whoami.loadbalancer.sticky=true | ||
| + | #- traefik.http.services.whoami.loadbalancer.sticky.cookie.name=whoami_cookie | ||
| + | #- traefik.http.services.whoami.loadbalancer.sticky.cookie.secure=false | ||
| + | |||
| + | </ | ||
| + | |||
| + | <tabbox Traefik v1> | ||
| + | |||
| + | <WRAP important> | ||
| + | ULL si treballes amb aquesta versió obsoleta de Traefik v1, ja que és incompatible amb les APIs de Docker actuals. És preferible utilitzar la v3 de la qual teniu un exemple aquí mateix. | ||
| + | |||
| + | Si vols poder-la emprar igualment, pots fer-ho fent un //tunning// del motor de Docker Swarm per activar la compatibilitat amb APIs antigues. Caldria **crear aquest arxiu i reiniciar els serveis de Docker a tots els nodes del Swarm**: | ||
| + | |||
| + | <file javascript / | ||
| + | { | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Després pots reiniciar els serveis amb: | ||
| + | $ sudo systemctl restart docker.service docker.socket | ||
| </ | </ | ||
| Línia 74: | Línia 131: | ||
| net: | net: | ||
| </ | </ | ||
| + | |||
| + | </ | ||
| Per posar en marxa el //stack// ho podem fer d' | Per posar en marxa el //stack// ho podem fer d' | ||
| - | docker stack deploy --compose-file whoami.stack.yml | + | docker stack deploy --compose-file whoami.stack.yml |
| - | docker stack deploy -c whoami.stack.yml | + | docker stack deploy -c whoami.stack.yml |
| I ara, escalem el servei '' | I ara, escalem el servei '' | ||
| - | docker service scale hello_whoami=5 | + | docker service scale who_whoami=5 |
| docker stack ls | docker stack ls | ||
| Línia 90: | Línia 149: | ||
| * Quan refresques t' | * Quan refresques t' | ||
| - | Ara descomenta | + | Ara descomenta |
| * Quan refresques t' | * Quan refresques t' | ||
| * Canvia la IP si accedeixes a la web via '' | * Canvia la IP si accedeixes a la web via '' | ||
| + | * **ULL SPOILER ;) amb el '' | ||
| + | * Assegura' | ||
| * Què creus que significa el paràmetre //sticky// i perquè creus que funciona al //browser// però no amb '' | * Què creus que significa el paràmetre //sticky// i perquè creus que funciona al //browser// però no amb '' | ||