L3 a kontejnery bez overlay: Project Calico prakticky (6) – Docker Swarm

Minule jsme si vyzkoušeli libnetwork driver Calico pro čistý Docker. V dnešním díle si ukážeme, že totéž je možné v Docker Swarm clusteru. O Docker Swarm si můžete přečíst na článcích na cloudsvet.cz. V zásadě tímto způsobem spojíte několik Docker hostitelů do jednoho virtuálního super-hostitele. Mluvíte s ním úplně stejně jako se samostatnými Docker instancemi (tedy použitím Docker API a CLI) a on pro vás automaticky zajišťuje rozmístění kontejnerů na jednotlivé členy Swarm clusteru.

Vyjdeme z konfigurace v předchozím dílu. Máme připraveno etcd a docker nody jsou do něj napojeny (to je nutné pro libnetwork, který řídí sítě přes všechny Docker nody). Dnes k tomu už jen přidáme funkci Swarm, tedy vytvoříme cluster hostitelů.

Nejdřív na obou nodech spustíme kontejner z image swarm, což je kontejnerizovaná aplikace, která zajišťuje vykonávání funkcí v clusteru.

docker-machine ssh node1 docker run -d swarm join --addr=192.168.99.114:2376 etcd://192.168.99.109:2379/swarm
docker-machine ssh node2 docker run -d swarm join --addr=192.168.99.115:2376 etcd://192.168.99.109:2379/swarm

Teď ještě spustíme na jednom z nodů swarm v roli mastera.

docker-machine ssh node1 docker run -d -p 3376:3376 -t -v /var/lib/boot2docker:/certs:ro swarm manage -H 0.0.0.0:3376 --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/server.pem --tlskey=/certs/server-key.pem etcd://192.168.99.109:2379/swarm

Načtěte si parametry spojení, abychom mohli z počítače přistupovat k masteru clusteru.

FOR /f "tokens=*" %i IN ('docker-machine env node1') DO %i
SET DOCKER_HOST=tcp://192.168.99.114:3376

Když teď zadáme příkaz pro výpis kontejnerů, uvidíme kontejnery v celém clusteru, tedy na všech nodech.

docker ps
CONTAINER ID        IMAGE                           COMMAND               CREATED             STATUS              PORTS
            NAMES
6f3323395e75        busybox                         "sh"                  6 hours ago         Up 6 hours
            node2/srv2
1d3e669273bc        busybox                         "sh"                  6 hours ago         Up 6 hours
            node1/srv1
1e9faca851f6        calico/node-libnetwork:latest   "./start.sh"          6 hours ago         Up 6 hours
            node2/calico-libnetwork
e42ad7c995c6        calico/node:latest              "/sbin/start_runit"   6 hours ago         Up 6 hours
            node2/calico-node
7c04962dc1f6        calico/node-libnetwork:latest   "./start.sh"          6 hours ago         Up 6 hours
            node1/calico-libnetwork
528546fc3673        calico/node:latest              "/sbin/start_runit"   6 hours ago         Up 6 hours
            node1/calico-node

Vytvořme si novou Calico síť.

docker network create --driver calico --ipam-driver calico clusternet

Pojďme teď v této síti spustit pětici kontejnerů.

docker run --net clusternet --name test1 -tid busybox
docker run --net clusternet --name test2 -tid busybox
docker run --net clusternet --name test3 -tid busybox
docker run --net clusternet --name test4 -tid busybox
docker run --net clusternet --name test5 -tid busybox

Swarm zajistil jejich rozložení na fyzické nody, což si můžeme snadno ověřit.

docker ps
CONTAINER ID        IMAGE                           COMMAND               CREATED             STATUS              PORTS
            NAMES
10e8846f64ea        busybox                         "sh"                  6 seconds ago       Up 4 seconds
            node2/test5
2b6fbec41fef        busybox                         "sh"                  8 seconds ago       Up 7 seconds
            node1/test4
c4e5d7f21141        busybox                         "sh"                  11 seconds ago      Up 10 seconds
            node2/test3
850acfbd6af6        busybox                         "sh"                  14 seconds ago      Up 13 seconds
            node1/test2
3a1ae438481a        busybox                         "sh"                  17 seconds ago      Up 16 seconds
            node2/test1
6f3323395e75        busybox                         "sh"                  6 hours ago         Up 6 hours
            node2/srv2
1d3e669273bc        busybox                         "sh"                  6 hours ago         Up 6 hours
            node1/srv1
1e9faca851f6        calico/node-libnetwork:latest   "./start.sh"          6 hours ago         Up 6 hours
            node2/calico-libnetwork
e42ad7c995c6        calico/node:latest              "/sbin/start_runit"   6 hours ago         Up 6 hours
            node2/calico-node
7c04962dc1f6        calico/node-libnetwork:latest   "./start.sh"          6 hours ago         Up 6 hours
            node1/calico-libnetwork
528546fc3673        calico/node:latest              "/sbin/start_runit"   6 hours ago         Up 6 hours
            node1/calico-node

Vyzkoušejme, že nám komunikace mezi nody pěkně funguje. Připomínám, že jsme nepoužili overlay – Calico nám umožňuje mít krásnou přímou L3 komunikaci.

> docker exec -ti test1 ping -c 1 test2
PING test2 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: seq=0 ttl=62 time=0.463 ms

--- test2 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.463/0.463/0.463 ms

> docker exec -ti test1 ping -c 1 test3
PING test3 (192.168.0.66): 56 data bytes
64 bytes from 192.168.0.66: seq=0 ttl=63 time=0.071 ms

--- test3 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.071/0.071/0.071 ms

> docker exec -ti test1 ping -c 1 test4
PING test4 (192.168.0.2): 56 data bytes
64 bytes from 192.168.0.2: seq=0 ttl=62 time=0.404 ms

--- test4 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.404/0.404/0.404 ms

> docker exec -ti test1 ping -c 1 test5
PING test5 (192.168.0.67): 56 data bytes
64 bytes from 192.168.0.67: seq=0 ttl=63 time=0.064 ms

--- test5 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.064/0.064/0.064 ms

Dnes jsme si vyzkoušeli Calico v Docker Swarm clusteru. Příště bychom mohli zkusit totéž v Kubernetes, co říkáte?

Series Navigation<< L3 a kontejnery bez overlay: Project Calico prakticky (5) – Docker libnetwork plugin
Similar posts
  • Moderní 10G v datovém centru s novou ... HPE tento týden oznámilo evoluční vývoj portfolia v oblasti data center 1U prvků s 10G/40G/100G technologií, konkrétně novou řadu 5940. Co je nového? Hardwarové vlastnosti Prvky přichází s novou generací 10/40/100 čipů, které umožnily mít nově prvky se 100G uplinky (a to hned šesti) a také přináší podporou nových vlastností jako je směrování VXLAN (předchozí [...]
  • OpenSwitch a Ansible automatizace pra... Posledně jsme si nastavili naší virtuální OpenSwitch leaf-spine topologii a vybudovali jsme BGP L3 fabric. Dnes si ukážeme více z životního cyklu s použitím Ansible – otestování sítě, vrácení odchylek do požadovaného stavu sítě a rolování změn. Jste líní číst? Mrkněte na video: Playbook pro testování sítě Ansible můžete použít i pro testování, že síť [...]
  • OpenSwitch a Ansible automatizace pra... Minule jsme napojili naši virtuální topologii na Ansible a spustili náš první testovací Playbook. Dnes provodeme automatizovanou konfiguraci L3 fabric a otestujeme síť. Příprava konfiguračních podkladů Pro zprovoznění L3 fabric potřebujeme Loopback adresu, IP adresy na jednotlivých spojeních mezi prvky a nastavení BGP (autonomní systémy, peering). V našem Ansible prostředí si vytvoříme jeden YAML soubor, [...]
  • OpenSwitch a Ansible automatizace pra... V minulém díle jsme si rozjeli Lead-Spine OpenSwitch topologii s využitím Dockeru a skript nám vygeneroval také hosts file pro Ansible. Dnes se vyzkoušíme napojení na Ansible 2.1. Příprava Ansible a vašeho VM První co potřebujeme udělat je nainstalovat Ansible minimálně ve verzi 2.1. Postup najdete zde: http://docs.ansible.com/ansible/intro_installation.html Dále vyřešíme nastavení SSH klienta v naší [...]
  • OpenSwitch a Ansible automatizace pra... Na stránkách netsvet.cz i cloudsvet.cz často píšeme o desired state konceptech v ovládání infrastruktury a o automatizaci. V tomto seriálu si ukážeme jak může vypadat moderní práce se sítí postavenou na OpenSwitch projektu, L3 BGP fabricu a Ansible automatizaci. Dnes začneme tím, že si sestavíme virtuální infrastrukturu. Jak získat Leaf-spine topologii několika OpenSwitchů? Pro testování [...]

No Comments Yet

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *