Docker Cluster — Rancher

Egy ideje már nem volt post. Kicsit elfoglalt voltam az utóbbi időben. De most röviden megpróbálom bemutatni a nem túl rég talált Docker Cluster alkalmazást.
Ez pedig a Rancher. Igaz, jelenleg még jelenleg beta állapotban van, de már így is használhatóak az alap funkciók. (Itt elsősorban a cluster illetve a multi-host network megoldására gondolok)

Megtetszett, mert nagyon gyorsan és egyszerűen lehet vele Docker Cluster-t létrehozni. Web-es felületen a manuálisan (CLI) létrehozott container-eket is lehet kezelni. Persze a weben meg kényelmesen össze lehet kattintgatni a szükséges containereket.
Egyszerűbb ezt használni, mint egy Docker Swarm-ot létrehozni, az biztos :)

Minden docker host-on (Rancher node-on) futnia kell a docker-nek (daemon).
Fedora-n például így lehet ügyesen elindítani, ha nincs jobb megoldás:

docker daemon > /opt/docker/docker.log 2>&1 &

A Rancher-nek legalább 1.9.1-es verziójú docker-re van szüksége, de inkább újabbra.
A legfrisebbet innen érdemes letölteni: https://github.com/docker/docker/releases

Ha már fut a docker vagy a fentivel el lett indítva a docker daemon, akkor jöhet a Rancher “server” elindítása.

docker pull rancher/server
docker run -d --name=rancher-server --restart=always -p 5880:8080 rancher/server

A fentiekből látszik, hogy a szerver a 8080-as porton figyel. Ezt én a docker host 5880 -as portjára bind-eltem.
Így a host IP-jét és a 5880-as portot kell a böngészőbe beírni.
Pl: http://192.168.56.101:5580

No para, a “docker run” parancs kiadása után akár 5 perc is eltelhet, mire a Rancher web felülete elérhető lesz.

Ha elérhető, utána hozzá lehet adni a host-okat.

[caption id=”attachment_1089" align=”aligncenter” width=”1253"]

Add Host

Add Host[/caption]

A host hozzáadásához az itt kiírt parancsot kell beírni a Rancher node-nak szánt host-on.
Azonban, ha több NIC-je van a docker host-nak, akkor érdemes extra paramétereket hozzáírni a parancshoz, egyéb esetben nem működik minden megfelelően.

docker run -d --privileged --name=rancher-agent -e CATTLE_AGENT_IP=192.168.56.101 -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v0.10.0 http://192.168.56.101:5880/v1/scripts/1944084548F80A6D7505:1458154800000:oUUtl128av2jJzUX1l7XTBqV8

Azaz a “ — name=rancher-agent -e CATTLE_AGENT_IP=192.168.56.101” rész az amit érdemes beírni.
A “ — name” opcionális, ez csak a rend kedvéért van, hogy egyértelmű legyen, hogy a container a rancher-hez tartozik. :)
A “-e CATTLE_AGENT_IP” már fontosabb. Ez adja meg a rancher “agent”-nek a Rancher server IP címét.

Ha sikeresen elindult a “rancher-agent” container, akkor néhány másodperc múlva az új host megjelenik a Hosts listában.

[caption id=”attachment_1091" align=”aligncenter” width=”1003"]

Hosts

Hosts[/caption]

Természetesen itt több is látszódna, csak most lusta voltam még egy host-ot felvenni a virtualbox-omban. :)

A container-ek teljes listája is megjeleníthető. Ebben a listában az összes container látszik ami a host-okon fut.

[caption id=”attachment_1092" align=”aligncenter” width=”1242"]

Containers

Containers[/caption]

Multi-host network

Ami érdekesebb még az a Rancher node-ok (Docker host-ok) közötti hálózat.
A weben létrehozott container-ek alapban “managed” típusú hálózattal jönnek létre. Így alapban megoldott, hogy a host-okon futó docker container-ek elérhessék egymást.

Amennyiben nem a web interface-en API-val, hanem szimpla egyszerű parancsokkal kerülne létrehozásra a container, úgy az alábbi módon lehet a Rancher-féle network-öt használni.

docker run -tid --name=ubitest1 -l io.rancher.container.network=true ubuntu /bin/bash

Azaz a “-l io.rancher.container.network=true” opciót kell használni.

[root@feddock ~]# docker exec -ti ubitest1 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
23: eth0@if24: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/16 scope global eth0
valid_lft forever preferred_lft forever
inet 10.42.209.39/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:3/64 scope link
valid_lft forever preferred_lft forever

Látszik, hogy a manuálisan indított container kapott egy “10.42.209.39”-es IP címet, amit a rancher “Network Agent” nevű container-je kezel minden host-on.

Nagyvonalakban ennyit a Rancher-ről. Remélem mihamarabb stabil változatban is elérhető lesz, mert az eddigiek alapján nekem nagyon bejön.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.