Diferències
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 | ||
info:cursos:pue:devops:sesion3 [15/02/2019 10:05] – mate | info:cursos:pue:devops:sesion3 [04/03/2019 06:05] (actual) – [influx+grafana+telegraf] mate | ||
---|---|---|---|
Línia 1: | Línia 1: | ||
- | = Sesión 3 | + | = Sesión 3 : swarm |
== varios | == varios | ||
* spreed brain?: | * spreed brain?: | ||
* 3 nodos develop | * 3 nodos develop | ||
* 5 nodos producción | * 5 nodos producción | ||
+ | * '' | ||
+ | * docker mysql: importar los fichero SQL de la carpeta **/ | ||
+ | * visto en el Dockerfile (https:// | ||
+ | * directiva **constrains** para deployar en máquinas concretas | ||
+ | * nodo, os | ||
+ | * daryl : plantillas + variables = yaml personalizados (imagino que cualquier otra cosa) | ||
+ | * portainer : App templates | ||
== swarm | == swarm | ||
+ | === conceptos | ||
+ | * swarm: '' | ||
+ | * node: '' | ||
+ | * stack: '' | ||
+ | * service '' | ||
+ | * tasks '' | ||
+ | |||
+ | === inicialización + gestión nodos | ||
* '' | * '' | ||
* para crear un swarm con varios nodos, solo 1 ha de iniciarlo | * para crear un swarm con varios nodos, solo 1 ha de iniciarlo | ||
* '' | * '' | ||
* podemos añadirnos como manager o como workers al swarm creado | * podemos añadirnos como manager o como workers al swarm creado | ||
- | * '' | + | |
- | * '' | + | * '' |
- | * '' | + | |
- | * '' | + | === stacks & servicios |
+ | | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | === logs & inspección | ||
+ | * '' | ||
+ | * si no puedes ver logs del contenedor, mirar en logs de docker: | ||
+ | * / | ||
+ | * / | ||
+ | * o en algún concentrador (ELK) | ||
+ | * inspeccionar en el nodo que se está ejecutando: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | |||
+ | * '' | ||
+ | * '' | ||
=== portainer | === portainer | ||
+ | requiere tener una red llamada proxy creada: '' | ||
<code yaml; swarm-portainer.yml> | <code yaml; swarm-portainer.yml> | ||
version: ' | version: ' | ||
Línia 71: | Línia 109: | ||
=== influx+grafana+telegraf | === influx+grafana+telegraf | ||
- | <code yaml; stack.yml> | + | <code yaml; stack-triolalala.yml> |
+ | version: ' | ||
+ | |||
+ | services: | ||
+ | influxdb: | ||
+ | image: influxdb: | ||
+ | command: | ||
+ | -config / | ||
+ | environment: | ||
+ | INFLUXDB_ADMIN_USER: | ||
+ | INFLUXDB_ADMIN_PASSWORD: | ||
+ | networks: | ||
+ | - agents | ||
+ | - grafana | ||
+ | volumes: | ||
+ | - / | ||
+ | - / | ||
+ | deploy: | ||
+ | replicas: 1 | ||
+ | |||
+ | telegraf: | ||
+ | image: telegraf: | ||
+ | environment: | ||
+ | HOST_PROC: '/ | ||
+ | HOST_SYS: '/ | ||
+ | HOST_ETC: '/ | ||
+ | networks: | ||
+ | - agents | ||
+ | volumes: | ||
+ | - / | ||
+ | - / | ||
+ | - / | ||
+ | - / | ||
+ | - / | ||
+ | - / | ||
+ | deploy: | ||
+ | mode: global | ||
+ | restart_policy: | ||
+ | condition: on-failure | ||
+ | delay: 5s | ||
+ | |||
+ | grafana: | ||
+ | image: grafana/ | ||
+ | environment: | ||
+ | GF_INSTALL_PLUGINS: | ||
+ | volumes: | ||
+ | - / | ||
+ | networks: | ||
+ | - grafana | ||
+ | - proxy | ||
+ | depends_on: | ||
+ | - influxdb | ||
+ | deploy: | ||
+ | replicas: 1 | ||
+ | ports: | ||
+ | - 9002:3000 | ||
+ | |||
+ | networks: | ||
+ | agents: | ||
+ | external: true | ||
+ | grafana: | ||
+ | external: true | ||
+ | proxy: | ||
+ | external: true | ||
+ | </ | ||
+ | <code yaml; stack-kpeiruza.yml> | ||
# Author: Kenneth Peiruza | # Author: Kenneth Peiruza | ||
version: ' | version: ' | ||
Línia 141: | Línia 244: | ||
</ | </ | ||
- | * escupe fichero de config base: '' | + | |
- | <code; telegraf.conf> | + | |
- | </ | + | * modificado el **inputs.docker**: |
+ | * descomentado endopoint, gather_services | ||
+ | * y el **outputs.influxdb** | ||
+ | * descomentado urls, | ||
<code; influxdb.conf> | <code; influxdb.conf> | ||
Línia 271: | Línia 377: | ||
enabled = true | enabled = true | ||
run-interval = " | run-interval = " | ||
+ | </ | ||
+ | |||
+ | relevante: | ||
+ | * constrains | ||
+ | * tasks.< | ||
+ | * si apuntas un loadbalancer (traefik) a los master... | ||
+ | * en el caso de este portainer, no desplegamos en al red de docker, si no sobre la máquina loca (pila tcp-ip local) | ||
+ | |||
+ | <code yaml; kpeiruza-portainer.yml> | ||
+ | version: ' | ||
+ | |||
+ | services: | ||
+ | portainer: | ||
+ | image: portainer/ | ||
+ | command: '-H " | ||
+ | ports: | ||
+ | - ${PUBLIC_PORT}: | ||
+ | networks: | ||
+ | - proxy | ||
+ | - portainer_agent | ||
+ | volumes: | ||
+ | - / | ||
+ | - ${REMOTE_MOUNT}/ | ||
+ | deploy: | ||
+ | mode: replicated | ||
+ | replicas: 1 | ||
+ | labels: | ||
+ | traefik.port: | ||
+ | traefik.frontend.rule: | ||
+ | traefik.docker.network: | ||
+ | placement: | ||
+ | constraints: | ||
+ | | ||
+ | agent: | ||
+ | image: portainer/ | ||
+ | environment: | ||
+ | AGENT_CLUSTER_ADDR: | ||
+ | volumes: | ||
+ | - / | ||
+ | ports: | ||
+ | - target: 9001 | ||
+ | published: 9001 | ||
+ | protocol: tcp | ||
+ | mode: host | ||
+ | networks: | ||
+ | - portainer_agent | ||
+ | deploy: | ||
+ | mode: global | ||
+ | placement: | ||
+ | constraints: | ||
+ | |||
+ | |||
+ | |||
+ | networks: | ||
+ | portainer_agent: | ||
+ | external: true | ||
+ | proxy: | ||
+ | external: true | ||
+ | </ | ||
+ | |||
+ | === traefik (con https y let's encrypt) | ||
+ | <code yaml; traefik-proxy.yaml> | ||
+ | version: ' | ||
+ | |||
+ | services: | ||
+ | traefik: | ||
+ | image: library/ | ||
+ | command: | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | networks: | ||
+ | - frontal | ||
+ | volumes: | ||
+ | - / | ||
+ | - / | ||
+ | ports: | ||
+ | - 80:80 | ||
+ | - 443:443 | ||
+ | - 8080:8080 | ||
+ | deploy: | ||
+ | restart_policy: | ||
+ | condition: on-failure | ||
+ | |||
+ | networks: | ||
+ | frontal: | ||
+ | external: true | ||
+ | </ | ||
+ | |||
+ | === traefik (simple) | ||
+ | <code swarm-traefik.yml> | ||
+ | version: ' | ||
+ | |||
+ | services: | ||
+ | traefik: | ||
+ | image: library/ | ||
+ | command: | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | # - " | ||
+ | networks: | ||
+ | - frontal | ||
+ | volumes: | ||
+ | - / | ||
+ | - / | ||
+ | ports: | ||
+ | - 80:80 | ||
+ | - 443:443 | ||
+ | - 8080:8080 | ||
+ | deploy: | ||
+ | restart_policy: | ||
+ | condition: on-failure | ||
+ | |||
+ | networks: | ||
+ | frontal: | ||
+ | external: true | ||
</ | </ |