{"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\/et\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","title":{"rendered":"Parimad Kubernetes'i praktikad. V\u00e4ikeste konteinerite loomine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/21d8807ed791f0b9ff81494cf1a373c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsimene samm Kubernetes'is juurutamisel on teie rakenduse paigutamine konteinerisse. Selles sarjas vaatleme, kuidas luua v\u00e4ikese ja turvalise konteineri pilti.<br \/>\nDockeri abil pole konteineri piltide loomine kunagi olnud nii lihtne. M\u00e4\u00e4rake p\u00f5hijoon ja lisage oma muudatused ning looge konteiner.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/f144351cc82d46cf3f4a518c6e11faa3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuid kuigi see meetod sobib suurep\u00e4raselt alustamiseks, v\u00f5ivad vaikesed p\u00f5hifotod tuua kaasa suurte haavatavate piltide kasutamise, mis on t\u00e4is turvaprobleeme.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Enamik Docker'i pilte kasutavad peamiseks pildiks Debianit v\u00f5i Ubuntu't, ja kuigi see tagab suurep\u00e4rase \u00fchilduvuse ja lihtsa kohandamise (Docker'i fail vajab ainult kahte koodirida), v\u00f5ivad p\u00f5hifotod lisada teie konteinerisse sadu megabaite t\u00e4iendavat koormust. N\u00e4iteks lihtne node.js rakenduse Go fail \"hello-world\" kaalub umbes 700 megabaiti, samas kui teie rakenduse suurus on vaid paar megabaiti.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/8093421f0f0f61b9daedf8e9530bbd3e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeega on kogu see t\u00e4iendav koormus digitaalruumi raiskamine ning suurep\u00e4rane peidukoht haavatavuste ja turvak\u00fcsimuste jaoks. Seet\u00f5ttu vaatame kaht viisi konteineri pildi suuruse v\u00e4hendamiseks. <\/p>\n<p>Esimene on v\u00e4ikese suurusega p\u00f5hifotode kasutamine, teine on Builder Patterni kujunduspahenduse kasutamine. V\u00e4iksemate p\u00f5hifotode kasutamine on t\u00f5en\u00e4oliselt k\u00f5ige lihtsam viis teie konteineri suuruse v\u00e4hendamiseks. T\u00f5en\u00e4oliselt pakub teie kasutatav keel v\u00f5i virn rakenduse originaalpildi, mis on palju v\u00e4iksem kui vaikepilt. Vaatame meie node.js konteinerit. <\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/df3f744a565465b56adcec6a1c32e501.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVaikimisi on Dockeri baasimage'i node:8 suurus 670 MB ja image'i node:8-alpine suurus vaid 65 MB, mis on k\u00fcmme korda v\u00e4iksem. Kasutades v\u00e4iksemat Alpine'i baasimage'i, v\u00e4hendate oluliselt oma konteineri suurust. Alpine on v\u00e4ike ja kerge Linuxi distributsioon, mis on Dockeri kasutajate seas v\u00e4ga populaarne, kuna see on \u00fchilduv paljude rakendustega, s\u00e4ilitades samas konteinerite v\u00e4ikese suuruse. Erinevalt tavalistest Dockeri image'itest<\/p>\n<p>Et minna v\u00e4iksemale baasimage'ile, v\u00e4rskendage lihtsalt Dockeri faili, et alustada uue baasimage'iga:<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/55a3b8e403bd34896018f92a81a3f251.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00fc\u00fcd, erinevalt vanast onbuild image'ist, peate oma koodi konteinerisse kopeerima ja k\u00f5ik s\u00f5ltuvused installima. Uus Dockeri fail algab image'iga node:alpine, seej\u00e4rel loob koodile katalooge, installib s\u00f5ltuvused NPM-i pakettihalduri abil ja l\u00f5puks k\u00e4ivitab server.js.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/b41c36994fc18dc34fb970a38bc50c9a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle uuenduse abil saadakse k\u00fcmme korda v\u00e4iksema suurusega konteiner. Kui teie programmeerimiskeel v\u00f5i tehnoloogia ei toeta baasimage'i v\u00e4hendamise funktsiooni, kasutage Alpine Linuxi. See annab ka v\u00f5imaluse t\u00e4ielikult hallata konteineri sisu. V\u00e4ikese suurusega baasimage'ide kasutamine on suurep\u00e4rane viis v\u00e4ikeste konteinerite kiireks loomiseks. Kuid veelgi suurema v\u00e4hendamise saavutamiseks v\u00f5ib kasutada Builder Pattern'i.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/c9549f5879058d9734c174e8571b9069.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00f5lgitud keeltes edastatakse l\u00e4htekood k\u00f5igepealt t\u00f5lkijale ja seej\u00e4rel t\u00f5eliselt k\u00e4ivitatakse. Kompileeritavatest keeltest muudetakse l\u00e4htekood esmalt kompileeritud koodiks. Samas kasutab kompileerimine sageli t\u00f6\u00f6riistu, mida tegelikult koodi k\u00e4ivitamiseks ei vajata. See t\u00e4hendab, et saate need t\u00f6\u00f6riistad l\u00f5plikust konteinerist t\u00e4ielikult eemaldada. Selleks v\u00f5ib kasutada Builder Pattern'it.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/9af4d11134c54cbdbd2b020cdf270429.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKood luuakse esimeses konteineris ja kompileeritakse. Seej\u00e4rel pakitakse kompileeritud kood l\u00f5plikku konteinerisse ilma kompilaatorite ja t\u00f6\u00f6riistadeta, mis on vajalikud selle koodi kompileerimiseks. Vaatame seda protsessi l\u00e4bi Go rakenduse. Esiteks, liigume onbuild image'ilt Alpine Linuxile.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/822b67eb28f94c50e7a40af1fe1bfea2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUues Docker-failis algab konteiner pildist golang:alpine. Seej\u00e4rel loob ta katalooge koodi jaoks, kopeerib sinna l\u00e4htekoodi, ehitab selle ja k\u00e4ivitab rakenduse. See konteiner on oluliselt v\u00e4iksem kui onbuild konteiner, kuid see sisaldab siiski kompilaatorit ja teisi Go t\u00f6\u00f6riistu, mis meid tegelikult ei huvita. Seega laseme lihtsalt kompileeritud programmi v\u00e4lja ja pakime selle enda konteinerisse.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/094ac74a24cd723f83ddc34bee64e884.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5ite m\u00e4rgata midagi kummalist selles Docker-failis: see sisaldab kahte FROM rida. Esimene neljast reast n\u00e4eb v\u00e4lja just nagu eelmine Docker-fail, v\u00e4lja arvatud see, et see kasutab m\u00e4rks\u00f5na AS, et nimetada seda etappi. J\u00e4rgmises osas on uus FROM rida, mis v\u00f5imaldab alustada uut pilti, kasutades alusena mitte golang:alpine, vaid Raw alpine.<\/p>\n<p>Raw Alpine Linuxil ei ole peale installitud SSL-sertifikaate, mis toob kaasa enamikus API-\u00fchendustes HTTPS-protokolli t\u00f5rke, seega laseme installida m\u00f5ned juure CA-sertifikaadid.<\/p>\n<p>Ja n\u00fc\u00fcd k\u00f5ige huvitavam: kompileeritud koodi kopeerimiseks esimesest konteinerist teise v\u00f5ime lihtsalt kasutada COpy k\u00e4sku, mis asub teises jaotises 5. reas. See kopeerib ainult \u00fche rakenduse faili ega puuduta Go t\u00f6\u00f6riistu. Uus mitmeastmeline Docker-fail sisaldab konteineri pilti, mille suurus on vaid 12 megabaiti, kuigi algse konteineri pilt oli 700 megabaiti, mis on suur vahe!<br \/>\nSeega on v\u00e4ikeste aluskujutiste ja Builder Pattern'i kasutamine suurep\u00e4rased viisid konteinerite loomiseks, mille suurus on oluliselt v\u00e4iksem ilma palju vaeva n\u00e4gemata.<br \/>\nV\u00f5ib-olla s\u00f5ltuvalt rakenduse tehnoloogiapakist on ka t\u00e4iendavaid viise, kuidas pilti ja konteineri suurust v\u00e4hendada, kuid kas t\u00f5eliselt v\u00e4ikesed konteinerid pakuvad m\u00f5\u00f5detavat eelist? Vaadakem kaht aspekti, kus v\u00e4ikesed konteinerid on \u00e4\u00e4rmiselt t\u00f5husad \u2013 need on j\u00f5udlus ja turvalisus.<\/p>\n<p>Selleks, et hinnata j\u00f5udluse kasvu, vaatleme konteineri loomise, selle registrisse panemise (push) ja sealt eemaldamise (pull) protsessi kestvust. N\u00e4ete, et v\u00e4iksema suurusega konteineril on ilmne eelis suurema konteineri ees.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/f48096cf875dbb34cb473f6296a2b601.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDocker teeb kihtide vahem\u00e4llu salvestamise, seega j\u00e4rgnevate kogumiste tegemine toimub v\u00e4ga kiiresti. Kuid paljudes CI-s\u00fcsteemides, mida kasutatakse konteinerite kogumiseks ja testimiseks, kihte ei vahem\u00e4lustata, mis t\u00e4hendab, et siin on m\u00e4rkimisv\u00e4\u00e4rne aja kokkuhoid. Nagu n\u00e4ete, kestab suure konteineri koostamise aeg s\u00f5ltuvalt teie masina v\u00f5imsusest 34 kuni 54 sekundit, samas kui v\u00e4iksemate konteinerite kasutamisel, mis on v\u00e4hendatud Builder Patterniga, kestab see 23 kuni 28 sekundit. Sellise t\u00fc\u00fcpi operatsioonide korral on j\u00f5udluse kasvu m\u00e4\u00e4r 40-50%. Niisiis, m\u00f5elge lihtsalt, kui tihti te oma koodi loote ja testite.<\/p>\n<p>P\u00e4rast konteineri koostamist peate konteineri pildi (push container image) konteineriregistrisse panema, et saaksite seda hiljem kasutada oma Kubernetes'i klastris. Soovitan kasutada Google'i konteineriregistrit.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/4c5426248c1e1ec6b0a36579db56c725.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKasutades Google Container Registry (GCR), maksate ainult \u201etoore\u201c salvestuse ja v\u00f5rgu eest, lisatasu konteinerite haldamise eest ei k\u00fcsita. See on konfidentsiaalne, turvaline ja v\u00e4ga kiire. GCR kasutab paljusid nippe, et kiirendada pull-operatsiooni. Nagu n\u00e4ete, kestab Docker Container Image'i pildi panemine kasutades go:onbuild olenevalt arvuti j\u00f5udlusest 15 kuni 48 sekundit, samas kui sama operatsioon v\u00e4iksema konteineri puhul kestab 14 kuni 16 sekundit, kusjuures madalama j\u00f5udlusega masinate puhul suureneb kiirus kolm korda. Suuremate masinate puhul on aeg enam-v\u00e4hem sama, kuna GCR kasutab globaalseid vahem\u00e4lusid \u00fcldiste piltide andmebaasi jaoks, seega ei pea te neid \u00fcldse laadima. Madala j\u00f5udlusega arvutis on CPU kitsaskohaks, seega on v\u00e4ikeste konteinerite kasutamise eelis palju tuntavam.<\/p>\n<p>Kui kasutate GCR-i, soovitan tungivalt kasutada Google Container Builderit (GCB) osana teie kogumiss\u00fcsteemist.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/cf97f8636dff16d5663225547bfb0701.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNagu n\u00e4ha, v\u00f5imaldab selle kasutamine saavutada palju paremaid tulemusi Build+Push operatsiooni kestuse v\u00e4hendamisel, v\u00f5rreldes isegi v\u00f5imsa masinaga \u2013 sellisel juhul kiireneb konteinerite koostamise ja saatmise protsess peaaegu kaks korda. Lisaks saad iga p\u00e4ev 120 minutit tasuta koostamist, mis enamikul juhtudel rahuldab konteinerite loomise vajadusi. <\/p>\n<p>Edasi tuleb k\u00f5ige olulisem j\u00f5udlusm\u00f5\u00f5dik \u2013 konteinerite t\u00f5mbamise kiirus. Ja kui sind ei huvita liiga palju push operatsiooni kestus, siis pull protsessi kestus m\u00f5jutab t\u00f5siselt s\u00fcsteemi \u00fcldist j\u00f5udlust. Oletame, et sul on kolm s\u00f5lme sisaldav klaster ja \u00fcks neist eba\u00f5nnestub. Kui kasutad halduss\u00fcsteemi, nagu Google Kubernetes Engine, asendab see automaatselt mittet\u00f6\u00f6tava s\u00f5lme uuega. Kuid see uus s\u00f5lm on t\u00e4iesti t\u00fchi ning pead t\u00f5mbama k\u00f5ik oma konteinerid, et see hakkaks t\u00f6\u00f6tama. Kui pull operatsioon kestab liiga kaua, t\u00f6\u00f6tab kogu selle aja su klaster madalama j\u00f5udlusega.<\/p>\n<p>On palju olukordi, kus see v\u00f5ib juhtuda: see v\u00f5ib olla uue s\u00f5lme lisamine klastrisse, s\u00f5lmede v\u00e4rskendamine v\u00f5i isegi uue konteineri vahetamine juurutamiseks. Seet\u00f5ttu on pull t\u00f5mbamisaega minimeerimine v\u00f5tmetegur. Kindel on see, et v\u00e4ike konteiner laetakse alla palju kiiremini kui suur. Kui kasutad Kuberneteses mitut konteinerit, v\u00f5ib ajakulu olla v\u00e4ga m\u00e4rkimisv\u00e4\u00e4rne.<\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/fb0dacb37e9732fe2954323ee171a723.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVaata antud v\u00f5rdlust: pull operatsioon v\u00e4ikeste konteineritega v\u00f5tab s\u00f5ltuvalt masina v\u00f5imsusest 4-9 korda v\u00e4hem aega kui sama operatsioon go:onbuild kasutamisel. V\u00e4ikese suurusega jagatud aluspiltide kasutamine kiirendab oluliselt aega ja kiirus, millega uued Kuberneteses s\u00f5lmed saavad juurutada ja internetti siseneda.<\/p>\n<p>Vaatame turvalisuse k\u00fcsimust. Arvatakse, et v\u00e4iksemad konteinerid on palju turvalisemad kui suured, kuna nende r\u00fcnnakupind on v\u00e4iksem. Kas see t\u00f5esti nii on? \u00dcks Google Container Registry'i kasulikumaid funktsioone on v\u00f5imalus automaatselt skaneerida teie konteinereid haavatavuste olemasolu osas. M\u00f5ni kuu tagasi l\u00f5in nii onbuild kui ka mitmeastmelisi anumaid, nii et vaatame, kas seal on m\u00f5ni haavatav koht. <\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/0ed3cd7bb8c8f5164e1115e9f1be39d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTulemus on t\u00e4helepanuv\u00e4\u00e4rne: v\u00e4ikestes konteinerites leiti vaid 3 keskmist haavatavust, samas kui suurtes \u2014 16 kriitilist ja 376 muud haavatavust. Kui vaadata suurte konteinerite sisu, on selge, et enamus turvaprobleeme ei ole seotud meie rakendusega, vaid programmidega, mida me isegi ei kasuta. Seega, kui inimesed r\u00e4\u00e4givad suurest r\u00fcnnakupinnast, m\u00f5tlevad nad just sellele. <\/p>\n<p><img decoding=\"async\" alt=\"Parimad Kubernetes&#039;i praktikad. V\u00e4ikeste konteinerite loomine\" src=\"\/wp-content\/uploads\/2020\/05\/4a782f4a50153adc44042e9234357c02.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJ\u00e4reldus on selge: looge v\u00e4ikeseid konteinereid, kuna need pakuvad reaalseid eeliseid teie s\u00fcsteemi j\u00f5udluses ja turvalisuses. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502320\/\">Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil<\/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=\"M\u00e4ngi videot\" 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>Veidi reklaami \ud83d\ude42<\/h3>\n<p>\nAit\u00e4h, et olete meiega. Kas teile meeldivad meie artiklid? Kas soovite n\u00e4ha rohkem huvitavat sisu? Toetage meid, tellides teenuse v\u00f5i soovitades meid tuttavatele. <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">Pilve VPS arendajatele alates $4.99<\/a><\/noindex>, <b>ainulaadne entry-level serverite analoog, mille oleme teie jaoks v\u00e4lja m\u00f5elnud:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Kogu t\u00f5de VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps alates $19 v\u00f5i kuidas jagada serverit \u00f5igesti?<\/a><\/noindex> (saadaval RAID1 ja RAID10 variandid, kuni 24 tuuma ja kuni 40GB DDR4).<\/p>\n<p><b>Dell R730xd on Equinixi Tier IV andmekeskuses Amsterdamis kaks korda odavam?<\/b> Ainult meie juures <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 alates $199<\/a><\/noindex> Hollandis! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 alates $99!<\/b><\/b> Lugege sellest <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Kuidas luua ettev\u00f5tte tasemel infrastruktuuri, kasutades Dell R730xd E5-2650 v4 servereid, mille hind on 9000 eurot, taskukohase hinna eest?<\/a><\/noindex><br \/>\n<br \/>Allikas: <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.1.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\/et\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Kubernetes'i parimad tavad. V\u00e4ikeste konteinerite loomine | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/82244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=82244"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/82244\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/82245"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=82244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=82244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=82244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}