{"id":82920,"date":"2020-05-26T13:42:37","date_gmt":"2020-05-26T11:42:37","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-nastrojka-zaprosov-i-limitov-resursov"},"modified":"2020-05-26T13:42:37","modified_gmt":"2020-05-26T11:42:37","slug":"luchshie-praktiki-kubernetes-nastrojka-zaprosov-i-limitov-resursov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-nastrojka-zaprosov-i-limitov-resursov","title":{"rendered":"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502052\/\">Najlep\u0161ie praktiky Kubernetes. Vytvorenie mal\u00fdch kontajnerov<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502320\/\">Najlep\u0161ie praktiky Kubernetes. Organiz\u00e1cia Kubernetes s men\u0161\u00edm priestorom<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502430\/\">Najlep\u0161ie praktiky Kubernetes. Kontrola \u017eivotaschopnosti Kubernetes pomocou Readiness a Liveness testov<\/a><\/noindex><\/p>\n<p>Pre ka\u017ed\u00fd zdroj Kubernetes je mo\u017en\u00e9 nastavi\u0165 dva typy po\u017eiadaviek \u2014 Requests a Limits. Prv\u00e9 popisuje minim\u00e1lne po\u017eiadavky na dostupnos\u0165 vo\u013en\u00fdch zdrojov uzla, potrebn\u00fdch na spustenie kontajnera alebo podu, druh\u00e9 striktne obmedzuje zdroje dostupn\u00e9 kontajneru. <\/p>\n<p>Ke\u010f Kubernetes pl\u00e1nuje pod, je ve\u013emi d\u00f4le\u017eit\u00e9, aby kontajnery mali dostatok zdrojov na norm\u00e1lnu prev\u00e1dzku. Ak pl\u00e1nujete nasadi\u0165 ve\u013ek\u00fa aplik\u00e1ciu na uzle s obmedzen\u00fdmi zdrojmi, je ve\u013emi pravdepodobn\u00e9, \u017ee nebude fungova\u0165, preto\u017ee uzlu doch\u00e1dza pam\u00e4\u0165 alebo mu ch\u00fdba v\u00fdkon procesora. V tomto \u010dl\u00e1nku sa pozrieme, ako mo\u017eno vyrie\u0161i\u0165 probl\u00e9my s nedostatkom v\u00fdpo\u010dtov\u00fdch zdrojov pomocou po\u017eiadaviek na zdroje a obmedzen\u00ed.<\/p>\n<p>Po\u017eiadavky Requests a obmedzenia Limits s\u00fa mechanizmy, ktor\u00e9 Kubernetes pou\u017e\u00edva na spr\u00e1vu tak\u00fdchto zdrojov, ako je napr\u00edklad procesor a pam\u00e4\u0165. Requests s\u00fa to, v d\u00f4sledku ktor\u00fdch kontajner garantovane dost\u00e1va po\u017eadovan\u00fd zdroj. Ak kontajner po\u017eaduje zdroj, Kubernetes ho napl\u00e1nuje len na tom uzle, ktor\u00fd ho dok\u00e1\u017ee poskytn\u00fa\u0165. Obmedzenia Limits kontroluj\u00fa, aby zdroje, ktor\u00e9 kontajner po\u017eaduje, nikdy neprekro\u010dili ur\u010dit\u00fa hodnotu.<\/p>\n<p><img decoding=\"async\" alt=\"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov\" src=\"\/wp-content\/uploads\/2020\/05\/047fc1c3dddef1f33be78616ad70d62f.png\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Kontajner m\u00f4\u017ee zvy\u0161ova\u0165 v\u00fdpo\u010dtov\u00e9 kapacity len do ur\u010dit\u00e9ho limitu, po ktorom bude obmedzen\u00fd. Pozrime sa, ako to funguje. Existuj\u00fa teda dva typy zdrojov \u2014 procesor a pam\u00e4\u0165. Pl\u00e1nova\u010d Kubernetes pou\u017e\u00edva \u00fadaje o t\u00fdchto zdrojoch, aby zistil, kde spusti\u0165 va\u0161e pody. Typick\u00e1 \u0161pecifik\u00e1cia zdrojov pre pod vyzer\u00e1 takto.<\/p>\n<p><img decoding=\"async\" alt=\"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov\" src=\"\/wp-content\/uploads\/2020\/05\/84f1212f7098d25273217d4218d661f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKa\u017ed\u00fd kontajner v pod m\u00f4\u017ee nastavi\u0165 svoje vlastn\u00e9 po\u017eiadavky a obmedzenia, v\u0161etko je to adit\u00edvne. Zdroje procesora s\u00fa definovan\u00e9 v milikrohr\u00e1ch. Ak v\u00e1\u0161 kontajner na spustenie potrebuje dva pln\u00e9 jadr\u00e1, nastav\u00edte hodnotu 2000m. Ak v\u0161ak kontajnerovi sta\u010d\u00ed v\u00fdkon iba 1\/4 jadra, hodnota bude 250m. Majte na pam\u00e4ti, \u017ee ak prirad\u00edte hodnotu procesorov\u00fdch zdrojov vy\u0161\u0161iu ako po\u010det jadier najv\u00e4\u010d\u0161ieho uzla, spustenie v\u00e1\u0161ho podu nebude v\u00f4bec napl\u00e1novan\u00e9. Podobn\u00e1 situ\u00e1cia nastane, ak m\u00e1te pod, ktor\u00fd potrebuje \u0161tyri jadr\u00e1, a klaster Kubernetes pozost\u00e1va iba z dvoch z\u00e1kladn\u00fdch virtu\u00e1lnych strojov.<\/p>\n<p>Ak va\u0161e aplik\u00e1cie nie s\u00fa vyvinut\u00e9 \u0161peci\u00e1lne na vyu\u017eitie v\u00fdhod viacer\u00fdch jadier (na mysli m\u00e1me tak\u00e9 programy, ako s\u00fa zlo\u017eit\u00e9 vedeck\u00e9 v\u00fdpo\u010dty a oper\u00e1cie s datab\u00e1zami), najlep\u0161ou praxou je nastavi\u0165 po\u017eiadavky CPU na 1 alebo menej a n\u00e1sledne spusti\u0165 v\u00e4\u010d\u0161\u00ed po\u010det replik pre \u0161k\u00e1lovate\u013enos\u0165. Toto rie\u0161enie poskytne syst\u00e9mu v\u00e4\u010d\u0161iu flexibilitu a spo\u013eahlivos\u0165.<\/p>\n<p>Ke\u010f pr\u00edde na obmedzenia procesora, v\u0161etko sa st\u00e1va zauj\u00edmavej\u0161\u00edm, preto\u017ee je pova\u017eovan\u00fd za kompresibiln\u00fd zdroj. Ak sa va\u0161a aplik\u00e1cia za\u010dne bl\u00ed\u017ei\u0165 k limitu procesorov\u00e9ho v\u00fdkonu, Kubernetes za\u010dne obmedzova\u0165 v\u00e1\u0161 kontajner pomocou CPU Throttling \u2014 zn\u00ed\u017eenia frekvencie procesora. To znamen\u00e1, \u017ee procesor bude umelo obmedzen\u00fd, \u010do m\u00f4\u017ee vies\u0165 k hor\u0161iemu v\u00fdkonu aplik\u00e1cie, av\u0161ak proces nebude preru\u0161en\u00fd alebo ukon\u010den\u00fd. <\/p>\n<p>Zdroje pam\u00e4te s\u00fa definovan\u00e9 v bajtoch. Zvy\u010dajne sa hodnota v nastaveniach meria v mebibajtoch Mib, ale m\u00f4\u017eete zada\u0165 ak\u00fako\u013evek hodnotu, od bajtov po petabajty. Tu plat\u00ed t\u00e1 ist\u00e1 situ\u00e1cia ako s CPU \u2014 ak umiestnite po\u017eiadavku na mno\u017estvo pam\u00e4te, ktor\u00e9 presahuje objem pam\u00e4te na va\u0161ich uzloch, vykonanie tohto podu nebude napl\u00e1novan\u00e9. Na rozdiel od procesorov\u00fdch zdrojov v\u0161ak pam\u00e4\u0165 nie je kompresibiln\u00e1, preto\u017ee neexistuje \u017eiaden sp\u00f4sob, ako obmedzi\u0165 jej pou\u017e\u00edvanie. Preto sa vykon\u00e1vanie kontajnera zastav\u00ed, akon\u00e1hle prekro\u010d\u00ed pridelen\u00fa pam\u00e4\u0165.<\/p>\n<p><img decoding=\"async\" alt=\"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov\" src=\"\/wp-content\/uploads\/2020\/05\/a2b372ad9de7e065b435dae87ee62708.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe d\u00f4le\u017eit\u00e9 si uvedomi\u0165, \u017ee nem\u00f4\u017eete nastavi\u0165 po\u017eiadavky, ktor\u00e9 presahuj\u00fa kapacity zdrojov, ktor\u00e9 m\u00f4\u017eu va\u0161e uzly poskytn\u00fa\u0165. Vlastnosti zdie\u013ean\u00fdch zdrojov pre virtu\u00e1lne stroje GKE n\u00e1jdete v odkazoch umiestnen\u00fdch pod t\u00fdmto videom.<\/p>\n<p>V ide\u00e1lnom svete by predvolen\u00e9 nastavenia kontajnera mali by\u0165 dostato\u010dn\u00e9 na to, aby pracovn\u00e9 toky prebiehali hladko. Skuto\u010dn\u00fd svet v\u0161ak nie je tak\u00fd, \u013eudia m\u00f4\u017eu \u013eahko zabudn\u00fa\u0165 nastavi\u0165 vyu\u017e\u00edvanie zdrojov alebo hackeri nastavia po\u017eiadavky a obmedzenia presahuj\u00face re\u00e1lne kapacity infra\u0161trukt\u00fary. Aby sa predi\u0161lo rozvoju tak\u00fdchto scen\u00e1rov, je mo\u017en\u00e9 nastavi\u0165 kv\u00f3ty zdrojov ResourceQuota a rozsahy obmedzen\u00ed LimitRange.<\/p>\n<p>Po vytvoren\u00ed menn\u00e9ho priestoru ich m\u00f4\u017eete zablokova\u0165 pomocou kv\u00f3t. Napr\u00edklad, ak m\u00e1te menn\u00e9 priestory prod a dev, pou\u017eije sa vzor, v ktorom kv\u00f3ty pre produkciu v\u00f4bec neexistuj\u00fa, zatia\u013e \u010do kv\u00f3ty pre v\u00fdvoj s\u00fa ve\u013emi pr\u00edsne. To umo\u017e\u0148uje prod v pr\u00edpade n\u00e1hleho n\u00e1rastu prev\u00e1dzky z\u00edska\u0165 v\u0161etky dostupn\u00e9 zdroje a \u00faplne zablokova\u0165 dev.<\/p>\n<p>Kv\u00f3ta zdrojov m\u00f4\u017ee vyzera\u0165 takto. V tomto pr\u00edklade s\u00fa \u0161tyri sekcie \u2013 to s\u00fa \u0161tyri doln\u00e9 riadky k\u00f3du.<\/p>\n<p><img decoding=\"async\" alt=\"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov\" src=\"\/wp-content\/uploads\/2020\/05\/569f4ddde6ad46c707e91cc05947fc6b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPozrime sa na ka\u017ed\u00fa z nich. Requests.cpu je maxim\u00e1lne kombinovan\u00e9 mno\u017estvo po\u017eiadaviek na procesorov\u00fd v\u00fdkon, ktor\u00e9 m\u00f4\u017eu prich\u00e1dza\u0165 od v\u0161etk\u00fdch kontajnerov v mennom priestore. V tomto pr\u00edklade m\u00f4\u017eete ma\u0165 50 kontajnerov so \u017eiados\u0165ami po 10m, p\u00e4\u0165 kontajnerov so \u017eiados\u0165ami po 100m alebo jednoducho jeden kontajner so \u017eiados\u0165ou 500m. Pokia\u013e celkov\u00e9 mno\u017estvo requests.cpu tohto menn\u00e9ho priestoru bude menej ne\u017e 500m, v\u0161etko bude v poriadku.<\/p>\n<p>Po\u017eadovan\u00e1 pam\u00e4\u0165 requests.memory je maxim\u00e1lna kombinovan\u00e1 kapacita po\u017eiadaviek na pam\u00e4\u0165, ktor\u00fa m\u00f4\u017eu ma\u0165 v\u0161etky kontajnery v mennom priestore. Rovnako ako v predch\u00e1dzaj\u00facom pr\u00edpade m\u00f4\u017eete ma\u0165 50 kontajnerov po 2 MiB, p\u00e4\u0165 kontajnerov po 20 MiB alebo jedin\u00fd kontajner s 100 MiB, pokia\u013e celkov\u00e9 mno\u017estvo po\u017eadovanej pam\u00e4te v mennom priestore bude menej ne\u017e 100 mebibajtov.<\/p>\n<p>Limits.cpu je maxim\u00e1lna kombinovan\u00e1 hodnota procesorov\u00e9ho v\u00fdkonu, ktor\u00fa m\u00f4\u017eu v\u0161etky kontajnery v mennom priestore pou\u017e\u00edva\u0165. M\u00f4\u017ee sa pova\u017eova\u0165 za limit po\u017eiadaviek na procesorov\u00fd v\u00fdkon.<\/p>\n<p>Nakoniec, limits.memory \u2013 maxim\u00e1lny objem celkovej pam\u00e4te, ktor\u00fd m\u00f4\u017eu vyu\u017ei\u0165 v\u0161etky kontajnery v menej priestore. Toto obmedzenie s\u00fahrnn\u00fdch po\u017eiadaviek na pam\u00e4\u0165.<br \/>\nTak\u017ee, predvolene kontajnery v klastri Kubernetes funguj\u00fa s neobmedzen\u00fdmi v\u00fdpo\u010dtov\u00fdmi zdrojmi. Pomocou kv\u00f3t zdrojov m\u00f4\u017eu administr\u00e1tori klastra obmedzi\u0165 spotrebu zdrojov a ich vytv\u00e1ranie na z\u00e1klade menej priestoru. V menej priestore m\u00f4\u017ee modul pod alebo kontajner spotrebova\u0165 to\u013eko v\u00fdkonu CPU a pam\u00e4te, ko\u013eko je ur\u010den\u00e9 kv\u00f3tou zdrojov menej priestoru. Existuje v\u0161ak obava, \u017ee jeden pod alebo kontajner m\u00f4\u017ee monopolizova\u0165 v\u0161etky dostupn\u00e9 zdroje. Na zabr\u00e1nenie takejto situ\u00e1cie sa pou\u017e\u00edva obmedzuj\u00faci rozsah limit Range \u2013 politika obmedzovania rozde\u013eovania zdrojov (pre pod alebo kontajnery) v menej priestore.<\/p>\n<p>Obmedzuj\u00faci rozsah poskytuje obmedzenia, ktor\u00e9 m\u00f4\u017eu:<\/p>\n<ul>\n<li>zabezpe\u010di\u0165 minim\u00e1lne a maxim\u00e1lne pou\u017e\u00edvanie v\u00fdpo\u010dtov\u00fdch zdrojov pre ka\u017ed\u00fd modul alebo kontajner v menej priestore;<\/li>\n<li>pr\u00edsne vykon\u00e1va\u0165 minim\u00e1lny a maxim\u00e1lny po\u017eiadavok na \u00falo\u017eisko Storage Request pre ka\u017ed\u00fd PersistentVolumeClaim v menej priestore;<\/li>\n<li>pr\u00edsne stanovi\u0165 pomer medzi po\u017eiadavkou Request a obmedzen\u00edm Limit pre zdroj v menej priestore;<\/li>\n<li>stanovi\u0165 Requests\/Limits predvolene pre v\u00fdpo\u010dtov\u00e9 zdroje v menej priestore a automaticky ich zav\u00e1dza\u0165 do kontajnerov po\u010das prev\u00e1dzky.<\/li>\n<\/ul>\n<p>\nTak\u017ee m\u00f4\u017eete vytvori\u0165 obmedzuj\u00faci rozsah vo svojom menej priestore. Na rozdiel od kv\u00f3ty, ktor\u00e1 sa vz\u0165ahuje na cel\u00e9 meno priestoru, Limit Range sa pou\u017e\u00edva pre jednotliv\u00e9 kontajnery. To m\u00f4\u017ee zabr\u00e1ni\u0165 vytv\u00e1raniu ve\u013emi mal\u00fdch alebo naopak obrovsk\u00fdch kontajnerov v menej priestore. Obmedzuj\u00faci rozsah Limit Range m\u00f4\u017ee vyzera\u0165 takto. <\/p>\n<p><img decoding=\"async\" alt=\"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov\" src=\"\/wp-content\/uploads\/2020\/05\/3fb358788910ca21e267a887032cdf1a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAko v predch\u00e1dzaj\u00facom pr\u00edpade, tu m\u00f4\u017eeme vyzdvihn\u00fa\u0165 4 sekcie. Pozrime sa na ka\u017ed\u00fa.<br \/>\nV sekcii default s\u00fa stanoven\u00e9 obmedzenia predvolene pre kontajner v pode. Ak nastav\u00edte tieto hodnoty v obmedzuj\u00facom rozsahu, ak\u00e9ko\u013evek kontajnery, pre ktor\u00e9 tieto hodnoty neboli v\u00fdslovne ur\u010den\u00e9, bud\u00fa sa riadi\u0165 hodnotami predvolene.<\/p>\n<p>V sekcii defaultRequest s\u00fa nastaven\u00e9 predvolen\u00e9 po\u017eiadavky pre kontajner v pode. Znova, ak nastav\u00edte tieto hodnoty na maxim\u00e1lne rozmedzie, ak\u00e9ko\u013evek kontajnery, pre ktor\u00e9 tieto parametre nie s\u00fa v\u00fdslovne nastaven\u00e9, bud\u00fa pou\u017e\u00edva\u0165 tieto predvolen\u00e9 hodnoty.<\/p>\n<p>V sekcii max s\u00fa uveden\u00e9 maxim\u00e1lne obmedzenia, ktor\u00e9 m\u00f4\u017eu by\u0165 nastaven\u00e9 pre kontajner v pode. Hodnoty v sekcii default a obmedzenia pre kontajner nem\u00f4\u017eu by\u0165 nastaven\u00e9 nad tento limit. Je d\u00f4le\u017eit\u00e9 poznamena\u0165, \u017ee ak je nastaven\u00e1 hodnota max a sekcia default ch\u00fdba, maxim\u00e1lna hodnota sa st\u00e1va predvolenou hodnotou.<\/p>\n<p>V sekcii min s\u00fa uveden\u00e9 minim\u00e1lne po\u017eiadavky, ktor\u00e9 m\u00f4\u017eu by\u0165 nastaven\u00e9 pre kontajner v pode. Hodnoty v sekcii default a po\u017eiadavky pre kontajner nem\u00f4\u017eu by\u0165 nastaven\u00e9 pod tento limit.<\/p>\n<p>Znova, je d\u00f4le\u017eit\u00e9 poznamena\u0165, \u017ee ak je t\u00e1to hodnota nastaven\u00e1 a hodnota default nie je, minim\u00e1lna hodnota sa st\u00e1va po\u017eiadavkou predvolene.<\/p>\n<p>Nakoniec tieto po\u017eiadavky na zdroje pou\u017e\u00edva pl\u00e1nova\u010d Kubernetes na vykon\u00e1vanie va\u0161ich pracovn\u00fdch z\u00e1\u0165a\u017e\u00ed. Aby ste mohli spr\u00e1vne nastavi\u0165 svoje kontajnery, je ve\u013emi d\u00f4le\u017eit\u00e9 pochopi\u0165, ako to funguje. Predpokladajme, \u017ee chcete spusti\u0165 nieko\u013eko modulov vo svojom klastri. Ak s\u00fa \u0161pecifik\u00e1cie podu platn\u00e9, na pl\u00e1novanie Kubernetes sa pou\u017eije cyklick\u00e9 za\u0165a\u017eenie na v\u00fdber uzla na vykonanie pracovnej z\u00e1\u0165a\u017ee.<\/p>\n<p><img decoding=\"async\" alt=\"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov\" src=\"\/wp-content\/uploads\/2020\/05\/29abd097fc0158dfbb585c4617036ccf.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes skontroluje, \u010di m\u00e1 uzol Node 1 dostatok zdrojov na vykonanie po\u017eiadaviek kontajnerov podu, a ak nie, prejde k nasleduj\u00facemu uzlu. Ak v\u0161ak \u017eiadny z uzlov v syst\u00e9me nie je schopn\u00fd uspokoji\u0165 po\u017eiadavky, pady prejd\u00fa do stavu \u010dakaj\u00faceho Pending state. Pomocou funkci\u00ed Google Kubernetes Engine, ako je automatick\u00e9 \u0161k\u00e1lovanie uzlov, m\u00f4\u017ee GKE automaticky ur\u010di\u0165 stav \u010dakaj\u00faceho a vytvori\u0165 nieko\u013eko \u010fal\u0161\u00edch uzlov. <\/p>\n<p>Ak nesk\u00f4r nastane nadbyto\u010dn\u00e1 kapacita uzlov, funkcia automatick\u00e9ho \u0161k\u00e1lovania zn\u00ed\u017ei ich po\u010det, aby v\u00e1m u\u0161etrila peniaze. Preto Kubernetes pl\u00e1nuje pady na z\u00e1klade po\u017eiadaviek. M\u00f4\u017ee sa v\u0161ak sta\u0165, \u017ee limit m\u00f4\u017ee by\u0165 vy\u0161\u0161\u00ed ako po\u017eiadavky a v niektor\u00fdch pr\u00edpadoch m\u00f4\u017ee uzol skuto\u010dne vy\u010derpa\u0165 zdroje. Tento stav naz\u00fdvame stavom overcommitment.<\/p>\n<p><img decoding=\"async\" alt=\"Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov\" src=\"\/wp-content\/uploads\/2020\/05\/995c906880f09734c4765519f1f2465d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAko som u\u017e povedal, ke\u010f ide o procesor, Kubernetes za\u010dne obmedzova\u0165 pod. Ka\u017ed\u00fd pod dostane to\u013eko, ko\u013eko po\u017eiadal, ale ak nedosiahne limit, za\u010dne sa uplat\u0148ova\u0165 spomalenie. <\/p>\n<p>Pokia\u013e ide o pam\u00e4\u0165ov\u00e9 zdroje, Kubernetes je n\u00faten\u00fd prij\u00edma\u0165 rozhodnutia o tom, ktor\u00e9 p\u00f3dy odstr\u00e1ni\u0165 a ktor\u00e9 zachova\u0165, k\u00fdm neuvo\u013en\u00edte syst\u00e9mov\u00e9 zdroje, inak sa cel\u00fd syst\u00e9m rozpadne.<\/p>\n<p>Predstavme si scen\u00e1r, v ktorom m\u00e1te stroj, ktor\u00fd vy\u010derpal limit pam\u00e4te \u2013 ako sa v takom pr\u00edpade spr\u00e1va Kubernetes? <\/p>\n<p>Kubernetes bude h\u013eada\u0165 p\u00f3dy, ktor\u00e9 pou\u017e\u00edvaj\u00fa viac zdrojov, ako po\u017eadovali. Ak va\u0161e kontajnery nemaj\u00fa \u017eiadne po\u017eiadavky, znamen\u00e1 to, \u017ee predvolene pou\u017e\u00edvaj\u00fa viac, ako po\u017eiadali, jednoducho preto, \u017ee v\u00f4bec ni\u010d nepo\u017eiadali! Tak\u00e9to kontajnery sa st\u00e1vaj\u00fa hlavn\u00fdmi kandid\u00e1tmi na vypnutie. Nasleduj\u00facimi kandid\u00e1tmi s\u00fa kontajnery, ktor\u00e9 splnili v\u0161etky svoje po\u017eiadavky, ale st\u00e1le s\u00fa pod maxim\u00e1lnym limitom. <\/p>\n<p>Ak Kubernetes n\u00e1jde nieko\u013eko podov, ktor\u00e9 prekro\u010dili parametre svojich po\u017eiadaviek, zorad\u00ed ich pod\u013ea priority a potom odstr\u00e1ni najni\u017e\u0161ie prioritn\u00e9 moduly. Ak maj\u00fa v\u0161etky moduly rovnak\u00fa prioritu, Kubernetes zastav\u00ed prev\u00e1dzku t\u00fdch podov, ktor\u00e9 prekro\u010dili svoje po\u017eiadavky viac ako ostatn\u00e9 p\u00f3dy. <\/p>\n<p>Vo ve\u013emi zriedkav\u00fdch pr\u00edpadoch m\u00f4\u017ee Kubernetes preru\u0161i\u0165 \u010dinnos\u0165 podov, ktor\u00e9 s\u00fa st\u00e1le v r\u00e1mci svojich po\u017eiadaviek. To sa m\u00f4\u017ee sta\u0165, ke\u010f tak\u00e9 kritick\u00e9 komponenty syst\u00e9mu, ako je agent Kubelet alebo Docker, za\u010dn\u00fa spotrebov\u00e1va\u0165 viac zdrojov, ako bolo pre nich rezervovan\u00e9. <br \/>\nTak\u017ee v po\u010diato\u010dn\u00fdch f\u00e1zach fungovania mal\u00fdch spolo\u010dnost\u00ed m\u00f4\u017ee klaster Kubernetes fungova\u0165 bez nastavenia po\u017eiadaviek na zdroje a obmedzen\u00ed, ale s rastom va\u0161ich t\u00edmov a projektov riskujete, \u017ee sa stretnete s probl\u00e9mami v tejto oblasti. Pridanie po\u017eiadaviek a obmedzen\u00ed do va\u0161ich modulov a n\u00e1zvov\u00fdch priestorov si vy\u017eaduje len ve\u013emi m\u00e1lo dodato\u010dn\u00e9ho \u00fasilia a m\u00f4\u017ee v\u00e1s zbavi\u0165 mnoh\u00fdch probl\u00e9mov.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/503488\/\"> Najlep\u0161ie praktiky Kubernetes. Spr\u00e1vne vyp\u00ednanie Terminate<\/a><\/noindex><\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"mxEvAPQRwhw\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/mxEvAPQRwhw\/hqdefault.jpg\" alt=\"Prehrajte video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h3>Trochu reklamy \ud83d\ude42<\/h3>\n<p>\n\u010eakujeme, \u017ee ost\u00e1vate s nami. P\u00e1\u010dia sa v\u00e1m na\u0161e \u010dl\u00e1nky? Chcete vidie\u0165 viac zauj\u00edmav\u00fdch materi\u00e1lov? Podporte n\u00e1s, vytvoren\u00edm objedn\u00e1vky alebo odpor\u00fa\u010dan\u00edm zn\u00e1mym, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">cloud VPS pre v\u00fdvoj\u00e1rov od 4,99 dol\u00e1rov<\/a><\/noindex>, <b>unik\u00e1tny ekvivalent entry-level serverov, ktor\u00fd sme pre v\u00e1s vytvorili:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Cel\u00e1 pravda o VPS (KVM) E5-2697 v3 (6 jadier) 10GB DDR4 480GB SSD 1Gbps od 19 dol\u00e1rov alebo ako spr\u00e1vne rozdeli\u0165 server?<\/a><\/noindex> (k dispoz\u00edcii varianty s RAID1 a RAID10, a\u017e 24 jadier a a\u017e 40GB DDR4).<\/p>\n<p><b>Dell R730xd je dvakr\u00e1t lacnej\u0161\u00ed v d\u00e1tovom centre Equinix Tier IV v Amsterdame?<\/b> Len u n\u00e1s <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB od 199 dol\u00e1rov<\/a><\/noindex> v Holandsku! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 od 99 dol\u00e1rov!<\/b><\/b> Pre\u010d\u00edtajte si o tom <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Ako vybudova\u0165 infra\u0161trukt\u00faru korpor\u00e1tneho typu s pou\u017eit\u00edm serverov Dell R730xd E5-2650 v4 s cenou 9000 eur za zlomok ceny?<\/a><\/noindex><br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502614\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f Kubernetes \u0441 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u043c \u0438\u043c\u0435\u043d \u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0436\u0438\u0437\u043d\u0435\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 Kubernetes \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0435\u0441\u0442\u043e\u0432 Readiness \u0438 Liveness \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 Kubernetes \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u2014 Requests \u0438 Limits. \u041f\u0435\u0440\u0432\u043e\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0443\u0437\u043b\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u043b\u0438 \u043f\u043e\u0434\u0430, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82921,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82920","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-nastrojka-zaprosov-i-limitov-resursov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043b\u0438\u043c\u0438\u0442\u043e\u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-nastrojka-zaprosov-i-limitov-resursov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-26T11:42:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-26T11:42:37+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Najlep\u0161ie praktiky Kubernetes. Nastavenie po\u017eiadaviek a limitov zdrojov | ProHoster","description":"Najlep\u0161ie praktiky Kubernetes.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-nastrojka-zaprosov-i-limitov-resursov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043b\u0438\u043c\u0438\u0442\u043e\u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 | ProHoster","og:description":"\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-nastrojka-zaprosov-i-limitov-resursov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-26T11:42:37+00:00","article:modified_time":"2020-05-26T11:42:37+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82920","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:28:37","updated":"2022-09-28 05:48:38","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/82920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=82920"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/82920\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/82921"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=82920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=82920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=82920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}