{"id":80076,"date":"2020-05-03T01:42:34","date_gmt":"2020-05-02T23:42:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt"},"modified":"2020-05-03T01:42:34","modified_gmt":"2020-05-02T23:42:34","slug":"proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt","title":{"rendered":"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>M\u00e4rkus t\u00f5lke kohta.<\/b>: see materjal haridusprojektist <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">learnk8s<\/a><\/noindex> \u2014 vastus populaarsele k\u00fcsimusele Kubernetesiga p\u00f5hineva infrastruktuuri projekteerimisel. Loodame, et piisavalt p\u00f5hjalikud iga variandi plusse ja miinuseid k\u00e4sitlevad kirjeldused aitavad teil teha teie projekti jaoks optimaalse valiku.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/d3cc3b7e686e39032b1f02f3e8b6c46c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>TL;DR<\/b>: sama t\u00f6\u00f6kohustuste kogumit saab k\u00e4ivitada mitmes suures klastris (iga klastrile j\u00e4\u00e4b palju t\u00f6\u00f6koormusi) v\u00f5i mitmes v\u00e4ikeses (kus iga klaster sisaldab v\u00e4ikest arvu koormusi).<\/p>\n<p>Allpool on tabel, milles hinnatakse iga l\u00e4henemise plusse ja miinuseid:<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/ab5b5fefc97c3befddbaeb0791f8a90d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes'e kasutamisel rakenduste haldamise platvormina tekivad sageli m\u00f5ned p\u00f5hik\u00fcsimused klastrite seadistamise n\u00fcansside kohta:<\/p>\n<ul>\n<li> <i>Kui palju klastreid kasutada?<\/i><\/li>\n<li> <i>Kui suured need peaksid olema?<\/i><\/li>\n<li> <i>Mida peaks iga kluster sisaldama?<\/i><\/li>\n<\/ul>\n<p>\nSelles artiklis proovin vastata k\u00f5ikidele nendele k\u00fcsimustele, anal\u00fc\u00fcsides iga l\u00e4henemise plusse ja miinuseid.<\/p>\n<h2>K\u00fcsimuse p\u00fcstitamine<\/h2>\n<p>\nTarkvara looja, arvatavasti arendate ja hallate mitmeid rakendusi samal ajal.<\/p>\n<p>Lisaks k\u00e4ivitatakse t\u00f5en\u00e4oliselt nende rakenduste mitmed eksemplarid erinevates keskkondades \u2014 n\u00e4iteks v\u00f5ivad need olla <i>dev<\/i>, <i>test<\/i> ja <i>prod<\/i>.<\/p>\n<p>Tulemusena tekib terve rakenduste ja keskkondade maatriks:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/f2a811fa82e1e433463ba25d29f837e6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Rakendused ja keskkonnad<\/i><\/p>\n<p>\u00dclaltoodud n\u00e4ites on esitatud 3 rakendust ja 3 keskkonda, mis kokku annab 9 v\u00f5imalikku varianti.<\/p>\n<p>Iga rakenduse eksemplar on iseseisev deployment-\u00fcksus, millega saab t\u00f6\u00f6tada s\u00f5ltumatult teistest.<\/p>\n<p><i>Pange t\u00e4hele, et <b>rakenduse eksemplar<\/b> v\u00f5ib koosneda paljusid <b>komponendid<\/b>, nagu frontend, backend, andmebaas jne. Mikroteenuse rakenduse puhul sisaldab eksemplar k\u00f5iki mikroteenuseid.<\/i><\/p>\n<p>Tulemuseks tekivad Kubernetes'e kasutajatel mitmed k\u00fcsimused:<\/p>\n<ul>\n<li> Kas k\u00f5iki rakenduse eksemplare peaks olema \u00fches klastris?<\/li>\n<li> Kas peaks t\u00f6\u00f6tama eraldi kluster iga rakenduse eksemplari jaoks?<\/li>\n<li> V\u00f5i v\u00f5ib-olla tuleks kasutada \u00fclaltoodud l\u00e4henemiste kombinatsiooni?<\/li>\n<\/ul>\n<p>\nK\u00f5ik need variandid on t\u00e4iesti eluj\u00f5ulised, kuna Kubernetes on paindlik s\u00fcsteem, mis ei piira kasutaja v\u00f5imalusi.<\/p>\n<p>Siin on m\u00f5ned v\u00f5imalikud teed:<\/p>\n<ul>\n<li> \u00fcks suur \u00fchine klaster;<\/li>\n<li> palju v\u00e4ikeseid kitsalt spetsialiseeritud klastri;<\/li>\n<li> \u00fcks klaster iga rakenduse jaoks;<\/li>\n<li> \u00fcks klaster iga keskkonna jaoks.<\/li>\n<\/ul>\n<p>\nNagu allpool n\u00e4idatud, on kaks esimest l\u00e4henemist skaala variantide vastupidistes otsades:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/99b8fd0d1e4173705e7996cf8ccb6eec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Mitmest suurest klastrist (vasakul) kuni paljude v\u00e4ikesteni (paremal)<\/i><\/p>\n<p><i>\u00dcldiselt peetakse \u00fchte klastrit 'suuremaks' kui teist, kui sellel on rohkem s\u00f5lmi ja pod'e. N\u00e4iteks on klaster, kus on 10 s\u00f5lme ja 100 pod'i, suurem kui klaster, kus on 1 s\u00f5lm ja 10 pod'i.<\/i><\/p>\n<p>Nojah, alustagem!<\/p>\n<h2>1. \u00dcks suur \u00fchine klaster<\/h2>\n<p>\nEsimene valik on paigutada k\u00f5ik t\u00f6\u00f6koormused \u00fchte klastrisse:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/283fc3c3f5ccb40a157ccff600628114.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u00dcks suur klaster<\/i><\/p>\n<p>Selle l\u00e4henemise kohaselt kasutatakse klastrit universaalse <b>infrastruktuuri platvormina<\/b> \u2014 k\u00f5ik vajalik on lihtsalt olemasolevas Kubernetes klastris.<\/p>\n<p><i><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/working-with-objects\/namespaces\/\">Nimi ruumid<\/a><\/noindex> Kubernetes v\u00f5imaldab loogiliselt eraldada klastriosa \u00fcksteisest, nii et iga rakenduse eksemplari jaoks saab kasutada oma ruumi.<\/i><\/p>\n<p><i>Vaadakem selle l\u00e4henemise plusse ja miinuseid.<\/i><\/p>\n<h3>+ T\u00f5hus ressursside kasutamine<\/h3>\n<p>\nAinus klaster n\u00f5uab vaid \u00fchte koopiat k\u00f5igist ressurssidest, mis on vajalikud Kubernetes klastrite k\u00e4itamiseks ja haldamiseks.<\/p>\n<p>N\u00e4iteks kehtib see master-s\u00f5lmede kohta. Tavaliselt on igal Kubernetes klastril 3 master-s\u00f5lme, nii et \u00fches ainsas klastris j\u00e4\u00e4b nende arv selleks (v\u00f5rdluseks, 10 klastrisse vajatakse 30 master-s\u00f5lme).<\/p>\n<p>\u00dclaltoodud n\u00fcanss kehtib ka teiste teenuste suhtes, mis toimivad kogu klastris, nagu koormuse tasakaalustajad, Ingress'i kontrollerid, autentimiss\u00fcsteemid, logimise ja j\u00e4lgimise s\u00fcsteemid.<\/p>\n<p>\u00dches klastris saab kasutada k\u00f5iki neid teenuseid k\u00f5igi t\u00f6\u00f6koormuste jaoks (ei ole vaja luua nende koopiaid, nagu mitme klastriga).<\/p>\n<h3>+ Odavus<\/h3>\n<p>\nNagu eelnevalt mainitud, on v\u00e4iksem arv klastreid tavaliselt odavam, kuna puuduvad kulud liigsetele ressurssidele.<\/p>\n<p>See kehtib eriti master-s\u00f5lmede kohta, mis v\u00f5ivad maksma minna, olenemata paigutusviisist (on-premises v\u00f5i pilves).<\/p>\n<p>M\u00f5ned hallatud Kubernetes teenused, nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\">Google Kubernetes Engine (GKE)<\/a><\/noindex> v\u00f5i <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/\">Azure Kubernetes Service (AKS)<\/a><\/noindex>, pakuvad tasuta haldustasandi. Sel juhul on kulude k\u00fcsimus v\u00e4hem terav.<\/p>\n<p>Samuti on olemas hallatud teenused, mis k\u00fcsivad fikseeritud tasu iga Kubernetesi klastrite t\u00f6\u00f6 eest (n\u00e4iteks, <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/eks\/\">Amazon Elastic Kubernetes Service, EKS<\/a><\/noindex>).<\/p>\n<h3>+ T\u00f5hus haldamine<\/h3>\n<p>\n\u00dche klasteri haldamine on lihtsam kui mitme.<\/p>\n<p>Haldamine v\u00f5ib h\u00f5lmata j\u00e4rgmisi \u00fclesandeid:<\/p>\n<ul>\n<li> Kubernetes'i versiooni uuendamine;<\/li>\n<li> CI\/CD kanali seadistamine;<\/li>\n<li> CNI pistikprogrammi installimine;<\/li>\n<li> Kasutajate autentimiss\u00fcsteemi seadistamine;<\/li>\n<li> Juhtimise kontrolleri installimine;<\/li>\n<\/ul>\n<p>\nja palju teisi\u2026<\/p>\n<p>\u00dche klasteri korral tuleb sellega tegeleda ainult \u00fcks kord.<\/p>\n<p>Mitmete klastrite puhul tuleb operatsioone korduvalt l\u00e4bi viia, mis v\u00f5ib vajada mingit automatiseerimist ja t\u00f6\u00f6riistu, et tagada protsessi s\u00fcsteemsus ja \u00fchtsus.<\/p>\n<p><i>N\u00fc\u00fcd on m\u00f5ned s\u00f5nad miinustest.<\/i><\/p>\n<h3>\u2212 \u00dcksik eba\u00f5nnestumise punt<\/h3>\n<p>\nKui <i>ainus<\/i> klaster eba\u00f5nnestub, l\u00f5petavad koheselt <i>k\u00f5ik<\/i> t\u00f6\u00f6tavad koormused t\u00f6\u00f6!<\/p>\n<p>On palju olukordi, kus midagi v\u00f5ib valesti minna:<\/p>\n<ul>\n<li> Kubernetes'i uuendamine toob ootamatuid k\u00f5rvalm\u00f5jusid;<\/li>\n<li> \u00fcldklastri komponent (nt CNI pistikprogramm) hakkab toimima mitte ootusp\u00e4raselt;<\/li>\n<li> \u00fcks klastrikomponent on vale seadistusega;<\/li>\n<li> rikke alumises infrastruktuuris.<\/li>\n<\/ul>\n<p>\n\u00dcks selline juhtum v\u00f5ib p\u00f5hjustada t\u00f5sist kahju k\u00f5igile t\u00f6\u00f6tavatele koormustele, mis asuvad \u00fcldklastri sees.<\/p>\n<h3>\u2212 Rangete isolatsiooni puudumine<\/h3>\n<p>\nT\u00f6\u00f6tamine \u00fcldklastri sees t\u00e4hendab, et rakendused jagavad sama riistvara, v\u00f5rgu v\u00f5imekuse ja operatsioonis\u00fcsteemi klastris asuvatel s\u00f5lmedel.<\/p>\n<p>Teatud m\u00f5ttes on kaks konteinerit, millel t\u00f6\u00f6tab kaks erinevat rakendust \u00fche ja sama s\u00f5lme peal, sarnased kahele protsessile, mis t\u00f6\u00f6tavad \u00fche masina alla \u00fche ja sama OS tuuma all.<\/p>\n<p><i>Linuxi konteinerid pakuvad mingit vormi isolatsiooni, kuid see ei ole nii tugev nagu virtuaalmasinate pakutud. Sisuliselt on konteineris t\u00f6\u00f6tav protsess sama, mis t\u00f6\u00f6tasu host-operatsioonis\u00fcsteemi alla.<\/i><\/p>\n<p>See v\u00f5ib olla probleemiks turvalisuse seisukohalt: selline \u00fclesehitus v\u00f5imaldab teoreetiliselt erinevatel rakendustel \u00fcksteisega suhelda (kas tahtlikult v\u00f5i juhuslikult).<\/p>\n<p>Lisaks kasutavad k\u00f5ik Kubernetes klusteris olevad t\u00f6\u00f6kohustused \u00fchiselt m\u00f5ningaid klusteri teenuseid, nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/dns-pod-service\/\">DNS<\/a><\/noindex> \u2014 see v\u00f5imaldab rakendustel leida teiste rakenduste teenuseid klastris.<\/p>\n<p><i>K\u00f5ik eeltoodud punktid v\u00f5ivad omada erinevat t\u00e4hendust s\u00f5ltuvalt rakenduste turvan\u00f5uetest.<\/i><\/p>\n<p>Kubernetes pakub erinevaid t\u00f6\u00f6riistu turvaprobleemide v\u00e4ltimiseks, nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/pod-security-policy\/\">PodSecurityPolicies<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/network-policies\/\">NetworkPolicies<\/a><\/noindex>. Kuid nende korrektseks seadistamiseks on vajalik teatav kogemus, lisaks ei suuda need suletud k\u00f5ik turvavigu.<\/p>\n<p>Oluline on alati meeles pidada, et Kubernetes loomulikult on loodud <i>koost\u00f6\u00f6ks<\/i>, mitte <i>isoleerimiseks ja turvalisuseks<\/i>.<\/p>\n<h3>\u2212 Puudub range multi-tenancy<\/h3>\n<p>\nArvestades Kubernetes klustrite rohkust, on olemas palju viise, kuidas erinevad rakendused v\u00f5ivad \u00fcksteisele 'jalgu astuda'.<\/p>\n<p>N\u00e4iteks v\u00f5ib rakendus monopoliseerida mingi \u00fchise ressursi (nt CPU v\u00f5i m\u00e4lu) ja j\u00e4tta teised samal s\u00f5lmel t\u00f6\u00f6tavad rakendused sellelt p\u00e4\u00e4semata.<\/p>\n<p>Kubernetes tagab erinevaid mehhanisme sellise k\u00e4itumise kontrollimiseks, nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-compute-resources-container\/\">ressursside p\u00e4ringud ja piirangud<\/a><\/noindex> <i>vt ka artiklit \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/489668\/\"> CPU-limiidid ja agressiivne throttling Kubernetes'is <\/a><\/noindex>\u00bb \u2014 t\u00f5lkija m\u00e4rkus)<\/i>, <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/resource-quotas\/\">ResourceQuotas<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/limit-range\/\">LimitRanges<\/a><\/noindex>. Kuid nagu turvalisuse korral, on nende seadistamine \u00fcsna keeruline ja nad ei suuda v\u00e4ltida k\u00f5iki etten\u00e4gematuid k\u00f5rvalm\u00f5jusid.<\/p>\n<h3>\u2212 Suur hulk kasutajaid<\/h3>\n<p>\n\u00dcksiku klustri puhul tuleb sellele anda juurdep\u00e4\u00e4s paljudele inimestele. Mida rohkem inimesi, seda suurem on oht, et nad midagi \"katkestavad\".<\/p>\n<p>Klastri sees saab kontrollida, kes ja mida teha saab <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/rbac\/\">rollip\u00f5hise ligip\u00e4\u00e4su haldusingi (RBAC) kaudu<\/a><\/noindex> <i>vt artiklit \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/470503\/\"> Kasutajad ja RBAC autoriseerimine Kuberneteses <\/a><\/noindex>\u00bb \u2014 t\u00f5lkija m\u00e4rkus)<\/i>. Siiski ei takista see kasutajaid \"midagi katki tegema\" oma vastutusalas.<\/p>\n<h3>\u2212 Klastrid ei saa l\u00f5pmatult kasvada<\/h3>\n<p>\nKlastrit, mida kasutatakse k\u00f5igi t\u00f6\u00f6koormuste jaoks, peetakse t\u00f5en\u00e4oliselt v\u00e4ga suureks (s\u00f5lmede ja pod'ide arvu poolest).<\/p>\n<p>Kuid sellega tekib teine probleem: Kubernetes'e klastrid ei saa l\u00f5pmatult kasvada.<\/p>\n<p>Klastri suurusele on teoreetiline piir. Kuberneteses on see umbes <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/setup\/best-practices\/cluster-large\/\">5000 s\u00f5lme, 150 tuhat pod'i ja 300 tuhat konteinerit<\/a><\/noindex>.<\/p>\n<p>Kuid reaalses elus v\u00f5ivad probleemid alata palju varem - n\u00e4iteks vaid <noindex><a rel=\"nofollow\" href=\"https:\/\/events19.lfasiallc.com\/wp-content\/uploads\/2017\/11\/BoF_-Not-One-Size-Fits-All-How-to-Size-Kubernetes-Clusters_Guang-Ya-Liu-_-Sahdev-Zala.pdf\">500 s\u00f5lmel<\/a><\/noindex>.<\/p>\n<p>Asi on selles, et suured klastrid koormavad Kubernetes'e juhtimistaset. Teisis\u00f5nu, et hoida klastrit t\u00f6\u00f6korras ja ressursse t\u00f5husalt kasutada, on vajalik hoolikas h\u00e4\u00e4lestamine.<\/p>\n<p><i>Seda probleemi k\u00e4sitletakse vastavas artiklis originaalblogis pealkirjaga \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/kubernetes-node-size\">Kubernetes klastrite arhitektuur \u2014 t\u00f6\u00f6tluss\u00f5lme suuruse valimine<\/a><\/noindex>\u00bb.<\/i><\/p>\n<p><i>Kuid vaatame vastupidist l\u00e4henemist: palju v\u00e4ikeseid klastreid.<\/i><\/p>\n<h2>2. Palju v\u00e4ikeseid, spetsialiseeritud klastreid<\/h2>\n<p>\nSelle l\u00e4henemise korral kasutate iga juurutatava elemendi jaoks eraldi klastrit:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/2320f62d945944f2e26f07252e9b8440.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Palju v\u00e4ikeseid klastreid<\/i><\/p>\n<p>Selle artikli kontekstis m\u00f5istetakse <i>juurutatavana<\/i> rakenduse eksemplari - n\u00e4iteks \u00fche rakenduse dev-versiooni.<\/p>\n<p>Selles strateegias kasutatakse Kubernetes't kui spetsialiseeritud <b>t\u00e4itmisv\u00f5imet<\/b> erinevate rakenduse eksemplaride jaoks.<\/p>\n<p><i>Vaadakem selle l\u00e4henemise plusse ja miinuseid.<\/i><\/p>\n<h3>+ Piiratud \u201eplahvatuse raadius\u201c<\/h3>\n<p>\nKlastri 'riknenud' korral on negatiivsed tagaj\u00e4rjed piiratud vaid nende t\u00f6\u00f6koormustega, mis olid selles klastris juurutatud. K\u00f5ik teised t\u00f6\u00f6koormused j\u00e4\u00e4vad puutumata.<\/p>\n<h3>+ Isolatsioon<\/h3>\n<p>\nIseseisvates klastrites paigutatud t\u00f6\u00f6koormustel puuduvad \u00fchised ressursid, nagu protsessor, m\u00e4lu, operatsioonis\u00fcsteem, v\u00f5rk v\u00f5i muud teenused.<\/p>\n<p>Tulemuseks on range isolatsioon omavahel seotud rakenduste vahel, mis v\u00f5ib positiivselt m\u00f5jutada nende turvalisust.<\/p>\n<h3>+ V\u00e4ike kasutajate arv<\/h3>\n<p>\nKuna igas klastris on vaid piiratud arv t\u00f6\u00f6koormusi, v\u00e4heneb sellele p\u00e4\u00e4supunktide arv.<\/p>\n<p>Mida v\u00e4hem inimesi p\u00e4\u00e4seb klastrisse, seda madalam on risk, et midagi \u201ekatkeb\u201d.<\/p>\n<p><i>Vaatame puudusi.<\/i><\/p>\n<h3>\u2212 T\u00f5hususe puudumine ressursside kasutuses<\/h3>\n<p>\nNagu varem mainitud, vajab iga Kubernetes'e klaster teatud hulga juhtimisresources'e: master-s\u00f5lmed, juhtimistaseme komponendid, j\u00e4lgimise ja logimise lahendused.<\/p>\n<p>Paljude v\u00e4ikeste klastrite korral tuleb juhtimisele suunata suurem osa ressursse.<\/p>\n<h3>\u2212 Kulukus<\/h3>\n<p>\nEbaefektiivne ressursside kasutamine toob automaatselt kaasa k\u00f5rged kulud.<\/p>\n<p>N\u00e4iteks 30 master-s\u00f5lme sisu asemel kolme sama arvutustehnika puhul kajastub see kindlasti kuludes.<\/p>\n<h3>\u2212 Halduse keerukus<\/h3>\n<p>\nKubeclustere haldamine on oluliselt keerulisem kui \u00fchega t\u00f6\u00f6tamine.<\/p>\n<p>N\u00e4iteks tuleb iga klastrile seadistada autentimine ja autoriseerimine. Kubernetesi versiooniuuendust tuleb samuti teha mitu korda.<\/p>\n<p>T\u00f5en\u00e4oliselt tuleb rakendada automatiseerimist, et saavutada nende \u00fclesannete t\u00f5husus.<\/p>\n<p><i>N\u00fc\u00fcd vaatame v\u00e4hem \u00e4\u00e4rmuslikke stsenaariume.<\/i><\/p>\n<h2>3. \u00dcks klaster igale rakendusele<\/h2>\n<p>\nSelle l\u00e4henemise kohaselt loote iga konkreetse rakenduse k\u00f5ikide instantside jaoks eraldi klastrite:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/238ee74d4e4dc42b7daeadc1ce484905.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Klaster rakendusele<\/i><\/p>\n<p>Seda teed v\u00f5ib pidada \u201e<b>eraldiseisva klastri igale meeskonnale<\/b>\u201d, kuna tavaliselt tegeleb inseneride meeskond \u00fche v\u00f5i mitme rakenduse arendamisega.<\/p>\n<p><i>Vaadakem selle l\u00e4henemise plusse ja miinuseid.<\/i><\/p>\n<h3>+ Klaster saab rakendusele kohandada<\/h3>\n<p>\nKui rakendusel on erilisi vajadusi, saab need klastris ellu viia, m\u00f5jutamata teisi klastreid.<\/p>\n<p>Sellised vajadused v\u00f5ivad h\u00f5lmata GPU-d t\u00f6\u00f6tlevaid t\u00f6\u00f6tajaid, teatud CNI pluginaid, teenuste v\u00f5rku v\u00f5i m\u00f5nda muud teenust.<\/p>\n<p>Iga klaster saab kohandada nii, et see sisaldab ainult seda, mis on vajalik t\u00f6\u00f6tavas rakenduses.<\/p>\n<h3>\u2212 Erinevad keskkonnad \u00fches klastris<\/h3>\n<p>\nSelle l\u00e4henemise puuduseks on see, et erinevate keskkondade rakenduste instantsid elavad \u00fches klastris koos.<\/p>\n<p>N\u00e4iteks prod-versioon rakendusest t\u00f6\u00f6tab samas klastris kui dev-versioon. See t\u00e4hendab ka seda, et arendajad t\u00f6\u00f6tavad samas klastris, kus toimib rakenduse tootmisversioon.<\/p>\n<p>Kui arendajate tegevuse v\u00f5i dev-versiooni vead p\u00f5hjustavad klastris t\u00f5rke, v\u00f5ivad potentsiaalselt kannatada ka prod-versioon \u2014 see on tohutu puudus sellise l\u00e4henemise puhul.<\/p>\n<p><i>Ja l\u00f5puks, meie nimekirjas viimane stsenaarium.<\/i><\/p>\n<h2>4. \u00dcks klaster igale keskkonnale<\/h2>\n<p>\nSee stsenaarium eeldab igale keskkonnale eraldi klastri eraldamist:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-klastrite projekteerimine: kui palju neid peaks olema?\" src=\"\/wp-content\/uploads\/2020\/05\/157da599edf178832b1b15459786fbc8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u00dcks klaster keskkonna jaoks<\/i><\/p>\n<p>N\u00e4iteks v\u00f5ivad teil olla klastrid <i>dev<\/i>, <i>test<\/i> ja <i>prod<\/i>, kus k\u00e4itate k\u00f5iki rakenduse instantside, mis on m\u00f5eldud teatud keskkonna jaoks.<\/p>\n<p><i>Siin on sellise l\u00e4henemise plussid ja miinused.<\/i><\/p>\n<h3>+ Prod keskkonna isolatsioon<\/h3>\n<p>\nSelle l\u00e4henemise raames on k\u00f5ik keskkonnad teineteisest isoleeritud. Praktiliselt on see eriti oluline prod-keskkonna jaoks.<\/p>\n<p>Rakenduse tootmisversioon ei s\u00f5ltu n\u00fc\u00fcd teiste klastrite ja keskkondade tegevusest.<\/p>\n<p>Seega, kui dev-klastris tekib \u00fcllatuslik probleem, j\u00e4tkavad tootmisversioonid t\u00f6\u00f6d nagu poleks midagi juhtunud.<\/p>\n<h3>+ Klastri saab kohandada keskkonna j\u00e4rgi<\/h3>\n<p>\nIga klastrit saab kohandada selle keskkonna j\u00e4rgi. N\u00e4iteks saab:<\/p>\n<ul>\n<li> paigaldada dev-klastrisse arendus- ja t\u00f5rkeotsingu t\u00f6\u00f6riistad;<\/li>\n<li> paigaldada testimisraamistikke ja t\u00f6\u00f6riistu klastrisse <i>test<\/i>;<\/li>\n<li> kasutada v\u00f5imsamat riistvara ja v\u00f5rgu\u00fchendusi klastris <i>prod<\/i>.<\/li>\n<\/ul>\n<p>\nSee suurendab nii arenduse kui ka rakenduste kasutamise efektiivsust.<\/p>\n<h3>+ Juurdep\u00e4\u00e4su piiramine tootmis-klastrile<\/h3>\n<p>\nVajadus t\u00f6\u00f6tada otse prod-klastriga tekib harva, seet\u00f5ttu saab oluliselt piirata isikute ringi, kellel on sellele juurdep\u00e4\u00e4s.<\/p>\n<p>Saame minna veelgi kaugemale ja v\u00f5tta inimestelt t\u00e4ielikult juurdep\u00e4\u00e4s sellele klastrile, ning k\u00f5ik juurutamised teha automatiseeritud CI\/CD t\u00f6\u00f6riista abil. Selline l\u00e4henemine v\u00e4hendab oluliselt inimlike vigade riski seal, kus see on k\u00f5ige kriitilisem.<\/p>\n<p><i>N\u00fc\u00fcd on m\u00f5ned s\u00f5nad miinustest.<\/i><\/p>\n<h3>\u2212 Erinevuste puudumine rakenduste vahel<\/h3>\n<p>\nPeamine puudus on rakenduste vahelise riist- ja ressursi eraldatuse puudumine.<\/p>\n<p>Sidumata rakendused kasutavad koos klastrite ressursse: s\u00fcsteemi kerneli, protsessorit, m\u00e4lu ja m\u00f5ned muud teenused.<\/p>\n<p>Nagu juba mainitud, v\u00f5ib see potentsiaalselt olla ohtlik.<\/p>\n<h3>\u2212 Rakenduste s\u00f5ltuvuste lokaliseerimise v\u00f5imatus<\/h3>\n<p>\nKui rakendusel on erilised n\u00f5uded, tuleb neid rahuldada k\u00f5igis klastrites.<\/p>\n<p>N\u00e4iteks, kui rakendus vajab GPU-d, peab igas klastris olema v\u00e4hemalt \u00fcks t\u00f6\u00f6tleja GPU-ga (isegi kui seda kasutatakse ainult selle rakenduse poolt).<\/p>\n<p>Tulemuseks on k\u00f5rgemad kulud ja ebaefektiivne ressursside kasutamine.<\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nTeatud rakenduste komplekti korral saab neid paigutada mitmesse suuresse klastrisse v\u00f5i paljusid pisikesi.<\/p>\n<p>Artiklis k\u00e4sitletakse erinevate l\u00e4henemisviiside plusse ja miinuseid, alates \u00fchest globaalsest klastrist kuni mitme v\u00e4ikese ja kitsalt spetsialiseeritud klastrini:<\/p>\n<ul>\n<li> \u00fcks suur \u00fchine klaster;<\/li>\n<li> palju v\u00e4ikeseid kitsalt spetsialiseeritud klastri;<\/li>\n<li> \u00fcks klaster iga rakenduse jaoks;<\/li>\n<li> \u00fcks klaster iga keskkonna jaoks.<\/li>\n<\/ul>\n<p>\n<i>Nii et, millist l\u00e4henemist valida?<\/i><\/p>\n<p>Kuidas tavaliselt, s\u00f5ltub vastus kasutusstsenaariumist: peate kaaluma erinevate l\u00e4henemisviiside plusse ja miinuseid ning valima optimaalse variandi.<\/p>\n<p>Kuid valik ei piirdu ainult eelpooltoodud n\u00e4idetega - v\u00f5ite kasutada mis tahes nende kombinatsiooni!<\/p>\n<p>N\u00e4iteks, v\u00f5ite korraldada paar klastrit iga tiimi jaoks: klaster arendamiseks (kus on keskkonnad <i>dev<\/i> ja <i>test<\/i>) ja klaster <i>production<\/i> (kus asub tootmis keskkond).<\/p>\n<p>Tuginedes sellele artiklile, suudate vastavalt optimeerida plussid ja miinused konkreetse stsenaariumi jaoks. Edu!<\/p>\n<h2>P.S.<\/h2>\n<p>\nLugege ka meie blogist:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/484954\/\">Visuaalne juhend Kubernetesi t\u00f5rkeotsinguks<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/480946\/\">Logid Kuberneteses (ja mitte ainult) t\u00e4na: ootused ja reaalsus<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/478306\/\">Service Mesh: mida iga tarkvarainsener peab teadma k\u00f5ige kuumemast tehnoloogiast<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468679\/\">Kubernetes\u2019i turvalisuse abecedaar: autentimine, autoriseerimine, audit<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/498100\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u043e\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u0442 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 learnk8s \u2014 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0430 \u0431\u0430\u0437\u0435 Kubernetes. \u041d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043b\u044e\u0441\u043e\u0432 \u0438 \u043c\u0438\u043d\u0443\u0441\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0438 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. TL;DR: \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043d\u0430\u0431\u043e\u0440 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 (\u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80077,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80076","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=\"description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\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\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt\" \/>\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\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432: \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0445 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt\" \/>\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-02T23:42:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-02T23:42:34+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 klastrite projekteerimine: kui palju neid peaks olema? | ProHoster","description":"M\u00e4rkus.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt","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\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432: \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0445 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c? | ProHoster","og:description":"\u041f\u0440\u0438\u043c.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt","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-02T23:42:34+00:00","article:modified_time":"2020-05-02T23:42:34+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80076","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 16:24:58","updated":"2022-10-02 20:23:35","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\/80076","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=80076"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/80076\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/80077"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=80076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=80076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=80076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}