Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Kubernetes Best Practices. Creazione di Small Containers

Quandu avete cuminciatu à creà più è più servizii Kubernetes, i travaglii chì sò inizialmente simplici cumincianu à diventà più cumplessi. Per esempiu, i gruppi di sviluppu ùn ponu micca creà servizii o implementazioni sottu u stessu nome. Sè vo avete millaie di baccelli, simpricimenti elencu elli vi pigghia assai tempu, per suprattuttu di gestisce bè. È questu hè solu a punta di l'iceberg.

Fighjemu cumu u spaziu di nomi facilita a gestione di e risorse Kubernetes. Allora chì hè un namespace? U spaziu di nomi pò esse cunsideratu cum'è un cluster virtuale in u vostru cluster Kubernetes. Pudete avè parechje spazii di nomi isolati l'un da l'altru in un unicu cluster Kubernetes. Puderanu veramente aiutà à voi è à i vostri squadre cù l'urganizazione, a sicurità è ancu u rendiment di u sistema.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

In a maiò parte di e distribuzioni Kubernetes, u cluster esce da a casella cù un spaziu di nome chjamatu "default". Ci sò in realtà trè spazii di nomi chì Kubernetes tratta: default, kube-system è kube-public. Attualmente, Kube-public ùn hè micca usatu assai spessu.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Lascià u spaziu di nome kube solu hè una bona idea, in particulare in un sistema gestionatu cum'è Google Kubernetes Engine. Aduprà u spaziu di nomi "default" cum'è u locu induve i vostri servizii è applicazioni sò creati. Ùn ci hè assolutamente nunda di speciale, salvu chì Kubernetes hè cunfiguratu fora di a scatula per aduprà, è ùn pudete micca sguassà. Questu hè fantasticu per inizià è sistemi di rendimentu bassu, ma ùn ricumanderaghju micca di utilizà u spaziu di nome predeterminatu nantu à i grandi sistemi di produzzione. In l'ultimu casu, una squadra di sviluppu pò facilmente riscrive u codice di qualcunu altru è rompe u travagliu di l'altru squadra senza mancu capiscia.

Per quessa, duvete creà parechji spazii di nomi è l'utilizanu per segmentà i vostri servizii in unità gestibili. Un namespace pò esse creatu cù un solu cumandamentu. Se vulete creà un spaziu di nomi chjamatu test, allora aduprate u cumandimu $ kubectl create namespace test o simpricimenti creanu un schedariu YAML è l'utilizanu cum'è qualsiasi altra risorsa Kubernetes.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Pudete vede tutti i namespaces usendu u $ kubectl get namespace command.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Una volta finitu, vi vede trè spazii di nomi integrati è un novu spaziu di nomi chjamatu "test". Fighjemu un schedariu YAML simplice per creà un pod. Avete nutatu chì ùn ci hè micca menzione di namespace.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Se aduprate kubectl per eseguisce stu schedariu, creà u modulu mypod in u spaziu di nomi attualmente attivu. Questu serà u spaziu di nome predeterminatu finu à chì u cambiassi. Ci hè 2 modi per dì à Kubernetes in quale spaziu di nomi vulete creà a vostra risorsa. U primu modu hè di utilizà una bandiera di namespace quandu crea una risorsa.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

A seconda manera hè di specificà u spaziu di nomi in a dichjarazione YAML.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Se specificate un spaziu di nome in YAML, a risorsa serà sempre creata in quellu spaziu di nomi. Se pruvate d'utilizà un spaziu di nome differente mentre utilizate a bandiera di u spaziu di nome, u cumandamentu falla. Avà, sè vo pruvate à truvà u vostru pod, ùn puderà micca fà.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Questu accade perchè tutti i cumandamenti sò eseguiti fora di u spaziu di nomi attualmente attivu. Per truvà u vostru pod, avete bisognu di utilizà una bandiera di u spaziu di nomi, ma questu si annoia rapidamente, soprattuttu se site un sviluppatore in una squadra chì usa u so propiu spaziu di nomi è ùn vole micca aduprà quella bandiera per ogni cumandamentu. Videmu cumu pudemu riparà questu.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Fora di a scatula, u vostru spaziu di nome attivu hè chjamatu predeterminatu. Se ùn specificate micca un spaziu di nome in a risorsa YAML, allora tutti i cumandamenti di Kubernetes utilizanu stu spaziu di nome predeterminatu attivu. Sfortunatamente, pruvà à gestisce u spaziu di nomi attivu cù kubectl pò fallu. Tuttavia, ci hè un strumentu assai bonu chjamatu Kubens chì rende stu prucessu assai più faciule. Quandu eseguite u cumandamentu kubens, vede tutti i spazii di nomi cù u spaziu di nomi attivu evidenziatu.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Per cambià u spaziu di nomi attivu à u spaziu di nomi di prova, basta à eseguisce u cumandamentu di prova $kubens. Se poi eseguite u cumandamentu $kubens di novu, vi vede chì un novu spaziu di nomi attivu hè avà attribuitu - test.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Questu significa chì ùn avete micca bisognu di a bandiera di u namespace per vede u pod in u namespace di prova.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

In questu modu, i spazii di nomi sò oculati l'un à l'altru, ma micca isolati l'un l'altru. Un serviziu in un namespace pò cumunicà abbastanza facilmente cù un serviziu in un altru namespace, chì hè spessu assai utile. A capacità di cumunicà in diversi spazii di nomi significa chì u serviziu di i vostri sviluppatori pò cumunicà cù u serviziu di un altru squadra di sviluppu in un spaziu di nomi diversu.

Di genere, quandu a vostra applicazione vole accede à un serviziu Kubernetes, utilizate u serviziu di scuperta DNS integratu è simpricimenti dà à a vostra applicazione u nome di u serviziu. Tuttavia, fendu cusì, pudete creà un serviziu sottu u stessu nome in parechji spazii di nomi, chì ùn hè micca accettatu.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Per furtuna, questu hè faciule per andà in u circondu utilizendu a forma allargata di l'indirizzu DNS. I servizii in Kubernetes espone i so endpoints utilizendu un mudellu DNS cumuni. Sembra qualcosa cusì:

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Di genere, avete solu bisognu di u nome di serviziu è DNS determinarà automaticamente l'indirizzu sanu.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

In ogni casu, sè avete bisognu di accede à un serviziu in un spaziu di nome differente, simpricimenti utilizate u nome di u serviziu più u nome di u nome:

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Per esempiu, sè vo vulete cunnette à una basa di dati di serviziu in un spaziu di nomi di teste, pudete aduprà a basa di dati di indirizzu database.test

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Se vulete cunnette à a basa di dati di serviziu in u spaziu di nome prod, utilizate database.prod.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Se vulete veramente isolà è limità l'accessu à u spaziu di nomi, Kubernetes vi permette di fà questu utilizendu Politiche di Rete di Kubernetes. Parlaraghju di questu in u prossimu episodiu.

Mi sò spessu dumandatu a quistione, quanti spazii di nomi duverebbe creà è per quale scopu? Cosa hè un pezzu di dati gestitu?

Sè vo create troppu spazii di nomi, si metteranu solu in u vostru modu. S'ellu ci sò troppu pochi di elli, perderà tutti i benefici di una tale suluzione. Pensu chì ci sò quattru tappe principali chì ogni cumpagnia passa quandu crea a so struttura organizzativa. Sicondu u stadiu di u sviluppu di u vostru prughjettu o cumpagnia, pudete vulete aduttà una strategia di namespace approprita.

Imagine chì site parte di una piccula squadra chì travaglia in u sviluppu di microservizi 5-10 è pudete facilmente riunite tutti i sviluppatori in una stanza. In questa situazione, hè sensu per eseguisce tutti i servizii prod in u spaziu di nome predeterminatu. Di sicuru, per più flessibilità, pudete aduprà 2 spazii di nomi - separatamente per prod è dev. È assai prubabile, pruvate u vostru sviluppu nantu à u vostru urdinatore locale usendu qualcosa cum'è Minikube.

Diciamu chì e cose cambianu è avà avete una squadra in rapida crescita chì travaglia in più di 10 microservizi à u tempu. Ci hè un tempu quandu hè necessariu di utilizà parechji clusters o namespaces, separatamente per prod è dev. Pudete scumpressà a squadra in parechji sub-squadre in modu chì ognuna di elle hà u so propiu microserviziu è ognuna di queste squadre pò sceglie u so propiu namespace per facilità u prucessu di gestisce u sviluppu di u software è a liberazione.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

Cum'è ogni membru di a squadra guadagna insight in quantu u sistema in tuttu u travagliu, diventa più è più difficiule di coordinà ogni cambiamentu cù tutti l'altri sviluppatori. Pruvate di spin up una pila piena nantu à a vostra macchina lucale hè diventata più difficiule ogni ghjornu.

In e grande cumpagnie, i sviluppatori in generale ùn sanu micca esattamente quale hè travagliatu nantu à ciò chì. I squadre cumunicanu utilizendu cuntratti di serviziu o utilizanu a tecnulugia di rete di serviziu, chì aghjunghje una capa di astrazione nantu à a reta, cum'è l'uttellu di cunfigurazione Istio. Pruvate di eseguisce una pila intera in u locu hè simplicemente micca pussibule. Vi cunsigliu assai di utilizà una piattaforma di spedizione cuntinuu (CD) cum'è Spinnaker in Kubernetes. Allora, vene un puntu induve ogni cumanda hà bisognu di u so propiu namespace. Ogni squadra pò ancu sceglie parechje spazii di nomi per l'ambiente di sviluppu è l'ambiente prod.

Infine, ci sò grandi imprese imprenditoriali in quale un gruppu di sviluppatori ùn cunnosci mancu l'esistenza di altri gruppi. Una tale cumpagnia pò in generale ingaghjate sviluppatori di terzu chì interagiscenu cun ella per mezu di API ben documentate. Ogni tali gruppu cuntene parechje squadre è parechji microservizi. In questu casu, avete bisognu di utilizà tutti l'arnesi chì aghju parlatu prima.

Kubernetes Best Practices. Organizazione Kubernetes cù u spaziu di nomi

I programatori ùn devenu micca implementà manualmente i servizii è ùn anu micca accessu à i spazii di nomi chì ùn li cuncernanu micca. In questu stadiu, hè cunsigliu per avè parechji clusters per riduce u "radiu di blastu" di l'applicazioni pocu cunfigurate, per simplificà i prucessi di fattura è a gestione di risorse.

Cusì, l'usu propiu di spazii di nomi da a vostra urganizazione vi permette di fà Kubernetes più gestibile, cuntrullabile, sicuru è flessibile.

Kubernetes Best Practices. Verificate a Salute di Kubernetes cù Testi di Prontezza è Liveness

Certi annunzii 🙂

Grazie per stà cun noi. Ti piace i nostri articuli ? Vulete vede più cuntenutu interessante? Supportaci facendu un ordine o ricumandendu à l'amichi, cloud VPS per sviluppatori da $ 4.99, un analogu unicu di servitori di livellu d'entrata, chì hè statu inventatu da noi per voi: Tutta a verità nantu à VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps da $ 19 o cumu si sparte un servitore? (dispunibule cù RAID1 è RAID10, finu à 24 core è finu à 40GB DDR4).

Dell R730xd 2 volte più prezzu in u centru di dati Equinix Tier IV in Amsterdam? Solu quì 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV da $ 199 in l'Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - da $ 99! Leghje circa Cumu custruisce una infrastruttura corp. classa cù l'usu di i servitori Dell R730xd E5-2650 v4 valenu 9000 XNUMX euro per un centesimu?

Source: www.habr.com

Add a comment