Kuormituksen tasapaino Dockerin kanssa

Kuormituksen tasapaino Dockerin kanssa

Kun käytät verkkosovellusta, haluat yleensä saada kaiken irti resursseistasi ilman, että sinun tarvitsee muuntaa ohjelmistoasi monisäikeisten tai monimutkaisten tapahtumasilmukoiden käyttöön. Docker tarjoaa kuitenkin yksinkertaisen tavan tasapainottaa sovelluksesi sisäisesti, jotta saat parhaan hyödyn palvelinresursseista. Tämä artikkeli näyttää, kuinka Nginxiä käytetään verkkosovelluksesi kuormituksen tasapainottamiseen käyttämällä Dockeria CentOS:ssä.

Vaihe 1: Luo yksinkertainen sovellus

Käytämme ruostetta rakentaaksemme tämän yksinkertaisen sovelluksen. Olettaen, että ruoste on asennettu, suorita cargo new webapp –bin. Onnistuessasi näet hakemiston nimeltä webapp. Sisällä webapp, näet tiedoston nimeltä Cargo.toml. Liitä siihen seuraavat rivit:

[dependencies.iron]
version = "*"

src/main.rsPoista seuraavaksi tiedoston sisältä kaikki ja täytä se seuraavilla:

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

Huomautus: Älä muuta IP-osoitetta sovelluksen sisällä. Tämä on määritetty niin, että Docker voi kuunnella sovellustasi.

Kun olet valmis, käännä sovellus suorittamalla cargo build –release. Palvelimestasi riippuen se voi kestää muutaman minuutin. Jos virheitä ei ole, testaa sovellus seuraavasti:

  • Juokse target/release/webapp.
  • Siirry http://0.0.0.0:3000/selaimessasi kohtaan. Korvaa 0.0.0.0palvelimesi IP-osoite.

Jos kaikki toimi oikein, näet sivulla "Hei Vultr :)".

Vaihe 2: Luo Docker-säiliöt

Luo Dockerfileja täytä se seuraavilla:

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

Tallenna tiedosto. Luo sitten tiedosto nimeltä deploy.shja täytä se seuraavalla:

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

Kun suoritat tämän skriptin, se rakentaa kuvan ja ottaa käyttöön säilön määrittämäsi määrän perusteella (oletus on 5). Jos säilö on olemassa, se tappaa ja poistaa sen rekisteristä ennen kuin se otetaan uudelleen käyttöön.

Vaihe 3: Määritä Nginx

Luo nyt Nginx-määritystiedosto ja täytä se seuraavilla:

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

Korvaa 0.0.0.0palvelimesi IP-osoite.

Käynnistä Nginx uudelleen tekemällä systemctl restart nginx. Korjaa mahdolliset virheet ja siirry sitten seuraavaan vaiheeseen.

Vaihe 4: Ota sovellus käyttöön

Ota sovellus käyttöön suorittamalla bash ./deploy.sh.

Voit tarkistaa sovelluksesi tilan painamalla docker ps- luodaan 5 kuvaa, jotka alkavat webapp. Nyt siirtymällä http://0.0.0.0:3000/selaimessasi, näet "Hei, Vultr :)" viesti uudelleen.

Eli mitä eroa tällä tarkalleen ottaen on?

Jos suoritat benchmark-testin kuormituksen tasapainottimen kokoonpanoa vastaan, huomaat, että enemmän palvelinresurssejasi käytetään, mikä on mitä haluat, varsinkin jos sovelluksesi on rakennettu kielille, kuten Node, jossa se tavallisesti olisi yksisäikeinen. Jos joudut joskus päivittämään sovelluksesi, voit tehdä sen ja suorittaa deploy.shsen uudelleen rakentaaksesi kuvan uudelleen ja ottaaksesi säilösi käyttöön.


Näin voit tarkistaa Hyper-V-säiliöt Windows 10 Insiderissä

Näin voit tarkistaa Hyper-V-säiliöt Windows 10 Insiderissä

Microsoft on selittänyt uudessa blogiviestissä, kuinka Windows Insiders voi testata Hyper-V-säilöjä Windows 10:ssä, uudessa virtualisointiratkaisussa, jonka avulla sovellukset voivat toimia vaikuttamatta muuhun käyttöjärjestelmääsi.

Asenna Rancher OS iPXE:n kautta

Asenna Rancher OS iPXE:n kautta

Rancher OS on erittäin kevyt Linux-jakelu, joka on rakennettu Dockerin ympärille. Itse käyttöjärjestelmä painaa noin 20 Mt. Tämän opetusohjelman avulla pääset alkuun

Määritä CoreOS:ssä oma Docker-rekisteri

Määritä CoreOS:ssä oma Docker-rekisteri

Me kaikki tiedämme ja rakastamme Dockeria, alustaa sovellussäilöjen luomiseen, hallintaan ja jakamiseen useille koneille. Docker Inc. tarjoaa palvelun t

Docker-composen asentaminen CoreOS:ään

Docker-composen asentaminen CoreOS:ään

Tässä artikkelissa kerrotaan, kuinka Docker-compose asennetaan CoreOS:ään. CoreOS:ssä /usr/-kansio on muuttumaton, joten tavallinen /usr/local/bin-polku ei ole käytettävissä

Asenna Docker CE Ubuntuun 18.04

Asenna Docker CE Ubuntuun 18.04

Johdanto Docker on sovellus, jonka avulla voimme ottaa käyttöön ohjelmia, joita ajetaan säilöinä. Se on kirjoitettu suositulla Go-ohjelmointikielellä

Luo Docker Swarm Alpine Linux 3.9.0:lle

Luo Docker Swarm Alpine Linux 3.9.0:lle

Johdanto Tämä opas näyttää, kuinka Docker-parvi luodaan ja konfiguroidaan käyttämällä useita Alpine Linux 3.9.0 -palvelimia ja Portaineria. Ole tietoinen siitä

Ota PHP-sovellus käyttöön Docker-compose-sovelluksella

Ota PHP-sovellus käyttöön Docker-compose-sovelluksella

PHP-sovellukset koostuvat yleensä verkkopalvelimesta, relaatiotietokantajärjestelmästä ja itse kielitulkista. Tässä opetusohjelmassa hyödynnämme

Kuormituksen tasapaino Dockerin kanssa

Kuormituksen tasapaino Dockerin kanssa

Kun käytät verkkosovellusta, haluat yleensä saada kaiken irti resursseistasi ilman, että sinun tarvitsee muuttaa ohjelmistoasi käyttämään monisäikeistä o

Ota Node.js-sovellus käyttöön Dockerin avulla

Ota Node.js-sovellus käyttöön Dockerin avulla

Tämä artikkeli näyttää, kuinka Node-sovellus otetaan käyttöön Docker-säilön sisällä. Huomautus: Tämä opetusohjelma olettaa, että olet asentanut Dockerin ja lukenut sen

Docker CE:n asentaminen Debian 9:ään

Docker CE:n asentaminen Debian 9:ään

Käytätkö erilaista järjestelmää? Johdanto Docker on sovellus, joka mahdollistaa ohjelmistojen käyttöönoton virtuaalisäiliöissä. Se oli kirjoitettu G:ssä

Aloita SQL Server 2017:n (MS-SQL) käyttäminen CentOS 7:ssä Dockerin kanssa

Aloita SQL Server 2017:n (MS-SQL) käyttäminen CentOS 7:ssä Dockerin kanssa

Esitiedot Docker engine 1.8+. Vähintään 4 Gt levytilaa. Vähintään 4 Gt RAM-muistia. Vaihe 1. Asenna Docker SQL-palvelimen asentamiseksi Docker mus

Sticky Session with Docker Swarm (CE) Debian 9:ssä

Sticky Session with Docker Swarm (CE) Debian 9:ssä

Käytätkö erilaista järjestelmää? Johdanto Docker Swarm muuttaa yksittäiset palvelimesi tietokoneklusteriksi; helpottaa skaalaus, korkea saatavuus ja

Asenna Rancher Server RancherOS:ään

Asenna Rancher Server RancherOS:ään

Yleiskatsaus RancherOS on uskomattoman kevyt käyttöjärjestelmä (vain noin 60 Mt), joka käyttää Docker-daemonia PID 0 -tunnuksena järjestelmäpalvelujen suorittamiseen.

Asenna Rancher Ubuntuun 16.04

Asenna Rancher Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Johdanto Rancher on avoimen lähdekoodin alusta konttien ajamiseen ja yksityisen konttipalvelun rakentamiseen. Rancher on perusta

Asenna Sentry Dockerin kautta Ubuntuun 16.04

Asenna Sentry Dockerin kautta Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Johdanto Sentry on avoimen lähdekoodin ratkaisu virheiden seurantaan. Sentry seuraa poikkeuksia ja muita hyödyllisiä viestejä

Dockerin käyttö: Ensimmäisen Docker-säilön luominen

Dockerin käyttö: Ensimmäisen Docker-säilön luominen

Tämä opetusohjelma selittää Dockerin käytön aloittamisen perusteet. Oletan, että sinulla on jo Docker asennettuna. Tämän opetusohjelman vaiheet toimivat

Dockerin asentaminen Ubuntuun 14.04

Dockerin asentaminen Ubuntuun 14.04

Käytätkö erilaista järjestelmää? Docker on sovellus, jonka avulla voidaan ottaa käyttöön säilöinä ajettavia ohjelmia. Se kirjoitettiin suositulla Go-ohjelmalla

Ota ja hallitse LXC-säilöjä turvallisesti Ubuntu 14.04:ssä

Ota ja hallitse LXC-säilöjä turvallisesti Ubuntu 14.04:ssä

LXC-säilöt (Linux-säilöt) ovat Linuxin käyttöjärjestelmäominaisuus, jota voidaan käyttää useiden erillisten Linux-järjestelmien ajamiseen yhdellä isännällä. Nämä

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja