Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Kubernetes geriausia praktika. Mažų konteinerių kūrimas

Kai pradedate kurti vis daugiau Kubernetes paslaugų, iš pradžių paprastos užduotys tampa sudėtingesnės. Pavyzdžiui, kūrimo komandos negali kurti paslaugų ar diegimų tuo pačiu pavadinimu. Jei turite tūkstančius ankščių, paprasčiausias jų įtraukimas į sąrašą užtruks daug laiko, jau nekalbant apie tinkamą jų tvarkymą. Ir tai tik ledkalnio viršūnė.

Pažiūrėkime, kaip vardų erdvė palengvina Kubernetes išteklių valdymą. Taigi, kas yra vardų erdvė? Vardų erdvę galima įsivaizduoti kaip virtualų klasterį jūsų „Kubernetes“ klasteryje. Viename Kubernetes klasteryje galite turėti kelias vardų sritis, atskirtas viena nuo kitos. Jie tikrai gali padėti jums ir jūsų komandoms organizuoti, užtikrinti saugumą ir net sistemos veikimą.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Daugumoje „Kubernetes“ paskirstymų klasteris išeina su vardų erdve, vadinama „numatytuoju“. Iš tikrųjų „Kubernetes“ naudoja tris vardų sritis: numatytoji, „kube-system“ ir „kube-public“. Šiuo metu Kube-public nenaudojama labai dažnai.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Palikti vieną kube vardų erdvę yra gera idėja, ypač valdomoje sistemoje, pvz., „Google Kubernetes Engine“. Ji naudoja „numatytąją“ vardų sritį kaip vietą, kur kuriamos jūsų paslaugos ir programos. Jame nėra nieko ypatingo, išskyrus tai, kad „Kubernetes“ yra sukonfigūruotas naudoti jį iš karto, ir jūs negalite jo pašalinti. Tai puikiai tinka pradedantiesiems ir mažo našumo sistemoms, tačiau didelėse gamybos sistemose nerekomenduočiau naudoti numatytosios vardų srities. Pastaruoju atveju viena kūrėjų komanda gali nesunkiai perrašyti kažkieno kodą ir sulaužyti kitos komandos darbą to net nesuvokdama.

Todėl turėtumėte sukurti kelias vardų erdves ir naudoti jas paslaugoms segmentuoti į valdomus vienetus. Vardų erdvę galima sukurti viena komanda. Jei norite sukurti vardų erdvę pavadinimu test, naudokite komandą $ kubectl Create namespace test arba tiesiog sukurkite YAML failą ir naudokite jį kaip bet kurį kitą Kubernetes šaltinį.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Visas vardų sritis galite peržiūrėti naudodami komandą $ kubectl get vardų erdvė.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Kai tai bus padaryta, pamatysite tris integruotas vardų sritis ir naują vardų sritį, pavadintą „testas“. Pažiūrėkime į paprastą YAML failą, kad sukurtume podėlį. Pastebėsite, kad vardų erdvė neminima.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Jei šiam failui paleisti naudosite kubectl, šiuo metu aktyvioje vardų erdvėje bus sukurtas mypod modulis. Tai bus numatytoji vardų sritis, kol ją nepakeisite. Yra 2 būdai, kaip nurodyti „Kubernetes“, kurioje vardų erdvėje norite sukurti savo išteklius. Pirmasis būdas yra naudoti vardų erdvės vėliavėlę kuriant išteklius.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Antrasis būdas yra nurodyti vardų erdvę YAML deklaracijoje.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Jei nurodysite vardų erdvę YAML, išteklius visada bus sukurtas toje vardų erdvėje. Jei bandysite naudoti kitą vardų erdvę naudodami vardų erdvės vėliavėlę, komanda nepavyks. Dabar, jei bandysite rasti savo ankštį, negalėsite to padaryti.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Taip nutinka todėl, kad visos komandos vykdomos už šiuo metu aktyvios vardų srities ribų. Norėdami rasti savo grupę, turite naudoti vardų srities vėliavėlę, tačiau tai greitai pasidaro nuobodu, ypač jei esate kūrėjas komandoje, kuri naudoja savo vardų erdvę ir nenori naudoti šios vėliavėlės kiekvienai komandai. Pažiūrėkime, kaip galime tai ištaisyti.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Iš pradžių jūsų aktyvi vardų sritis vadinama numatytoji. Jei nenurodysite vardų erdvės šaltinyje YAML, visos Kubernetes komandos naudos šią aktyvią numatytąją vardų erdvę. Deja, bandymas valdyti aktyvią vardų erdvę naudojant kubectl gali nepavykti. Tačiau yra labai geras įrankis, vadinamas Kubens, kuris labai palengvina šį procesą. Kai vykdote komandą kubens, matote visas vardų sritis su paryškinta aktyvia vardų erdve.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Norėdami perjungti aktyvią vardų erdvę į bandomąją vardų erdvę, tiesiog paleiskite komandą $kubens test. Jei dar kartą paleisite komandą $kubens, pamatysite, kad dabar yra paskirta nauja aktyvi vardų erdvė – testuokite.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Tai reiškia, kad jums nereikia vardų erdvės vėliavėlės, kad pamatytumėte grupę bandomojoje vardų erdvėje.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Tokiu būdu vardų erdvės yra paslėptos viena nuo kitos, bet nėra izoliuotos viena nuo kitos. Paslauga vienoje vardų srityje gali gana lengvai susisiekti su paslauga kitoje vardų srityje, o tai dažnai yra labai naudinga. Galimybė bendrauti skirtingose ​​vardų srityse reiškia, kad jūsų kūrėjų paslauga gali susisiekti su kitos kūrėjų komandos paslauga kitoje vardų srityje.

Paprastai, kai jūsų programa nori pasiekti Kubernetes paslaugą, naudojate integruotą DNS aptikimo paslaugą ir tiesiog suteikiate programai paslaugos pavadinimą. Tačiau tai darydami galite sukurti paslaugą tuo pačiu pavadinimu keliose vardų srityse, o tai nepriimtina.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Laimei, tai lengva padaryti naudojant išplėstinę DNS adreso formą. „Kubernetes“ paslaugos atskleidžia savo galinius taškus naudodamos bendrą DNS šabloną. Tai atrodo maždaug taip:

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Paprastai jums tereikia paslaugos pavadinimo, o DNS automatiškai nustatys visą adresą.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Tačiau jei jums reikia pasiekti paslaugą kitoje vardų srityje, tiesiog naudokite paslaugos pavadinimą ir vardų srities pavadinimą:

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Pavyzdžiui, jei norite prisijungti prie paslaugų duomenų bazės bandomojoje vardų srityje, galite naudoti adresų duomenų bazės duomenų bazę

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Jei norite prisijungti prie paslaugų duomenų bazės gaminių vardų srityje, naudokite duomenų bazę.prod.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Jei tikrai norite izoliuoti ir apriboti prieigą prie vardų erdvės, Kubernetes leidžia tai padaryti naudojant Kubernetes tinklo politiką. Apie tai pakalbėsiu kitame epizode.

Man dažnai kyla klausimas, kiek vardų erdvių turėčiau sukurti ir kokiu tikslu? Kas yra valdomi duomenys?

Jei sukursite per daug vardų erdvių, jos tiesiog trukdys jums. Jei jų bus per mažai, prarasite visus tokio sprendimo privalumus. Manau, kad yra keturi pagrindiniai etapai, kuriuos kiekviena įmonė pereina kurdama savo organizacinę struktūrą. Priklausomai nuo to, kokioje stadijoje yra jūsų projektas ar įmonė, galbūt norėsite priimti atitinkamą vardų erdvės strategiją.

Įsivaizduokite, kad esate mažos komandos, kuri kuria 5–10 mikro paslaugų, dalis ir galite lengvai surinkti visus kūrėjus į vieną kambarį. Esant tokiai situacijai, prasminga visas gamybos paslaugas paleisti numatytojoje vardų srityje. Žinoma, kad būtų daugiau lankstumo, galite naudoti 2 vardų sritis – atskirai prod ir dev. Ir greičiausiai jūs išbandysite savo plėtrą vietiniame kompiuteryje naudodami kažką panašaus į „Minikube“.

Tarkime, viskas pasikeičia ir dabar turite sparčiai augančią komandą, kuri vienu metu dirba daugiau nei 10 mikro paslaugų. Ateina laikas, kai reikia naudoti kelias grupes arba vardų sritis atskirai prod ir dev. Galite suskirstyti komandą į keletą pogrupių, kad kiekviena iš jų turėtų savo mikropaslaugas ir kiekviena iš šių komandų galėtų pasirinkti savo vardų sritį, kad palengvintų programinės įrangos kūrimo ir išleidimo procesą.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Kiekvienam komandos nariui įgyjant supratimą, kaip veikia visa sistema, darosi vis sunkiau suderinti kiekvieną pakeitimą su visais kitais kūrėjais. Kiekvieną dieną vis sunkiau bandyti surinkti visą krūvą vietiniame kompiuteryje.

Didelėse įmonėse kūrėjai paprastai nežino, kas tiksliai ką dirba. Komandos bendrauja naudodamos paslaugų sutartis arba naudoja paslaugų tinklo technologiją, kuri tinkle prideda abstrakcijos sluoksnį, pvz., „Istio“ konfigūravimo įrankį. Bandyti paleisti visą krūvą vietoje tiesiog neįmanoma. Labai rekomenduoju naudoti nuolatinio pristatymo (CD) platformą, tokią kaip Spinnaker Kubernetes. Taigi, ateina taškas, kai kiekvienai komandai būtinai reikia savo vardų erdvės. Kiekviena komanda netgi gali pasirinkti kelias vardų sritis kūrimo aplinkai ir prod aplinkai.

Galiausiai, yra didelių verslumo įmonių, kuriose viena kūrėjų grupė net nežino apie kitų grupių egzistavimą. Tokia įmonė paprastai gali samdyti trečiųjų šalių kūrėjus, kurie sąveikauja su ja per gerai dokumentuotas API. Kiekvienoje tokioje grupėje yra kelios komandos ir kelios mikropaslaugos. Tokiu atveju turite naudoti visas priemones, apie kurias kalbėjau anksčiau.

Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve

Programuotojai neturėtų rankiniu būdu diegti paslaugų ir neturėtų turėti prieigos prie jiems nesusijusių vardų erdvių. Šiame etape patartina turėti keletą klasterių, kad sumažintumėte prastai sukonfigūruotų programų „sprogimo spindulį“, supaprastintumėte atsiskaitymo procesus ir išteklių valdymą.

Taigi, jei jūsų organizacija tinkamai naudoja vardų sritis, galite padaryti „Kubernetes“ lengviau valdomą, kontroliuojamą, saugesnį ir lankstesnį.

Kubernetes geriausia praktika. „Kubernetes“ gyvumo patvirtinimas naudojant parengties ir gyvumo testus

Kai kurie skelbimai 🙂

Dėkojame, kad likote su mumis. Ar jums patinka mūsų straipsniai? Norite pamatyti įdomesnio turinio? Palaikykite mus pateikdami užsakymą ar rekomenduodami draugams, debesies VPS kūrėjams nuo 4.99 USD, unikalus pradinio lygio serverių analogas, kurį mes sugalvojome jums: Visa tiesa apie VPS (KVM) E5-2697 v3 (6 branduoliai) 10GB DDR4 480GB SSD 1Gbps nuo 19$ arba kaip dalintis serveriu? (galima su RAID1 ir RAID10, iki 24 branduolių ir iki 40 GB DDR4).

„Dell R730xd“ 2 kartus pigiau „Equinix Tier IV“ duomenų centre Amsterdame? Tik čia 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 televizoriai nuo 199 USD Olandijoje! „Dell R420“ – 2 x E5-2430 2.2 GHz 6C 128 GB DDR3 2 x 960 GB SSD 1 Gbps 100 TB – nuo ​​99 USD! Skaityti apie Kaip sukurti infrastruktūros korp. klasę naudojant Dell R730xd E5-2650 v4 serverius, kurių vertė 9000 eurų už centą?

Šaltinis: www.habr.com

Добавить комментарий