Přístavní dělník

Měřítko Docker-Compose

Měřítko Docker-Compose
S kontejnery Docker se má zacházet jako s dobytkem, nikoli s domácími zvířaty. To znamená, že jejich tvorba, konfigurace, správa a likvidace by měly být automatizovány shora dolů. Nevytváříme a nekonfigurujeme jednotlivé kontejnery. Spíše měřítko vodorovně roztočením více kontejnerů.

Horizontální změna měřítka znamená roztočení více počítačů, tj.e, virtuální počítače, kontejnery nebo fyzické servery, aby vyhověly jakémukoli nárůstu požadavků. To je na rozdíl od škálování “vertikálně', což obvykle znamená nahrazení pomalejšího stroje (s menší pamětí a úložištěm) rychlejším 'větší' jeden.

U kontejnerů se škálování obou druhů stalo velmi dynamickým. Můžete nastavit kvóty pro konkrétní aplikace a nastavit tak velikost CPU, paměti nebo úložiště, ke kterým mohou mít přístup. Tuto kvótu lze podle potřeby změnit tak, aby se zvýšila nebo snížila. Podobně můžete horizontálně škálovat roztočením více kontejnerů, které pojmou uptick v poptávce, a později zmenšit zničení přebytku kontejnerů, které jste vytvořili. Pokud používáte služby hostované v cloudu, které vám účtují poplatky za hodinu (nebo minutu), pak to může výrazně snížit vaše účty za hostování.

V tomto článku se zaměříme pouze na horizontální škálování, které není tak dynamické jako výše uvedený popis, ale je dobrým výchozím bodem pro někoho, kdo se učí základy. Tak pojďme začít.

Škálovat přes CLI docker-compose

Když spustíte zásobník aplikací předáním souboru pro psaní do rozhraní příkazového řádku docker-compose můžete použít vlajku -měřítko určit škálovatelnost jakékoli konkrétní služby zde uvedené.

Například pro můj docker-compose soubor:

verze: "3"
služby:
web:
obrázek: "nginx: nejnovější"
porty:
- „80-85: 80“
 
$ docker-compose up -d --scale web = 5

Zde se služba v deklaraci yml nazývá web, ale může to být jakákoli jednotlivá součást vašeho nasazení, tj.e, webové rozhraní, databáze, monitorovací démon atd. Obecná syntaxe vyžaduje, abyste vybrali jeden z prvků v části služeb nejvyšší úrovně. V závislosti na vaší službě budete možná muset upravit další části skriptu. Například rozsah hostitelských portů 80-85 je uveden pro uložení 5 instancí kontejnerů Nginx, které všechny naslouchají na jejich interním portu 80, ale hostitel naslouchá na portech v rozmezí od 80-85 a přesměrovává provoz z každého jedinečného portu na jeden z Instance Nginx.

Chcete-li zjistit, který kontejner získá číslo portu, můžete použít příkaz:

$ docker ps -a
KONTEJNER ID VYTVOŘENO PŘÍKAZ OBRAZU             
d02e19d1b688 nginx: nejnovější "démon nginx -g 'z ..." Asi před minutou  
34b4dd74352d nginx: nejnovější "démon nginx -g 'z ..." Asi před minutou  
98549c0f3dcf nginx: nejnovější "démon nginx -g 'z ..." Asi před minutou  
STATUS NÁZVY PŘÍSTAVŮ
Nahoru Asi minutu 0.0.0.0: 83-> 80 / tcp project_web_1
Nahoru Asi minutu 0.0.0.0: 82-> 80 / tcp project_web_3
Nahoru Asi minutu 0.0.0.0: 81-> 80 / tcp project_web_2

Chcete-li škálovat více než jednu službu, musíte je jednotlivě zmínit pomocí parametru měřítka a čísla, abyste zajistili vytvoření požadovaného počtu instancí. Například pokud máte dvě různé služby, musíte udělat něco takového:

$ docker-compose up -d --scale service1 = 5 --scale service2 = 6

Toto je jediný způsob, jak to udělat, protože pro každou službu nemůžete spustit příkaz docker-compose up -scale dvakrát jeden. Pokud tak učiníte, změníte předchozí službu zpět na jeden kontejner.

Později uvidíme, jak můžete nastavit hodnotu měřítka pro daný obrázek zevnitř docker-compose.yml. V případě, že je v souboru nastavena možnost měřítka, ekvivalent CLI pro volbu měřítka přepíše hodnotu v souboru.

Měřítko

Tato možnost byla přidána do souboru docker-compose verze 2.2 a lze je technicky použít, i když jej nedoporučuji používat. Je zde zmíněn pro úplnost.

Pro mého docker-compose.yml soubor:

verze: „2.2 "
služby:
web:
obrázek: "nginx: nejnovější"
porty:
- „80-85: 80“
měřítko: 3

Toto je naprosto platná možnost. Ačkoli to funguje pro Docker Engine 1.13.0 a výše.

Použijte repliky ve výrobě

Místo použití příkazu scale nebo zastaralé hodnoty scale ve vašem souboru pro psaní byste měli použít proměnnou repliky. Jedná se o jednoduché celé číslo přidružené k dané službě a funguje téměř stejně jako proměnná měřítka. Zásadním rozdílem je, že Docker Swarm je výslovně určen pro distribuovaný systém.

To znamená, že můžete mít svoji aplikaci nasazenou na více uzlech virtuálních počítačů nebo fyzických serverů spuštěných ve více různých oblastech a více různých datových centrech. To vám umožní skutečně těžit z množství spuštěných instancí služeb.

Umožňuje vám škálovat aplikace nahoru a dolů úpravou jedné proměnné a navíc nabízí větší odolnost proti prostojům. Pokud je datové centrum nefunkční nebo selže síťové připojení, mohou uživatelé i nadále přistupovat k aplikaci, protože někde jinde běží jiná instance. Pokud rozšíříte nasazení vaší aplikace do více geografických oblastí, např.g, EU, USA a asijsko-pacifické oblasti sníží latenci pro uživatele, kteří se pokoušejí získat přístup k vaší aplikaci z uvedené oblasti.

Závěr

Zatímco měřítko docker-compose je užitečné pro malá prostředí, jako je jeden hostitel Docker běžící v produkčním prostředí. Je také velmi užitečný pro vývojáře, kteří na své pracovní stanici používají Docker. Může jim pomoci otestovat, jak se bude aplikace škálovat ve výrobě a za různých okolností. Pomocí příkazu scale obejdete potíže s nastavením nového Docker Swarm.

Pokud máte spuštěnou instanci Docker Swarm, můžete si hrát s replikami. Tady je dokumentace k tomu,

WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...