Terhelésegyensúly a Dockerrel

Terhelésegyensúly a Dockerrel

Webalkalmazás futtatásakor általában a legtöbbet szeretné kihozni erőforrásaiból anélkül, hogy a szoftvert többszálú vagy összetett eseményhurkok használatára kellene átalakítania. A Docker azonban egyszerű módot biztosít az alkalmazás belső terhelési egyensúlyára, hogy a legtöbbet hozza ki a szerver erőforrásaiból. Ez a cikk bemutatja, hogyan használhatja az Nginxet webalkalmazásának terheléselosztásához a CentOS rendszeren futó Docker használatával.

1. lépés: Hozzon létre egy egyszerű alkalmazást

Rozsdát fogunk használni ennek az egyszerű alkalmazásnak az elkészítéséhez. Feltéve, hogy a rozsda telepítve van, futtassa a cargo new webapp –bin. Siker esetén megjelenik egy könyvtár, melynek neve webapp. A belsejében webappegy fájl fog megjelenni Cargo.toml. Adja hozzá a következő sorokat:

[dependencies.iron]
version = "*"

Ezután src/main.rstávolítson el mindent a fájlból, és töltse fel a következőkkel:

extern crate iron;

use iron::prelude::*;
use iron::status;

fn main() {
    Iron::new(|_: &mut Request| {
        Ok(Response::with((status::Ok, "Hello Vultr :)")))
    }).http("0.0.0.0:3000").unwrap();
}

Megjegyzés: Ne változtassa meg az IP-címet az alkalmazáson belül. Ez úgy van konfigurálva, hogy a Docker meghallgathassa az alkalmazást.

Ha végzett, fordítsa le az alkalmazást a parancs végrehajtásával cargo build –release. A szervertől függően ez eltarthat néhány percig. Ha nincs hiba, tesztelje az alkalmazást az alábbi lépésekkel:

  • Fuss target/release/webapp.
  • http://0.0.0.0:3000/Böngészőjében navigáljon ide . Cserélje 0.0.0.0ki a kiszolgáló IP-címét.

Ha minden megfelelően működött, az oldalon megjelenik a "Hello Vultr :)" felirat.

2. lépés: Hozzon létre Docker-tárolókat

Hozzon létre egy, Dockerfileés töltse ki a következőkkel:

FROM centos:latest
MAINTAINER User <user@localhost>
RUN yum update -y
COPY ./webapp/target/release/webapp /opt/
EXPOSE 3000
WORKDIR /opt
CMD ./webapp

Mentse el a fájlt. Ezután hozzon létre egy nevű fájlt, deploy.shés töltse fel a következőkkel:

DEFAULT_PORT=45710
APP_PORT=3000
DEPLOY=5
NAME="webapp"
docker build -t webapp:example . 

for ((i=0; i<DEPLOY; i++)); do
        docker kill $NAME$i ; docker rm $NAME$i
        docker run --name $NAME$i -p 127.0.0.1:$(((i * 1000) + DEFAULT_PORT)):$APP_PORT -d webapp:example
done

A szkript futtatásakor a beállított mennyiség (alapértelmezett 5) alapján összeállítja a lemezképet és telepíti a tárolót. Ha a tároló létezik, megsemmisíti és eltávolítja a rendszerleíró adatbázisból, mielőtt újra telepítené.

3. lépés: Az Nginx konfigurálása

Most hozzon létre egy Nginx konfigurációs fájlt, és töltse fel a következőkkel:

upstream application {
    server localhost:45710;
    server localhost:46710;
    server localhost:47710;
    server localhost:48710;
    server localhost:49710;
}

server {
    listen 0.0.0.0:80;    
    location / {
    expires 1w;
        proxy_pass http://application;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Cserélje 0.0.0.0ki a kiszolgáló IP-címét.

Restart nginx csinál systemctl restart nginx. Javítsa ki az esetleges hibákat, majd folytassa a következő lépéssel.

4. lépés: Telepítse az alkalmazást

Telepítse az alkalmazást a futtatásával bash ./deploy.sh.

Alkalmazása állapotát a gombbal ellenőrizheti docker ps– 5 olyan kép jön létre, amelyek a következővel kezdődnek: webapp. Most navigáljon ide http://0.0.0.0:3000/a böngészőben, és ismét megjelenik a „Hello, Vultr :)” üzenet.

Szóval, mi a különbség ez pontosan?

Ha összehasonlító tesztet futtat a terheléselosztó konfigurációjával szemben, észreveheti, hogy a szerver erőforrásaiból több kerül felhasználásra, és ez az, amire szüksége van, különösen, ha az alkalmazás olyan nyelveken épül fel, mint a Node, ahol általában egyszálas lenne. Ha valaha frissítenie kell az alkalmazást, megteheti, és újrafuttathatja deploy.sha lemezkép újraépítéséhez és a tárolók üzembe helyezéséhez.


A Harbor telepítése CentOS 7 rendszeren

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

CoreOS rendszeren állítsa be saját Docker-nyilvántartását

CoreOS rendszeren állítsa be saját Docker-nyilvántartását

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

A docker-compose telepítése CoreOS rendszerre

A docker-compose telepítése CoreOS rendszerre

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

Telepítse a Ranchert a CentOS 7 rendszeren

Telepítse a Ranchert a CentOS 7 rendszeren

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

PHP-alkalmazás üzembe helyezése a Docker-compose használatával

PHP-alkalmazás üzembe helyezése a Docker-compose használatával

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

Terhelésegyensúly a Dockerrel

Terhelésegyensúly a Dockerrel

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.

Node.js alkalmazás üzembe helyezése a Docker használatával

Node.js alkalmazás üzembe helyezése a Docker használatával

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

Telepítse a Kuberneteset a Kubeadm segítségével a CentOS 7 rendszeren

Telepítse a Kuberneteset a Kubeadm segítségével a CentOS 7 rendszeren

Á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

A Docker CE telepítése Debian 9 rendszerre

A Docker CE telepítése Debian 9 rendszerre

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

Kezdje el az SQL Server 2017 (MS-SQL) használatát a CentOS 7 with Docker rendszeren

Kezdje el az SQL Server 2017 (MS-SQL) használatát a CentOS 7 with Docker rendszeren

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

Sticky Session with Docker Swarm (CE) Debian 9-en

Sticky Session with Docker Swarm (CE) Debian 9-en

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 gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

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.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ö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.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

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.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

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.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

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…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

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 adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

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.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

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.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

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é.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

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