7,540
edits
Changes
→Swarm stack
Az egész fentebb leírt architektúrát létrehozhatjuk swarm stack-ként egyetlen egy docker compose fájlal.
===compose fájl====
'''docker-compose.yml'''
<syntaxhighlight lang="C++">
Kiemelendők:
* A '''Netshare''' NFS volume-okat csak a globális '''volumes''' szekcióban lehet definiálni, mert csak a globális volumes szekciónak van '''driver''' és '''driver_opts''' paramétere. A service definíción belüli '''volumes''' szekciónak nincs.
* A Netshare 0.35-ös verziójában bevezették a '''share''' paraméter kezelését. Korábbi verziókat még nem lehetett swarm stack-ben (compose) használni. A globális '''volumes''' szekcióban a volume forrását elvileg nem kell megadni, az a swarm-ra van bízva, hogy hol hozza létre, ezért nincs neki src paramétere. Az egyetlen erre használható paraméter a '''driver_opts''' share paramétere, amit a korábbi verziók még nem tudtak kezelni. (Emlékezzünk vissza, hogy a swarm service definícióban ez nem okoz gondot, mert ott a forrást is meg tudtuk adni)
* Mivel a globális '''networks''' szekcióban nem adtuk meg az external paramétert, a '''monitor''' nevű overlay hálózatot minden alkalommal létre fogja hozni a swarm stack telepítése előtt, és le is fogja törölni ha töröljük a stack-et.
===Stack telepítése===
A stack-et az alábbi paranccsal hozhatjuk létre.
docker stack deploy --compose-file <yaml fájl név> <stack név>
A megadott stack nevet minden létrehozott szolgáltatáshoz hozza fogja fűzni prefix-ként, ezzel jelezve, hogy azok egy swarm stack részei. Még a monitor nevű overlay hálózat neve elég is oda fogja rakni a stack nevét.
Legyen a stack neve monitor:
<pre>
# docker stack deploy --compose-file docker-compose.yml monitor
Creating network monitor_monitor
Creating service monitor_prometheus
Creating service monitor_cadvisor
Creating service monitor_node-exporter
Creating service monitor_grafana
</pre>
Ezzel létrejött a monitor_monitor nevű overlay hálózatunk, ezen felül 4 swarm service, szintén a monitor prefix-el:
<pre>
# docker network ls
NETWORK ID NAME DRIVER SCOPE
...
nar4kl8o8tat monitor_monitor overlay swarm
</pre>
<pre>
# docker stack ls
NAME SERVICES
monitor 4
</pre>
<pre>
# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
fb3poq1m3my0 monitor_cadvisor global 4/4 google/cadvisor:v0.28.5
pidw51mgpc0e monitor_node-exporter global 4/4 basi/node-exporter:v1.15.0
pu4z76b6oijq monitor_grafana replicated 1/1 grafana/grafana:5.2.4 *:3000->3000/tcp
terni4ylw5ca monitor_prometheus replicated 1/1 prom/prometheus:v2.3.2 *:9090->9090/tcp
</pre>