{"id":82244,"date":"2020-05-20T13:42:45","date_gmt":"2020-05-20T11:42:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov"},"modified":"2020-05-20T13:42:45","modified_gmt":"2020-05-20T11:42:45","slug":"luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","title":{"rendered":"Cele mai bune practici Kubernetes. Crearea de containere mici","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/21d8807ed791f0b9ff81494cf1a373c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrimul pas \u00een desf\u0103\u0219urarea \u00een Kubernetes este plasarea aplica\u021biei dvs. \u00eentr-un container. \u00cen aceast\u0103 serie, vom examina cum s\u0103 cre\u0103m o imagine a unui container mic \u0219i sigur.<br \/>\nDatorit\u0103 Docker, crearea imaginilor de containere nu a fost niciodat\u0103 at\u00e2t de simpl\u0103. Indica\u021bi imaginea de baz\u0103, ad\u0103uga\u021bi modific\u0103rile dorite \u0219i crea\u021bi containerul.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/f144351cc82d46cf3f4a518c6e11faa3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCu toate c\u0103 aceast\u0103 abordare este excelent\u0103 pentru \u00eenceput, utilizarea imaginilor de baz\u0103 implicite poate duce la gestionarea nesigur\u0103 a imaginilor mari, pline de vulnerabilit\u0103\u021bi.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u00cen plus, majoritatea imaginilor din Docker folosesc ca imagine de baz\u0103 Debian sau Ubuntu, iar de\u0219i acest lucru asigur\u0103 o compatibilitate excelent\u0103 \u0219i o adaptare u\u0219oar\u0103 (fi\u0219ierul Docker ocup\u0103 doar dou\u0103 r\u00e2nduri de cod), imaginile de baz\u0103 pot ad\u0103uga sute de megabi\u021bi de sarcin\u0103 suplimentar\u0103 \u00een containerul dvs. De exemplu, un simplu fi\u0219ier node.js pentru aplica\u021bia Go \u201ehello-world\u201d ocup\u0103 aproximativ 700 de megabi\u021bi, \u00een timp ce dimensiunea propriu-zis\u0103 a aplica\u021biei dvs. este de doar c\u00e2\u021biva megabi\u021bi.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/8093421f0f0f61b9daedf8e9530bbd3e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAstfel, toat\u0103 aceast\u0103 sarcin\u0103 suplimentar\u0103 reprezint\u0103 o risip\u0103 de spa\u021biu digital \u0219i un loc ideal pentru vulnerabilit\u0103\u021bi \u0219i erori de securitate. Prin urmare, s\u0103 lu\u0103m \u00een considerare dou\u0103 moduri de a reduce dimensiunea imaginii containerului. <\/p>\n<p>Primul este utilizarea imaginilor de baz\u0103 de dimensiuni mici, al doilea este utilizarea modelului de proiectare Builder Pattern. Folosirea imaginilor de baz\u0103 mai mici este probabil cel mai simplu mod de a reduce dimensiunea containerului dvs. Cel mai probabil, limbajul sau stiva pe care o folosi\u021bi ofer\u0103 o imagine original\u0103 a aplica\u021biei de dimensiuni mult mai mici dec\u00e2t imaginea implicit\u0103. S\u0103 arunc\u0103m o privire asupra containerului nostru node.js. <\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/df3f744a565465b56adcec6a1c32e501.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nImaginile de baz\u0103 node:8 \u00een Docker au, \u00een mod implicit, o dimensiune de 670 MB, \u00een timp ce dimensiunea node:8-alpine este de doar 65 MB, adic\u0103 de 10 ori mai mic\u0103. Folosind o imagine de baz\u0103 Alpine mai mic\u0103, ve\u021bi reduce semnificativ dimensiunea containerului dumneavoastr\u0103. Alpine este o distribu\u021bie Linux mic\u0103 \u0219i u\u0219oar\u0103, care este foarte popular\u0103 printre utilizatorii Docker, deoarece este compatibil\u0103 cu multe aplica\u021bii, p\u0103str\u00e2nd \u00een acela\u0219i timp dimensiunea mic\u0103 a containerelor. Spre deosebire de imaginea de baz\u0103 standard Docker \u201enode\u201d, \u201enode:alpine\u201d elimin\u0103 multe fi\u0219iere \u0219i programe auxiliare, p\u0103str\u00e2nd doar cele necesare pentru a rula aplica\u021bia dumneavoastr\u0103.<\/p>\n<p>Pentru a trece la o imagine de baz\u0103 mai mic\u0103, actualiza\u021bi pur \u0219i simplu fi\u0219ierul Docker pentru a \u00eencepe s\u0103 lucra\u021bi cu noua imagine de baz\u0103:<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/55a3b8e403bd34896018f92a81a3f251.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcum, spre deosebire de vechea imagine onbuild, trebuie s\u0103 copia\u021bi codul \u00een container \u0219i s\u0103 instala\u021bi orice dependen\u021be. \u00cen noul fi\u0219ier Docker, containerul \u00eencepe cu imaginea node:alpine, apoi creeaz\u0103 un director pentru cod, instaleaz\u0103 dependen\u021bele folosind managerul de pachete NPM \u0219i, \u00een final, ruleaz\u0103 server.js.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/b41c36994fc18dc34fb970a38bc50c9a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCu aceast\u0103 actualizare, ob\u021bine\u021bi un container de 10 ori mai mic. Dac\u0103 limbajul dumneavoastr\u0103 de programare sau stiva nu are o op\u021biune de reducere a imaginii de baz\u0103, folosi\u021bi Alpine Linux. Acesta va oferi, de asemenea, posibilitatea de a gestiona complet con\u021binutul containerului. Utilizarea imaginilor de baz\u0103 de dimensiuni mici este o modalitate excelent\u0103 de a crea rapid containere mici. \u00cens\u0103, se poate ob\u021bine o reducere \u0219i mai mare folosind Modelul Builder.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/c9549f5879058d9734c174e8571b9069.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen limbajele interpretate, codul surs\u0103 este mai \u00eent\u00e2i transmis interpretatorului \u0219i apoi este executat direct. \u00cen limbajele compilate, codul surs\u0103 este mai \u00eent\u00e2i transformat \u00een cod compilat. \u00cen acest proces, compilarea folose\u0219te adesea instrumente care nu sunt necesare pentru a rula codul. Acest lucru \u00eenseamn\u0103 c\u0103 pute\u021bi elimina complet aceste instrumente din containerul final. Pentru aceasta, se poate folosi Modelul Builder.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/9af4d11134c54cbdbd2b020cdf270429.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCodul este creat \u00een primul container \u0219i compilat. Apoi, codul compilat este \u00eempachetat \u00een containerul final f\u0103r\u0103 compilatoare \u0219i instrumente necesare pentru compilarea acestui cod. S\u0103 trecem prin acest proces cu aplica\u021bia Go. Mai \u00eent\u00e2i, vom trece de la imaginea onbuild la Alpine Linux.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/822b67eb28f94c50e7a40af1fe1bfea2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen fi\u0219ierul Docker nou, containerul \u00eencepe cu imaginea golang:alpine. Apoi, creeaz\u0103 un catalog pentru cod, \u00eel copiaz\u0103 \u00een codul surs\u0103, creeaz\u0103 acel cod surs\u0103 \u0219i porne\u0219te aplica\u021bia. Acest container este mult mai mic dec\u00e2t containerul onbuild, dar \u00eenc\u0103 con\u021bine compilatorul \u0219i alte instrumente Go, de care, de fapt, nu avem nevoie. A\u0219adar, s\u0103 extragem doar programul compilat \u0219i s\u0103-l punem \u00een propriul nostru container.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/094ac74a24cd723f83ddc34bee64e884.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo\u021bi observa ceva ciudat \u00een acest fi\u0219ier Docker: con\u021bine dou\u0103 linii FROM. Prima sec\u021biune din cele 4 linii arat\u0103 exact ca fi\u0219ierul Docker anterior, cu excep\u021bia faptului c\u0103 folose\u0219te cuv\u00e2ntul cheie AS pentru a da un nume acestei etape. \u00cen urm\u0103toarea sec\u021biune, exist\u0103 o nou\u0103 linie FROM, permi\u021b\u00e2ndu-ne s\u0103 \u00eencepem o nou\u0103 imagine, folosind Alpine Raw \u00een loc de imaginea golang:alpine ca baz\u0103.<\/p>\n<p>Raw Alpine Linux nu are certificate SSL instalate, ceea ce va duce la e\u0219ecul majorit\u0103\u021bii apelurilor API prin protocolul HTTPS, a\u0219a c\u0103 s\u0103 instal\u0103m c\u00e2teva certificate CA r\u0103d\u0103cin\u0103.<\/p>\n<p>Iar acum partea interesant\u0103: pentru a copia codul compilat din primul container \u00een al doilea, po\u021bi folosi pur \u0219i simplu comanda COPY, situat\u0103 \u00een linia 5 din a doua sec\u021biune. Aceasta va copia doar un singur fi\u0219ier aplica\u021bie \u0219i nu va afecta instrumentele Go. Noua fi\u0219ier Docker multi-etap\u0103 va con\u021bine o imagine a containerului cu doar 12 megabytes, \u00een timp ce imaginea de baz\u0103 a containerului era de 700 megabytes, ceea ce face o mare diferen\u021b\u0103!<br \/>\nA\u0219adar, utilizarea unor imagini de baz\u0103 mici \u0219i a Modelului Builder sunt metode excelente de a crea containere mult mai mici f\u0103r\u0103 un volum mare de munc\u0103.<br \/>\nEste posibil ca, \u00een func\u021bie de stiva aplica\u021biei, s\u0103 existe metode suplimentare pentru a reduce dimensiunea imaginii \u0219i a containerului, dar have container small unquestionable measure benefits? S\u0103 analiz\u0103m dou\u0103 aspecte \u00een care containerele mici sunt extrem de eficiente \u2013 performan\u021ba \u0219i securitatea.<\/p>\n<p>Pentru a evalua cre\u0219terea performan\u021bei, s\u0103 analiz\u0103m durata procesului de creare a unui container, de \u00eenc\u0103rcare a acestuia \u00een registru (push) \u0219i de extragerea ulterioar\u0103 din acesta (pull). Pute\u021bi observa c\u0103 un container mai mic are un avantaj incontestabil comparativ cu un container mai mare.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/f48096cf875dbb34cb473f6296a2b601.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDocker va cache-ui straturile, astfel \u00eenc\u00e2t construc\u021biile ulterioare vor fi foarte rapide. Totu\u0219i, \u00een multe sisteme CI utilizate pentru construc\u021bia \u0219i testarea containerelor, straturile nu sunt cache-uite, ceea ce duce la economii semnificative de timp. A\u0219a cum se poate vedea, timpul de construire al unui container mare, \u00een func\u021bie de puterea computerului dvs., variaz\u0103 \u00eentre 34 \u0219i 54 de secunde, iar pentru un container redus cu ajutorul Builder Pattern \u2013 \u00eentre 23 \u0219i 28 de secunde. Pentru astfel de opera\u021bii, cre\u0219terea performan\u021bei va fi de 40-50%. A\u0219a c\u0103 g\u00e2ndi\u021bi-v\u0103 de c\u00e2te ori crea\u021bi \u0219i testa\u021bi codul dvs.<\/p>\n<p>Dup\u0103 ce containerul este construit, trebuie s\u0103 \u00eenc\u0103rca\u021bi imaginea sa (push container image) \u00een registrul containerelor pentru a o utiliza ulterior \u00een clusterul dvs. Kubernetes. V\u0103 recomand s\u0103 folosi\u021bi registrul de containere Google.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/4c5426248c1e1ec6b0a36579db56c725.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFolosind Google Container Registry (GCR), pl\u0103ti\u021bi doar pentru stocarea \u201ebruta\u201d \u0219i pentru re\u021bea, iar taxa suplimentar\u0103 pentru gestionarea containerelor nu este perceput\u0103. Este confiden\u021bial, sigur \u0219i foarte rapid. GCR folose\u0219te multe trucuri pentru a accelera opera\u021bia pull. A\u0219a cum pute\u021bi vedea, \u00eenc\u0103rcarea imaginii containerului Docker Container Image folosind go:onbuild, \u00een func\u021bie de performan\u021ba computerului, va dura \u00eentre 15 \u0219i 48 de secunde, iar aceea\u0219i opera\u021bie cu un container mai mic \u2013 \u00eentre 14 \u0219i 16 secunde, av\u00e2nd \u00een vedere c\u0103 pentru computerele mai pu\u021bin performante, avantajul de vitez\u0103 al opera\u021biei cre\u0219te de 3 ori. Pentru ma\u0219ini mari, timpul este aproximativ acela\u0219i, deoarece GCR folose\u0219te un cache global pentru baza comun\u0103 de imagini, ceea ce \u00eenseamn\u0103 c\u0103 nu trebuie s\u0103 le desc\u0103rca\u021bi deloc. La computerele cu procesor de mic\u0103 capacitate, CPU-ul este un punct slab, astfel c\u0103 avantajul utiliz\u0103rii containerelor mici este mult mai semnificativ aici.<\/p>\n<p>Dac\u0103 utiliza\u021bi GCR, v\u0103 recomand cu t\u0103rie s\u0103 aplica\u021bi Google Container Builder (GCB) ca parte a sistemului dvs. de construc\u021bie.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/cf97f8636dff16d5663225547bfb0701.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDup\u0103 cum pute\u021bi observa, utilizarea acestuia permite ob\u021binerea unor rezultate mult mai bune \u00een reducerea duratei opera\u021biunii Build+Push, comparativ chiar cu o ma\u0219in\u0103 performant\u0103 - \u00een acest caz, procesul de construire \u0219i trimitere a containerelor c\u0103tre gazd\u0103 se accelereaz\u0103 aproape de dou\u0103 ori. \u00cen plus, \u00een fiecare zi beneficia\u021bi de 120 de minute de construire gratuit, ceea ce \u00een majoritatea cazurilor satisface nevoile de creare a containerelor. <\/p>\n<p>Urm\u0103toarea este cea mai important\u0103 metric\u0103 de performan\u021b\u0103 - viteza de extragere sau desc\u0103rcare a containerelor Pull. \u0218i dac\u0103 nu v\u0103 intereseaz\u0103 foarte mult timpul folosit pentru opera\u021biunea push, durata procesului pull afecteaz\u0103 semnificativ performan\u021ba general\u0103 a sistemului. S\u0103 presupunem c\u0103 ave\u021bi un cluster din trei noduri \u0219i unul dintre ele e\u0219ueaz\u0103. Dac\u0103 folosi\u021bi un sistem de gestionare, cum ar fi Google Kubernetes Engine, acesta va \u00eenlocui automat nodul nefunc\u021bional cu unul nou. Cu toate acestea, acest nou nod va fi complet gol \u0219i va trebui s\u0103 muta\u021bi toate containerele dvs. pe el pentru a \u00eencepe s\u0103 func\u021bioneze. Dac\u0103 opera\u021biunea pull va dura prea mult, atunci pe tot acest timp clusterul dvs. va avea o performan\u021b\u0103 mai sc\u0103zut\u0103.<\/p>\n<p>Exist\u0103 multe situa\u021bii \u00een care acest lucru poate s\u0103 se \u00eent\u00e2mple: ad\u0103ugarea unui nou nod \u00een cluster, actualizarea nodurilor sau chiar trecerea la un nou container pentru desf\u0103\u0219urare. Astfel, minimizarea timpului de extragere pull devine un factor cheie. Este evident c\u0103 un container mic se descarc\u0103 mult mai repede dec\u00e2t unul mare. Dac\u0103 folosi\u021bi mai multe containere \u00eentr-un cluster Kubernetes, economisirea de timp poate fi foarte semnificativ\u0103.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/fb0dacb37e9732fe2954323ee171a723.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nArunca\u021bi o privire asupra compara\u021biei prezentate: opera\u021biunea pull c\u00e2nd se lucreaz\u0103 cu containere mici dureaz\u0103 de 4-9 ori mai pu\u021bin timp, \u00een func\u021bie de puterea ma\u0219inii, comparativ cu aceea\u0219i opera\u021biune folosind go:onbuild. Utilizarea imaginilor de baz\u0103 ale containerelor de dimensiuni mici accelereaz\u0103 semnificativ timpul \u0219i viteza cu care noile noduri Kubernetes pot fi desf\u0103\u0219urate \u0219i pot ie\u0219i \u00een internet.<\/p>\n<p>S\u0103 discut\u0103m despre securitate. Se consider\u0103 c\u0103 containerele mai mici sunt mult mai sigure dec\u00e2t cele mari, deoarece au o suprafa\u021b\u0103 de atac mai mic\u0103. Este adev\u0103rat acest lucru? Una dintre cele mai utile func\u021bii ale Google Container Registry este capacitatea de a scana automat containerele pentru vulnerabilit\u0103\u021bi. Cu c\u00e2teva luni \u00een urm\u0103, am creat at\u00e2t containere onbuild, c\u00e2t \u0219i multistadiu, a\u0219a c\u0103 s\u0103 vedem dac\u0103 exist\u0103 vulnerabilit\u0103\u021bi. <\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/0ed3cd7bb8c8f5164e1115e9f1be39d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRezultatul este uimitor: \u00eentr-un container mic au fost descoperite doar 3 vulnerabilit\u0103\u021bi medii, iar \u00een unul mare - 16 critice \u0219i 376 de alte vulnerabilit\u0103\u021bi. Dac\u0103 examin\u0103m con\u021binutul containerului mare, se observ\u0103 c\u0103 cele mai multe probleme de securitate nu au leg\u0103tur\u0103 cu aplica\u021bia noastr\u0103, ci cu programele pe care nici m\u0103car nu le folosim. De aceea, c\u00e2nd oamenii vorbesc despre o mare suprafa\u021b\u0103 pentru atacuri, se refer\u0103 exact la acest lucru. <\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune practici Kubernetes. Crearea de containere mici\" src=\"\/wp-content\/uploads\/2020\/05\/4a782f4a50153adc44042e9234357c02.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nConcluzia este evident\u0103: crea\u021bi containere mici, deoarece acestea ofer\u0103 avantaje reale \u00een ceea ce prive\u0219te performan\u021ba \u0219i securitatea sistemului dumneavoastr\u0103. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502320\/\">Cele mai bune practici Kubernetes. Organizarea Kubernetes cu spa\u021bii de nume<\/a><\/noindex><\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"wGz_cbtCiEA\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/wGz_cbtCiEA\/hqdefault.jpg\" alt=\"Reda\u021bi 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>Pu\u021bin publicitate \ud83d\ude42<\/h3>\n<p>\nMul\u021bumim c\u0103 r\u0103m\u00e2ne\u021bi cu noi. V\u0103 plac articolele noastre? Dori\u021bi s\u0103 vede\u021bi mai multe materiale interesante? Sus\u021bine\u021bi-ne, efectu\u00e2nd o comand\u0103 sau recomand\u00e2ndu-ne prietenilor, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">VPS cloud pentru dezvoltatori de la 4,99 $<\/a><\/noindex>, <b>un echivalent unic pentru serverele entry-level, care a fost creat de noi pentru voi:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Toat\u0103 adev\u0103rul despre VPS (KVM) E5-2697 v3 (6 nuclee) 10GB DDR4 480GB SSD 1Gbps de la 19 $ sau cum s\u0103 \u00eemp\u0103r\u021bi\u021bi corect un server?<\/a><\/noindex> (sunt disponibile op\u021biuni cu RAID1 \u0219i RAID10, p\u00e2n\u0103 la 24 nuclee \u0219i p\u00e2n\u0103 la 40GB DDR4).<\/p>\n<p><b>Dell R730xd la jum\u0103tate de pre\u021b \u00een centrul de date Equinix Tier IV din Amsterdam?<\/b> Numai la noi <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 de la 199 $<\/a><\/noindex> \u00een Olanda! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 de la 99 $!<\/b><\/b> Citi\u021bi despre <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Cum s\u0103 construi\u021bi o infrastructur\u0103 de clas\u0103 enterprise folosind servere Dell R730xd E5-2650 v4 la pre\u021buri foarte mici de 9000 \u20ac?<\/a><\/noindex><br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502052\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 Kubernetes \u2013 \u044d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Docker, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82245,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82244","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.2.1 - aioseo.com -->\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\/ro\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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. \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 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov\" \/>\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-20T11:42:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-20T11:42:45+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\udd47Cele mai bune practici Kubernetes. Crearea containerelor mici | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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. \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 | ProHoster","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","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-20T11:42:45+00:00","article:modified_time":"2020-05-20T11:42:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82244","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:41:28","updated":"2022-09-28 11:52:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/82244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=82244"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/82244\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/82245"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=82244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=82244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=82244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}