Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Parimad Kubernetes'i praktikad. VĂ€ikeste konteinerite loomine

Kuna te loote ĂŒha rohkem Kubernetes teenuseid, muutuvad esialgu lihtsad ĂŒlesanded keeruliseks. NĂ€iteks ei saa arendustiimid luua teenuseid vĂ”i juurutusi sama nimega. Kui teil on tuhandeid pods, nende lihtne loetlemine vĂ”tab rohkelt aega, rÀÀkimata korraliku haldamise tagamisest. Ja see on alles jÀÀmĂ€e tipp.

Vaadakem, kuidas nimede ruum namespace lihtsustab Kubernetes ressursside haldamist. Mis on nimede ruum? Namespace'i vĂ”ib pidada virtuaalseks klastriks teie Kubernetes klasstris. Samas Kubernetes klasstris vĂ”ib olla mitu omavahel eraldatud nimede ruumi. Need vĂ”ivad tĂ”eliselt aidata teil ja teie meeskondadel organisatsiooni, turvalisuse ja isegi sĂŒsteemi jĂ”udluse osas.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Enamikus Kubernetes jaotustest tuleb klaster „kastist” koos nimede ruumiga nimega „default”. Tegelikult on kolm nimede ruumi, millega Kubernetes tegeleb: default, kube-system ja kube-public. Praegu ei kasutata Kube-public'i eriti tihti.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Kube nimede ruumi mitte puudutamine on hea mĂ”te, eriti sellises hallatav sĂŒsteemis nagu Google Kubernetes Engine. See kasutab nimede ruumi „default” teie teenuste ja rakenduste loomiseks. Seal ei ole absoluutselt midagi erilist, vĂ€lja arvatud see, et Kubernetes on selle kasutamiseks „kastist” juba seadistatud, ja te ei saa seda kustutada. See on suurepĂ€rane alustada ja vĂ€ikese jĂ”udlusega sĂŒsteemide jaoks, kuid ma ei soovitaks kasutada default nimede ruumi suurtes tootmisse sĂŒsteemides. Viimases juhul vĂ”ib ĂŒks arendustiim kergesti kirjutada teiste koodi ĂŒle ja hĂ€irida teise meeskonna tööd, isegi seda mĂ€rkamatagi.

SeetĂ”ttu tuleks luua mitu nimede ruumi ja kasutada neid teie teenuste segmenteerimiseks hallatavatesse ĂŒksustesse. Nimede ruumi saab luua ĂŒhe kĂ€su abil. Kui soovite luua nimede ruumi nimega test, kasutage kĂ€sku $ kubectl create namespace test vĂ”i looge lihtsalt YAML-fail ja kasutage seda nagu iga muud Kubernetes ressurssi.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

KÔiki nimede ruume saab vaadata kÀsu $ kubectl get namespace abil.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

PĂ€rast selle tĂ€itmist nĂ€ete kolme sissehitatud nimespĐžŃ€ŃƒĐ”ĐŒi ja uut nimespiraali nimega „test“. Vaatame lihtsat YAML-faili, mis on mĂ”eldud podi loomiseks. VĂ”ib mĂ€rkida, et selles ei ole mingit viidet nimespiraalile.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Kui kasutate kubectl selle faili kÀivitamiseks, loob see mooduli mypod praeguses aktiivses nimespiraalis. See on vaikimisi nimespiraal, kuni te ei muuda. On 2 viisi, kuidas rÀÀkida Kubernetesile, millises nimespiraalis soovite oma ressursse luua. Esimene viis on kasutada nimespiraali lippu ressursi loomisel.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Teine viis on nimespiraali mÀÀramine YAML-deklareerimises.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Kui mÀÀrate YAML-is nimespiraali, luuakse ressurss alati selles nimespiraalis. Kui proovite kasutada muud nimespiraali nimespiraali lipu abil, lĂ”petab kĂ€sk ebaĂ”nnestumisega. NĂŒĂŒd, kui proovite leida oma podi, ei saa te seda teha.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

See juhtub, kuna kĂ”ik kĂ€sud kĂ€ivitatakse praegusest aktiivsest nimespiraalist vĂ€ljaspool. Oma podi leidmiseks peate kasutama nimespiraali lippu, kuid see muutub kiiresti tĂŒĂŒtuks, eriti kui töötate arendajana rĂŒhmas, kes kasutab oma nimespiraali ja ei taha iga ĂŒksiku kĂ€su jaoks sellist lippu kasutada. Vaatame, kuidas seda saaks parandada.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Vaikimisi on teie aktiivne nimespiraal nimega default. Kui te ei tÀpsusta nimespiraali YAML-ressursis, kasutavad kÔik Kubernetes'i kÀsud seda aktiivset default nimespiraali. Kahjuks vÔib aktiivse nimespiraali juhtimine kubectl'iga lÔppeda ebaÔnnestumisega. Siiski on olemas suurepÀrane tööriist nimega Kubens, mis lihtsustab seda protsessi oluliselt. Kui kÀivitate kÀsu kubens, nÀete kÔiki nimespiraale, kus aktiivne nimespiraal on esile tÔstetud.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Aktiivse nimespiraali vahetamiseks nimespiraaliks test kĂ€ivitate lihtsalt kĂ€su $ kubens test. Kui seejĂ€rel uuesti sisse kirjutada kĂ€sk $ kubens, nĂ€ete, et nĂŒĂŒd on esile tĂ”stetud uus aktiivne nimespiraal – test.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

See tÀhendab, et teil ei ole nime ruumi lippu, et nÀha pod'i test nime ruumis.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Seega on nime ruumid teineteisest varjatud, kuid mitte teineteisest isoleeritud. Üks nimedruumi teenus saab suhteliselt kergesti suhelda teise nimedruumi teenusega, mis on sageli vĂ€ga kasulik. Erinevate nimedruumide vahelise suhtluse vĂ”imalus tĂ€hendab, et teie arendajate teenus vĂ”ib suhelda teise arendusmeeskonna teenusega teises nime ruumis.

Tavaliselt, kui teie rakendus soovib accéder Kubernetes teenusele, kasutate sisseehitatud DNS teenuse avastamist ja lihtsalt annate oma rakendusele teenuse nime. Kuid sel juhul saate luua teenuse sama nimega mitmes nimedruumis, mis on vastuvÔetamatu.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Õnneks on seda lihtne kĂ”rvaldada, kasutades DNS-i aadressi lahtist vormi. Teenused Kubernetes'is esitavad oma lĂ”pp-punktid, kasutades ĂŒhise DNS-i mall. See nĂ€eb vĂ€lja umbes nii:

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Reeglina vajate lihtsalt teenuse nime, ja DNS mÀÀrab automaatselt tÀisadresse.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Kuid kui peate pÀÀsema teenusele teises nime ruumis, kasutage lihtsalt teenuse nime pluss nime ruum:

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

NĂ€iteks, kui soovite ĂŒhendada katse nimedruumi andmebaasi teenusega, vĂ”ite kasutada aadressi database.test

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Kui soovite ĂŒhendada andmebaasi teenusega prod nimedruumis, kasutate database.prod.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Kui soovite tÔeliselt isoleerida ja piirata juurdepÀÀsu nimedruumile, vÔimaldab Kubernetes seda teha Kubernetes Network Policies vÔrgu poliitikate abil. RÀÀgin sellest jÀrgmises osas.

KĂŒsin sageli, kui palju nimedruume tuleks luua ja millistel eesmĂ€rkidel? Mis on haldatud andmete fragment?

Kui loote liiga palju nimespacing'e, takistavad need teid. Kui nimespacing'e on aga liiga vÀhe, kaotate kÔik sellise lahenduse eelised. Arvan, et iga ettevÔtte organisatsioonilise struktuuri loomise protsessis on neli peamist etappi. Olenevalt teie projekti vÔi ettevÔtte arenguetapist, vÔite kaaluda vastavat nimespacing'i loomise strateegiat.

Kujutage ette, et olete osa vĂ€ikesest meeskonnast, kes töötab 5-10 mikroteenuse arendamise kallal ja saate kĂ”ik arendajad kergesti ĂŒhte ruumi kokku tuua. Sellises olukorras on mĂ”istlik kĂ€ivitada kĂ”ik tootmisteenused nimespacing'is default. Loomulikult vĂ”ite laiemate vĂ”imaluste jaoks kasutada kaht nimespacing'it – eraldi tootmiseks ja arenduseks. TĂ”enĂ€oliselt testite oma arendust kohalikul arvutil mĂ”ne Minikube sarnase lahenduse abil.

Oletame, et olukord on muutunud ja teil on kiiresti kasvav meeskond, mis töötab samaaegselt rohkem kui 10 mikroteenuse kallal. JÔuab aeg, mil on vajalik kasutada mitmeid klastri vÔi nimespacing'e, eraldi tootmiseks ja arenduseks. Meeskonna saab jagada mitmeks alagruppideks, nii et igal alagrupil on omad mikroteenused ning iga meeskond saab valida oma nimespacing'i, et lihtsustada arendamise ja tarkvara vÀljalaskmise protsessi.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Mida enam iga meeskonna liige mĂ”istab, kuidas sĂŒsteem tervikuna töötab, seda keerulisemaks muutub iga muudatuse kooskĂ”lastamine teiste arendajatega. Katse oma kohalikul arvutil tĂ€ielikku steki kĂ€ivitada muutub iga pĂ€evaga keerulisemaks.

Suurtel ettevÔtetel ei tea arendajad sageli, kes tÀpselt millega tegeleb. Meeskonnad suhtlevad teenuslepingute kaudu vÔi kasutavad teenusmesh-tehnoloogiat, mis lisab vÔrgu peale abstraktsioonitaseme, sarnastes seadistustööriistades nagu Istio. Kogu steki kohaliku kÀivitamise katsetamine on peaaegu vÔimatu. Soovitan tungivalt kasutada Kuberneteses sellist pideva kohaletoimetamise (CD) platvormi nagu Spinnaker. Seega tuleb hetk, mil igal meeskonnal on kindlasti vaja oma nimeala. Iga meeskond vÔib isegi valida mitu nimeala arenduse (dev) ja tootmise (prod) keskkonna jaoks.

LĂ”puks on olemas suured ettevĂ”tted, kus ĂŒhe arendajate rĂŒhma liikmed ei tea isegi teiste rĂŒhmade olemasolust. Selline ettevĂ”te vĂ”ib palkata ka vĂ€list arendajat, kes suhtleb hĂ€sti dokumenteeritud API-de kaudu. Igas sellises rĂŒhmas on mitu meeskonda ja mitu mikroteenust. Sellisel juhul on vajalik kasutada kĂ”iki eelnevalt mainitud tööriistu.

Kubernetes'i parimad tavad. Kubernetes'i korraldamine nimede ruumi abil

Arendajad ei tohiks teenuseid kÀsitsi juurutada ega peab olema juurdepÀÀs nendele nimealadele, mis neid ei puuduta. Sellel etapil on mÔistlik omada mitu klastrit, et vÀhendada halvasti seadistatud rakenduste "plahvatusraadiust", lihtsustada arveldamise ja ressursihalduse protsesse.

Seega vÔimaldab teie organisatsiooni Ôige nimealade kasutamine Kubernetes olla rohkem juhitav, kontrollitav, turvaline ja paindlik.

Kubernetes'i parimad praktikad. Kubernetes'i elujÔu kontrollimine Readiness ja Liveness testide abil

MĂ€ngi videot

Veidi reklaami 🙂

AitÀh, et olete meiega. Kas teile meeldivad meie artiklid? Kas soovite nÀha rohkem huvitavat sisu? Toetage meid, tellides teenuse vÔi soovitades meid tuttavatele. Pilve VPS arendajatele alates $4.99, ainulaadne entry-level serverite analoog, mille oleme teie jaoks vÀlja mÔelnud: Kogu tÔde VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps alates $19 vÔi kuidas jagada serverit Ôigesti? (saadaval RAID1 ja RAID10 variandid, kuni 24 tuuma ja kuni 40GB DDR4).

Dell R730xd on Equinixi Tier IV andmekeskuses Amsterdamis kaks korda odavam? Ainult meie juures 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB alates $199 Hollandis! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — alates $99! Lugege sellest Kuidas luua ettevĂ”tte tasemel infrastruktuuri, kasutades Dell R730xd E5-2650 v4 servereid, mille hind on 9000 eurot, taskukohase hinna eest?

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster