Apkrovos balansas su Docker

Apkrovos balansas su Docker

Kai naudojate žiniatinklio programą, paprastai norite maksimaliai išnaudoti savo išteklius, nereikės konvertuoti programinės įrangos į kelių gijų arba sudėtingas įvykių kilpas. Tačiau „Docker“ suteikia paprastą būdą subalansuoti programos apkrovą viduje, kad maksimaliai išnaudotumėte serverio išteklius. Šiame straipsnyje bus parodyta, kaip naudoti „Nginx“ žiniatinklio programos apkrovos balansui naudojant „Docker“ sistemoje „CentOS“.

1 veiksmas: sukurkite paprastą programą

Kurdami šią paprastą programą naudosime rūdis. Darant prielaidą, kad įdiegta rūdžių, paleiskite cargo new webapp –bin. Kai pasiseks, pamatysite katalogą pavadinimu webapp. Viduje webapppamatysite failą pavadinimu Cargo.toml. Prie jo pridėkite šias eilutes:

[dependencies.iron]
version = "*"

Tada src/main.rsfailo viduje pašalinkite viską ir užpildykite jį taip:

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

Pastaba: nekeiskite IP programoje. Tai sukonfigūruota taip, kad „Docker“ galėtų klausytis jūsų programos.

Baigę sukompiliuokite programą vykdydami cargo build –release. Priklausomai nuo jūsų serverio, tai gali užtrukti kelias minutes. Jei klaidų nėra, išbandykite programą atlikdami šiuos veiksmus:

  • Paleisti target/release/webapp.
  • http://0.0.0.0:3000/Naršyklėje eikite į . Pakeiskite 0.0.0.0savo serverio IP adresu.

Jei viskas veikė tinkamai, puslapyje pamatysite "Labas Vultr :)".

2 veiksmas: sukurkite „Docker“ konteinerius

Sukurkite Dockerfileir užpildykite jį šiais elementais:

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

Išsaugokite failą. Tada sukurkite failą, pavadintą deploy.shir užpildykite jį taip:

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

Kai paleisite šį scenarijų, jis sukurs vaizdą ir įdiegs konteinerį pagal jūsų nustatytą kiekį (numatytasis yra 5). Jei konteineris yra, jis bus nužudytas ir pašalintas iš registro prieš vėl įdiegiant.

3 veiksmas: sukonfigūruokite „Nginx“.

Dabar sukurkite Nginx konfigūracijos failą ir užpildykite jį taip:

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

Pakeiskite 0.0.0.0savo serverio IP adresu.

Iš naujo paleiskite Nginx atlikdami systemctl restart nginx. Išspręskite visas klaidas, tada pereikite prie kito veiksmo.

4 veiksmas: įdiekite programą

Įdiekite programą paleisdami bash ./deploy.sh.

Savo programos būseną galite patikrinti naudodami docker ps– bus sukurti 5 vaizdai, kurie prasideda webapp. Dabar http://0.0.0.0:3000/naršyklėje eikite į ir vėl pamatysite pranešimą „Sveiki, Vultr :)“.

Taigi, koks tiksliai skirtumas?

Jei atliksite apkrovos balansavimo priemonės konfigūracijos lyginamąjį testą, pastebėtumėte, kad naudojama daugiau jūsų serverio išteklių, o to ir norėtumėte, ypač jei jūsų programa sukurta tokiomis kalbomis kaip Node, kur paprastai ji būtų vienos gijos. Jei kada nors reikės atnaujinti programą, galite tai padaryti ir paleisti iš naujo, deploy.shkad atkurtumėte vaizdą ir įdiegtumėte konteinerius.


Štai kaip patikrinti „Hyper-V“ konteinerius „Windows 10 Insider“.

Štai kaip patikrinti „Hyper-V“ konteinerius „Windows 10 Insider“.

„Microsoft“ naujame tinklaraščio įraše paaiškino, kaip „Windows Insiders“ gali išbandyti „Hyper-V“ konteinerius „Windows 10“ – tai naujas virtualizacijos sprendimas, leidžiantis programoms veikti nepažeidžiant likusios operacinės sistemos.

Kaip įdiegti „Harbor“ „CentOS 7“.

Kaip įdiegti „Harbor“ „CentOS 7“.

„Harbour“ yra atvirojo kodo įmonės klasės registro serveris, kuriame saugomi ir platinami „Docker“ vaizdai. Harbour išplečia atvirojo kodo Docker Distribution b

Įdiekite Rancher OS per iPXE

Įdiekite Rancher OS per iPXE

Rancher OS yra labai lengvas Linux platinimas, sukurtas aplink Docker. Pati OS sveria apie 20 MB. Ši mokymo programa padės jums pradėti dirbti

„CoreOS“ sistemoje nustatykite savo „Docker“ registrą

„CoreOS“ sistemoje nustatykite savo „Docker“ registrą

Visi žinome ir mėgstame „Docker“ – platformą, leidžiančią kurti, valdyti ir platinti programų konteinerius keliuose įrenginiuose. „Docker Inc.“ teikia paslaugą t

„Docker-compose“ diegimas „CoreOS“.

„Docker-compose“ diegimas „CoreOS“.

Šiame straipsnyje paaiškinama, kaip „CoreOS“ įdiegti docker-compose. „CoreOS“ aplankas /usr/ yra nekintamas, todėl standartinis /usr/local/bin kelias nepasiekiamas.

Įdiekite „Rancher“ „CentOS 7“.

Įdiekite „Rancher“ „CentOS 7“.

Naudojate kitą sistemą? Įvadas Rancher yra atvirojo kodo platforma, skirta konteineriams paleisti ir privačių konteinerių paslaugai kurti. Rancher yra bazė

Įdiekite Docker CE Ubuntu 18.04

Įdiekite Docker CE Ubuntu 18.04

Įvadas „Docker“ yra programa, leidžianti diegti programas, kurios vykdomos kaip konteineriai. Jis buvo parašytas populiaria Go programavimo kalba

Sukurkite Docker Swarm Alpine Linux 3.9.0

Sukurkite Docker Swarm Alpine Linux 3.9.0

Įvadas Šiame vadove bus parodyta, kaip sukurti ir konfigūruoti Docker būrį naudojant kelis Alpine Linux 3.9.0 serverius ir Portainer. Prašome žinoti, kad

Įdiekite PHP programą naudodami „Docker-compose“.

Įdiekite PHP programą naudodami „Docker-compose“.

PHP programas paprastai sudaro žiniatinklio serveris, reliacinė duomenų bazių sistema ir pats kalbos vertėjas. Šioje pamokoje mes naudosime svertą

Apkrovos balansas su Docker

Apkrovos balansas su Docker

Kai naudojate žiniatinklio programą, paprastai norite maksimaliai išnaudoti savo išteklius, nereikės konvertuoti programinės įrangos į kelių gijų o

Įdiekite Node.js programą naudodami „Docker“.

Įdiekite Node.js programą naudodami „Docker“.

Šiame straipsnyje bus parodyta, kaip įdiegti „Node“ programą „Docker“ konteineryje. Pastaba: Šioje pamokoje daroma prielaida, kad įdiegėte ir perskaitėte „Docker“.

„Docker CE“ diegimas „CentOS 7“.

„Docker CE“ diegimas „CentOS 7“.

Docker konteinerio technologija leidžia paleisti programas konkrečioje ir izoliuotoje aplinkoje. „Docker Community Edition“ (CE) yra naujas „fre“ pavadinimas

Įdiekite „Kubernetes“ naudodami „Kubeadm“ „CentOS 7“.

Įdiekite „Kubernetes“ naudodami „Kubeadm“ „CentOS 7“.

Apžvalga Šis straipsnis skirtas padėti jums greitai sukurti ir paleisti Kubernetes klasterį su kubeadm. Šiame vadove bus naudojami du serveriai

„Docker“ diegimas „CentOS 7“.

„Docker“ diegimas „CentOS 7“.

Naudojate kitą sistemą? „Docker“ yra programa, leidžianti įdiegti programinę įrangą virtualiuose konteineriuose. Tai buvo parašyta Go programoje

„Docker CE“ diegimas „Debian 9“.

„Docker CE“ diegimas „Debian 9“.

Naudojate kitą sistemą? Įvadas Docker yra programa, leidžianti įdiegti programinę įrangą virtualiuose konteineriuose. Tai buvo parašyta G

Pradėkite naudotis „SQL Server 2017“ (MS-SQL) „CentOS 7“ su „Docker“.

Pradėkite naudotis „SQL Server 2017“ (MS-SQL) „CentOS 7“ su „Docker“.

Būtinos sąlygos Docker engine 1.8+. Mažiausiai 4 GB vietos diske. Mažiausiai 4 GB RAM. 1 veiksmas. Įdiekite Docker Norėdami įdiegti SQL-Server, Docker mus

Sticky Session with Docker Swarm (CE) Debian 9

Sticky Session with Docker Swarm (CE) Debian 9

Naudojate kitą sistemą? Įvadas Docker Swarm paverčia jūsų atskirus serverius kompiuterių grupe; palengvinantis mastelio keitimą, didelis prieinamumas ir

Du „Docker“ grafinio valdymo įrankiai: „DockerUI“ ir „Shipyard“.

Du „Docker“ grafinio valdymo įrankiai: „DockerUI“ ir „Shipyard“.

Naudodami „Vultr Docker“ programą galite lengvai įdiegti „Docker“ savo „Vultr“ serverio egzemplioriuje. Tuo tarpu galite palengvinti „Docker“ valdymo užduotį

Įdiekite „Rancher Server“ „RancherOS“.

Įdiekite „Rancher Server“ „RancherOS“.

Apžvalga RancherOS yra neįtikėtinai lengva operacinė sistema (tik apie 60 MB), kuri naudoja sistemos Docker demoną kaip PID 0 sistemos paslaugoms vykdyti.

Darbo su Kubernetes pradžia CentOS 7

Darbo su Kubernetes pradžia CentOS 7

„Kubernetes“ yra „Google“ sukurta atvirojo kodo platforma, skirta tvarkyti konteinerines programas serverių grupėje. Jis remiasi dešimtmečiu ir

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį