Changes

Docker Swarm Mode

1,122 bytes added, 21:35, 18 July 2018
Overlay hálózatok
===Átekintés===
http://blog.nigelpoulton.com/demystifying-docker-overlay-networking/<br>
A beépített ingress overlay hálózaton felül mi is létrehozhatunk kézzel új overlay hálózatokat. Az overlay hálózatot össze kell rendelni swarm service-ekkel. Ha egy swarm service-t egy overlay hálózathoz rendelünk, akkor az adott service összes konténere (akkor is ha távoli node-okon vannak) képes lesz egymással kommunikálni. Az overlay hálózatot a manager csak azokra a node-okra fogja kiterjeszteni, amik a megadott szolgáltatás konténereit futtatják. Egészen addig csak a manager-en létezik.
* A beépített ingress overlay hálózaton felül mi is létrehozhatunk kézzel új overlay hálózatokat. Az overlay hálózatot össze kell rendelni swarm service-ekkel. * Ha egy swarm service-t egy overlay hálózathoz rendelünk, akkor az adott service összes konténere (akkor is ha távoli node-okon vannak) képes lesz egymással kommunikálni. * Az overlay hálózatot a manager csak azokra a node-okra fogja kiterjeszteni, amik a megadott szolgáltatás konténereit futtatják. Egészen addig csak a manager-en létezik. * Az overlay hálózat csak a node-on futó konténerből fog látszani. A konténerben létre fog jönne egy interfész, ami az overlay hálózatra csatlakozik, itt fog kiosztani egy IP címet az overlay network a konténernek. Tehát fontos, hogy a node gépen nem jön létre olyan interfész, ami az overlay hálózatra csatlakozok. A node gépen csak egy bridge jön létre. * A docker a VXLAN tunel technológiát használja az overlay hálózatok létrehozására. Egy Layer 3 hálózaton hoz létre egy virtuális Layer 2 hálózatot. Ez
:[[File:ClipCapIt-180718-225331.PNG|500px]]
6hig77pse2xt over-test overlay swarm <<<
</pre>
:[[File:ClipCapIt-180718-232255.PNG]]
Viszont a worker1-en nem látszik. (Aki nem hiszi nézze meg)
5vxd6u2zgv1d test.2 ubuntu:latest mg0 Running Running 54 seconds ago
</pre>
:[[File:ClipCapIt-180718-232113.PNG]]
Láthatjuk, hogy a worker2-on fut az egyik példány.
"IP": "192.168.42.41"
</pre>
:[[File:ClipCapIt-180718-232653.PNG]]Láthatjuk, hogy a '''over-test''' overlay hálózatunk alhálózata 192két végpont csatlakozik, ezen felül láthatjuk hogy az overlay hálózatunk IP tartománya a 10.1680.420.0/24, és IP cím van kiosztva. Az egyik peer a '''worker2'''-nek , a másik az '''mg0'''-nek. (De ez nem innen látszik :) )
Nézzük megKi kell deríteni, melyik hogy mi a '''worker2''' -ön futó ubuntu konténer azon interfészének az IP címe, ami az '''over-test''' overlay hálózatra csatlakozik. Ehhez elsőként be kell ssh-zni a worker2 node-ra, majd az ott futó ubuntu konténerhez kell csatlakozni interaktív módon, hogy listázni tudjuk az interfészeit:
<pre>
# docker-machine ssh worker2 docker@worker2:~$ docker exec -it 23 bash root@239f2a1d9bc1:/# apt-get update && apt-get install net-tools root@239f2a1d9bc1:/# ifconfig | grep 19210.1680.0.42 inet addr:19210.1680.420.136 10 Bcast:192netmask 255.168255.42255.255 0 Mask:255broadcast 10.0.2550.255.0
</pre>
Tehát a worker2 node-on futó ubuntu konténer overlay címe: 19210.1680.420.13610
Pingeljük meg az '''mg0'''-en futó ubuntu konténerből a worker2-tn futó konténert. Ha megnézzük a mg0-en futó konténereket, láthatjuk a '''test ''' szolgáltatáshoz tartozó ubuntu konténert:
<pre>
# docker-machine ssh mg0 docker ps
426f0a0bb381 ubuntu:latest "sleep infinity" 35 minutes ago
</pre>
Ebből az ubuntu konténerből fogjuk pingelni a test szolgáltatás másik konténerét futtató node-ot konténert, ami a worker2 gépen fut (ami elvileg egy fizikailag teljesen máshol lévő gép is lehetne)
Elsőként ssh-val be kell lépni az '''mg0'''-ra. Majd az ubuntu konténeren futtassuk interaktív módon a bash-t. Ez után fel kell telepíteni a ping parancsot, majd már futtathatjuk is a ping-et.
root@426f0a0bb381:/# apt-get update && apt-get install -y iputils-ping
root@426f0a0bb381:/# ping 19210.1680.420.13610 PING 19210.1680.420.136 10 (19210.1680.420.13610) 56(84) bytes of data.64 bytes from 19210.1680.420.13610: icmp_seq=1 ttl=63 64 time=01.632 07 ms64 bytes from 19210.1680.420.13610: icmp_seq=2 ttl=63 64 time=1.43 34 ms
</pre>
Láthatjuk, hogy a '''mg0'''-án lévő konténer képes kommunikálni a '''worker2 node'''-aln lévő másik '''test''' konténerrel, pedig külön virtuális gépen vannakmivel mind a ketten ugyan ahhoz az overlay hálózathoz (is) csatlakoznak.