Slodzes līdzsvars ar Docker

Slodzes līdzsvars ar Docker

Palaižot tīmekļa lietojumprogrammu, jūs parasti vēlaties maksimāli izmantot savus resursus, nepārvēršot programmatūru, lai izmantotu vairākpavedienu vai sarežģītas notikumu cilpas. Tomēr Docker nodrošina vienkāršu veidu, kā iekšēji līdzsvarot lietojumprogrammu, lai maksimāli izmantotu servera resursus. Šajā rakstā tiks parādīts, kā izmantot Nginx, lai līdzsvarotu tīmekļa lietojumprogrammu, izmantojot Docker uz CentOS.

1. darbība. Izveidojiet vienkāršu lietojumprogrammu

Lai izveidotu šo vienkāršo lietojumprogrammu, mēs izmantosim rūsu. Pieņemot, ka ir instalēta rūsa, palaidiet cargo new webapp –bin. Veiksmes gadījumā jūs redzēsit direktoriju ar nosaukumu webapp. Iekšpusē webappjūs redzēsit failu ar nosaukumu Cargo.toml. Pievienojiet tam šādas rindas:

[dependencies.iron]
version = "*"

Pēc tam src/main.rsfailā noņemiet visu un aizpildiet to ar šādu informāciju:

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();
}

Piezīme: nemainiet IP lietojumprogrammā. Tas ir konfigurēts tā, lai Docker varētu klausīties jūsu lietojumprogrammu.

Kad esat pabeidzis, apkopojiet lietojumprogrammu, izpildot cargo build –release. Atkarībā no jūsu servera tas var ilgt dažas minūtes. Ja kļūdu nav, pārbaudiet lietojumprogrammu, veicot šādas darbības:

  • Skrien target/release/webapp.
  • http://0.0.0.0:3000/Pārlūkprogrammā dodieties uz . Aizstāt 0.0.0.0ar sava servera IP adresi.

Ja viss darbojās pareizi, lapā redzēsiet "Sveiks Vultr :)".

2. darbība. Izveidojiet Docker konteinerus

Izveidojiet Dockerfileun aizpildiet to ar šādu:

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

Saglabājiet failu. Pēc tam izveidojiet failu ar nosaukumu deploy.shun aizpildiet to ar šādu:

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

Palaižot šo skriptu, tas izveidos attēlu un izvietos konteineru, pamatojoties uz jūsu iestatīto summu (noklusējuma vērtība ir 5). Ja konteiners pastāv, tas iznīcinās un noņems to no reģistra, pirms tas tiks atkārtoti izvietots.

3. darbība: konfigurējiet Nginx

Tagad izveidojiet Nginx konfigurācijas failu un aizpildiet to ar šo:

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;
    }
}

Aizstāt 0.0.0.0ar sava servera IP adresi.

Restartējiet Nginx, veicot systemctl restart nginx. Atrisiniet visas kļūdas, pēc tam pārejiet pie nākamās darbības.

4. darbība. Izvietojiet lietojumprogrammu

Izvietojiet lietojumprogrammu, palaižot bash ./deploy.sh.

Jūs varat pārbaudīt savas lietojumprogrammas statusu, izmantojotdocker ps — tiks izveidoti 5 attēli, kas sākas ar webapp. Tagad http://0.0.0.0:3000/pārlūkprogrammā dodieties uz vietni, un jūs atkal redzēsit ziņojumu "Sveiki, Vultr :)".

Tātad, kāda ir atšķirība tieši?

Ja veicat slodzes līdzsvara konfigurācijas etalonpārbaudi, jūs pamanīsit, ka tiek izmantots vairāk jūsu servera resursu, un tas ir tas, ko jūs vēlaties, it īpaši, ja jūsu lietojumprogramma ir veidota tādās valodās kā Node, kur tā parasti būtu viena pavediena. Ja jums kādreiz ir jājaunina lietojumprogramma, varat to izdarīt un atkārtoti palaist lietojumprogrammu, deploy.shlai atjaunotu attēlu un izvietotu konteinerus.


Lūk, kā pārbaudīt Hyper-V konteinerus sistēmā Windows 10 Insider

Lūk, kā pārbaudīt Hyper-V konteinerus sistēmā Windows 10 Insider

Microsoft jaunā emuāra ziņojumā ir paskaidrojusi, kā Windows Insiders var pārbaudīt Hyper-V konteinerus operētājsistēmā Windows 10 — jauns virtualizācijas risinājums, kas ļauj lietojumprogrammām darboties, neietekmējot pārējo operētājsistēmu.

Kā instalēt Harbor operētājsistēmā CentOS 7

Kā instalēt Harbor operētājsistēmā CentOS 7

Harbour ir atvērtā pirmkoda uzņēmuma klases reģistra serveris, kas glabā un izplata Docker attēlus. Harbour paplašina atvērtā koda Docker Distribution b

Instalējiet Rancher OS, izmantojot iPXE

Instalējiet Rancher OS, izmantojot iPXE

Rancher OS ir ļoti viegla Linux izplatīšana, kas veidota, izmantojot Docker. Pati OS sver aptuveni 20 MB. Šī apmācība palīdzēs jums sākt darbu

Operētājsistēmā CoreOS iestatiet savu Docker reģistru

Operētājsistēmā CoreOS iestatiet savu Docker reģistru

Mēs visi zinām un mīlam Docker — platformu lietojumprogrammu konteineru izveidei, pārvaldībai un izplatīšanai vairākās iekārtās. Docker Inc sniedz pakalpojumu t

Docker-compose instalēšana operētājsistēmā CoreOS

Docker-compose instalēšana operētājsistēmā CoreOS

Šajā rakstā ir paskaidrots, kā instalēt docker-compose operētājsistēmā CoreOS. Operētājsistēmā CoreOS mape /usr/ ir nemainīga, tāpēc standarta /usr/local/bin ceļš nav pieejams.

Instalējiet Rancher operētājsistēmā CentOS 7

Instalējiet Rancher operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Ievads Rancher ir atvērtā pirmkoda platforma konteineru darbināšanai un privāta konteineru pakalpojuma izveidei. Rancher ir bāze

Instalējiet Docker CE uz Ubuntu 18.04

Instalējiet Docker CE uz Ubuntu 18.04

Ievads Docker ir lietojumprogramma, kas ļauj izvietot programmas, kas tiek darbinātas kā konteineri. Tas tika uzrakstīts populārajā Go programmēšanas valodā

Izveidojiet Docker Swarm operētājsistēmā Alpine Linux 3.9.0

Izveidojiet Docker Swarm operētājsistēmā Alpine Linux 3.9.0

Ievads Šajā rokasgrāmatā ir parādīts, kā izveidot un konfigurēt Docker spietu, izmantojot vairākus Alpine Linux 3.9.0 serverus un Portainer. Lūdzu, ņemiet vērā, ka

Izvietojiet PHP lietojumprogrammu, izmantojot Docker-compose

Izvietojiet PHP lietojumprogrammu, izmantojot Docker-compose

PHP lietojumprogrammas parasti veido tīmekļa serveris, relāciju datu bāzes sistēma un pats valodas tulks. Šajā apmācībā mēs izmantosim iespēju

Slodzes līdzsvars ar Docker

Slodzes līdzsvars ar Docker

Palaižot tīmekļa lietojumprogrammu, jūs parasti vēlaties maksimāli izmantot savus resursus, nepārvēršot programmatūru, lai izmantotu vairākpavedienu o

Izvietojiet Node.js lietojumprogrammu, izmantojot Docker

Izvietojiet Node.js lietojumprogrammu, izmantojot Docker

Šajā rakstā tiks parādīts, kā Docker konteinerā izvietot savu Node lietojumprogrammu. Piezīme. Šajā apmācībā tiek pieņemts, ka esat instalējis un lasījis Docker

Docker CE instalēšana operētājsistēmā CentOS 7

Docker CE instalēšana operētājsistēmā CentOS 7

Docker konteinera tehnoloģija ļauj palaist lietojumprogrammas noteiktā un izolētā vidē. Docker Community Edition (CE) ir jaunais nosaukums fre

Izvietojiet Kubernetes ar Kubeadm operētājsistēmā CentOS 7

Izvietojiet Kubernetes ar Kubeadm operētājsistēmā CentOS 7

Pārskats Šis raksts ir paredzēts, lai palīdzētu jums ātri izveidot un palaist Kubernetes kopu, izmantojot kubeadm. Šajā rokasgrāmatā tiks izvietoti divi serveri

Docker instalēšana operētājsistēmā CentOS 7

Docker instalēšana operētājsistēmā CentOS 7

Vai izmantojat citu sistēmu? Docker ir lietojumprogramma, kas ļauj izvietot programmatūru virtuālos konteineros. Tas bija rakstīts programmā Go

Docker CE instalēšana operētājsistēmā Debian 9

Docker CE instalēšana operētājsistēmā Debian 9

Vai izmantojat citu sistēmu? Ievads Docker ir lietojumprogramma, kas ļauj izvietot programmatūru virtuālos konteineros. Tas bija rakstīts G

Sāciet darbu ar SQL Server 2017 (MS-SQL) sistēmā CentOS 7 ar Docker

Sāciet darbu ar SQL Server 2017 (MS-SQL) sistēmā CentOS 7 ar Docker

Priekšnosacījumi Docker engine 1.8+. Vismaz 4 GB diska vietas. Vismaz 4 GB RAM. 1. darbība. Docker instalēšana Lai instalētu SQL-Server, Docker mus

Sticky sesija ar Docker Swarm (CE) uz Debian 9

Sticky sesija ar Docker Swarm (CE) uz Debian 9

Vai izmantojat citu sistēmu? Ievads Docker Swarm pārvērš jūsu individuālos serverus par datoru kopu; mērogošanas atvieglošana, augsta pieejamība un

Divi Docker grafiskās pārvaldības rīki: DockerUI un Shipyard

Divi Docker grafiskās pārvaldības rīki: DockerUI un Shipyard

Izmantojot lietojumprogrammu Vultr Docker, varat viegli izvietot Docker savā Vultr servera instancē. Tikmēr jūs varat atvieglot Docker pārvaldības uzdevumu

Instalējiet Rancher Server operētājsistēmā RancherOS

Instalējiet Rancher Server operētājsistēmā RancherOS

Pārskats RancherOS ir neticami viegla operētājsistēma (tikai aptuveni 60 MB), kas izmanto sistēmas Docker dēmonu kā PID 0 sistēmas pakalpojumu darbināšanai.

Darba sākšana ar Kubernetes operētājsistēmā CentOS 7

Darba sākšana ar Kubernetes operētājsistēmā CentOS 7

Kubernetes ir Google izstrādāta atvērtā pirmkoda platforma konteineru lietojumprogrammu pārvaldībai serveru klasterī. Tas balstās uz desmitgadi un

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk