A Harbor telepítése CentOS 7 rendszeren
A Harbor egy nyílt forráskódú, vállalati szintű rendszerleíró adatbázis-kiszolgáló, amely Docker-képfájlokat tárol és terjeszt. A Harbor kiterjeszti a nyílt forráskódú Docker Distribution b
A Docker Swarm az Ön egyéni szervereit számítógépek fürtjévé alakítja; a méretezés megkönnyítése, a magas rendelkezésre állás és a terheléselosztás. A Swarm terheléselosztó egy körkörös terheléselosztási stratégiát valósít meg, és ez megzavarhatja a (örökölt) állapotalapú alkalmazások megfelelő működését, amelyek valamilyen ragadós munkamenetet igényelnek, hogy lehetővé tegyék a magas rendelkezésre állású beállítást több példányban. A Docker Enterprise Edition támogatja a Layer-7 ragadós munkamenetet, de ebben az útmutatóban a Docker ingyenes (CE) verziójára fogunk összpontosítani. A ragadós munkamenetek megvalósításához a Traefiket fogjuk használni.
sudo
jogosultságokkal (nem kötelező, de erősen ajánlott, hogy ne használja a root felhasználót)Ebben az oktatóanyagban két Vultr-példányt fogunk használni privát IP-címekkel 192.168.0.100
és 192.168.0.101
. Mindkettő Docker Swarm menedzser csomópont (ami nem ideális termeléshez, de elegendő ehhez az oktatóanyaghoz).
Ez az oktatóanyag a jwilder/whoami
docker-képet használja bemutatóalkalmazásként. Ez az egyszerű tároló a válaszoló tároló nevével válaszol egy REST-hívásra, így nagyon könnyen ellenőrizhető, hogy a ragadós munkamenetek működnek-e. Ezt a képet nyilvánvalóan csak bemutató célokra használják, és le kell cserélni a saját alkalmazás képével.
A whoami-szolgáltatás a következőképpen van konfigurálva:
sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Ha ezt követően curl
a whoami REST végpontot a -n http://192.168.0.100/
, akkor láthatjuk a Docker Swarm körkörös terheléselosztását működés közben:
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
Hiába teszteli ezt a modern böngészőkkel, mint például a Chrome vagy a Firefox, mert ezeket úgy tervezték, hogy életben tartsák a kapcsolatokat, és a Docker Swarm terheléselosztója csak minden új csatlakozáskor vált át a másik tárolóra . Ha ezt böngészővel szeretné tesztelni, legalább 30 másodpercet kell várnia, amíg a kapcsolat bezárul, mielőtt újra frissítené.
A Traefik natívan támogatja a Docker Swarm-ot, képes észlelni és regisztrálni vagy törölni a konténereket menet közben, és kommunikál az alkalmazással a belső overlay hálózaton keresztül. A Traefiknek szüksége van néhány információra az alkalmazásáról, mielőtt elkezdené kezelni az arra vonatkozó kéréseket. Ezeket az információkat úgy kapja meg a Traefik, hogy címkéket ad hozzá a Swarm szolgáltatásához:
sudo docker service update --label-add "traefik.docker.network=whoaminet" --label-add "traefik.port=8000" --label-add "traefik.frontend.rule=PathPrefix:/" --label-add "traefik.backend.loadbalancer.stickiness=true" whoami-service
Az alábbi lista leírja, mit jelentenek az egyes címkék:
traefik.docker.network
: A Docker overlay hálózat, amelyen keresztül a Traefik kommunikál az Ön szolgáltatásával traefik.port
: A port, amelyen a szolgáltatás figyel (ez a belső port, nem a közzétett port)traefik.frontend.rule
: PathPrefix:/
a " /
" kontextusgyökeret ehhez a szolgáltatáshoz kötitraefik.backend.loadbalancer.stickiness
: Engedélyezi a ragadós munkameneteket ehhez a szolgáltatáshozMost, hogy a whoami-service
szükséges címkékkel konfigurálva van, hozzáadhatjuk a Traefik szolgáltatást a rajhoz:
sudo docker service create --name traefik -p8080:80 -p9090:8080 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mode=global --constraint 'node.role == manager' --network whoaminet traefik --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
Ez a parancs elég sok dolgot hajt végre egyszerre, amint az a következő listán látható:
--name traefik
: Új Docker szolgáltatásunk neve Traefik -p8080:80
: Mi tesz közzé Traefik kikötői 80
kikötőbe 8080
, mert port 80
már használatban van a mi whoami szolgáltatást-p9090:8080
: Kiadjuk a Traefik saját webes felületét a portra 9090
--mount ...
: A Docker Socketet a konténerbe szereljük, hogy a Traefik hozzáférjen a gazdagép Docker futási környezetéhez --global
: Traefik konténereket szeretnénk minden menedzser csomóponton a magas rendelkezésre állás miatt --constraint 'node.role == manager'
: Csak azt akarjuk, hogy a Traefik a menedzser csomópontokon fusson, mert a dolgozó csomópontok nem tudják biztosítani a Traefik számára a szükséges információkat. Például docker service ls
egy dolgozó csomóponton nem működik, így a Traefik még azt sem tudná felfedezni, hogy milyen szolgáltatások futnak.--network whoaminet
: Csatlakoztassa a Traefiket ugyanarra a hálózatra, mint a miénk whoami-service
, különben nem tud csatlakozni. Korábban azt mondtuk a Traefiknek, hogy ezen a hálózaton keresztül csatlakozzon szolgáltatásunkhoz a traefik.docker.network
címkéveltraefik
: Mondja meg a dockernek, hogy a legújabb Traefik docker-képet használja ehhez a szolgáltatáshoz--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
: A parancssori argumentumok közvetlenül a Traefiknek átadva, hogy Docker raj módban futhasson. DEBUG
itt nem kötelező, de érdekes a beállítás során és ehhez az oktatóanyaghozNincs más hátra, mint a szükséges portok megnyitása a Debian tűzfalban:
sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 9090 -j ACCEPT
Amint a Traefik beindul, a naplókon látható, hogy Traefik felfedezi a két whoami
konténert. Kiadja a cookie nevét is, amelyet a ragadós munkamenet kezelésére fog használni:
time="2018-11-25T13:17:30Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-whoami-service\":{\"servers\":{\"server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05\":{\"url\":\"http://10.0.0.5:8000\",\"weight\":1},\"server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6\":{\"url\":\"http://10.0.0.4:8000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\",\"stickiness\":{}}}},\"frontends\":{\"frontend-PathPrefix-0\":{\"entryPoints\":[\"http\"],\"backend\":\"backend-whoami-service\",\"routes\":{\"route-frontend-PathPrefix-0\":{\"rule\":\"PathPrefix:/\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
time="2018-11-25T13:17:30Z" level=debug msg="Wiring frontend frontend-PathPrefix-0 to entryPoint http"
time="2018-11-25T13:17:30Z" level=debug msg="Creating backend backend-whoami-service"
time="2018-11-25T13:17:30Z" level=debug msg="Adding TLSClientHeaders middleware for frontend frontend-PathPrefix-0"
time="2018-11-25T13:17:30Z" level=debug msg="Creating load-balancer wrr"
time="2018-11-25T13:17:30Z" level=debug msg="Sticky session with cookie _a49bc"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05 at http://10.0.0.5:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6 at http://10.0.0.4:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating route route-frontend-PathPrefix-0 PathPrefix:/"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :80"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :8080"
Ha ráhajolunk, http://192.168.0.100:8080
láthatjuk, hogy egy új cookie _a49bc
lett beállítva:
curl -v http://192.168.0.100:8080
* About to connect() to 192.168.0.100 port 8080 (#0)
* Trying 192.168.0.100...
* Connected to 192.168.0.100 (192.168.0.100) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.0.100:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< Date: Sun, 25 Nov 2018 13:18:40 GMT
< Set-Cookie: _a49bc=http://10.0.0.5:8000; Path=/
<
I'm a6a8c9294fc3
* Connection #0 to host 192.168.0.100 left intact
Ha a későbbi hívások során ezt a cookie-t elküldjük a Traefiknek, akkor mindig ugyanabba a tárolóba továbbítjuk:
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
A süti nem tartalmaz mást, mint annak a tárolónak a belső IP-címét, amelyre a Traefik kérésre küldjön. Ha a cookie értékét a következőre módosítja http://10.0.0.4:8000
, akkor a kérés ténylegesen a másik tárolóba kerül továbbításra. Ha a cookie-t soha nem küldik el újra a Traefiknek, akkor a ragadós munkamenet nem fog működni, és a kérések egyensúlyban lesznek az alkalmazás és a Traefik tárolók között.
Csak ennyire van szükség a Layer 7 Sticky Sessions beállításához a Docker CE-ben a Debian 9 rendszeren.
A Harbor egy nyílt forráskódú, vállalati szintű rendszerleíró adatbázis-kiszolgáló, amely Docker-képfájlokat tárol és terjeszt. A Harbor kiterjeszti a nyílt forráskódú Docker Distribution b
Mindannyian ismerjük és szeretjük a Dockert, az alkalmazástárolók létrehozására, kezelésére és több gépen való terjesztésére szolgáló platformot. A Docker Inc. szolgáltatást nyújt t
Ez a cikk a docker-compose telepítését ismerteti CoreOS rendszeren. A CoreOS rendszerben az /usr/ mappa megváltoztathatatlan, így a szabványos /usr/local/bin elérési út nem érhető el
Más rendszert használ? Bevezetés A Rancher egy nyílt forráskódú platform konténerek futtatására és privát konténerszolgáltatás kiépítésére. Rancher alap
A PHP-alkalmazások általában egy webszerverből, egy relációs adatbázis-rendszerből és magából a nyelvi értelmezőből állnak. Ebben az oktatóanyagban hasznosak leszünk
Webalkalmazás futtatásakor általában a legtöbbet szeretné kihozni az erőforrásaiból anélkül, hogy a szoftverét többszálú o-ra kell konvertálnia.
Ez a cikk bemutatja, hogyan telepítheti a Node alkalmazást egy Docker-tárolóban. Megjegyzés: Ez az oktatóanyag feltételezi, hogy telepítette és olvasta a Dockert
Áttekintés Ennek a cikknek az a célja, hogy segítsen egy Kubernetes-fürtöt a kubeadm segítségével pillanatok alatt üzembe helyezni. Ez az útmutató két kiszolgáló üzembe helyezését tartalmazza
Más rendszert használ? Bevezetés A Docker egy olyan alkalmazás, amely lehetővé teszi a szoftverek virtuális konténereken belüli telepítését. A G-ben volt írva
Előfeltételek Docker engine 1.8+. Minimum 4 GB lemezterület. Minimum 4 GB RAM. 1. lépés: A Docker telepítése Az SQL-Server telepítéséhez a Docker mus
Más rendszert használ? Bevezetés A Docker Swarm az egyes szervereket számítógépek fürtjévé alakítja; méretezés megkönnyítése, magas rendelkezésre állás an
A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.
Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.
Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.
Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.
Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…
Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.
Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.
Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.
Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.
Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket