{"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\/ro\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt","title":{"rendered":"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota traduc\u0103torului.<\/b>: acest material provine dintr-un proiect educa\u021bional <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">learnk8s<\/a><\/noindex> \u2014 r\u0103spuns la o \u00eentrebare popular\u0103 \u00een proiectarea infrastructurii bazate pe Kubernetes. Sper\u0103m c\u0103 descrierile suficient de detaliate ale avantajelor \u0219i dezavantajelor fiec\u0103rei op\u021biuni vor ajuta la alegerea optim\u0103 \u0219i pentru proiectul dumneavoastr\u0103.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/d3cc3b7e686e39032b1f02f3e8b6c46c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>TL;DR<\/b>: acela\u0219i set de sarcini de munc\u0103 poate fi rulat pe mai multe clustere mari (fiecare cluster av\u00e2nd un num\u0103r mare de workload-uri) sau pe multe clustere mici (cu un num\u0103r mic de sarcini \u00een fiecare cluster).<\/p>\n<p>Mai jos este un tabel \u00een care sunt evaluate avantajele \u0219i dezavantajele fiec\u0103rei abord\u0103ri:<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/ab5b5fefc97c3befddbaeb0791f8a90d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAtunci c\u00e2nd se folose\u0219te Kubernetes ca platform\u0103 pentru operarea aplica\u021biilor, apar adesea c\u00e2teva \u00eentreb\u0103ri fundamentale legate de nuan\u021bele configur\u0103rii clusterelor:<\/p>\n<ul>\n<li> <i>C\u00e2te clustere s\u0103 folosi\u021bi?<\/i><\/li>\n<li> <i>C\u00e2t de mari s\u0103 fie acestea?<\/i><\/li>\n<li> <i>Ce ar trebui s\u0103 con\u021bin\u0103 fiecare cluster?<\/i><\/li>\n<\/ul>\n<p>\n\u00cen acest articol, voi \u00eencerca s\u0103 r\u0103spund la toate aceste \u00eentreb\u0103ri, analiz\u00e2nd avantajele \u0219i dezavantajele fiec\u0103rei abord\u0103ri.<\/p>\n<h2>Formularea problemei<\/h2>\n<p>\nCa dezvoltator de software, este foarte probabil s\u0103 dezvolta\u021bi \u0219i s\u0103 opera\u021bi \u00een paralel mai multe aplica\u021bii.<\/p>\n<p>\u00cen plus, mai multe instan\u021be ale acestor aplica\u021bii sunt probabil rulate \u00een medii diferite \u2014 de exemplu, acestea pot fi <i>dev<\/i>, <i>test<\/i> \u0219i <i>prod<\/i>.<\/p>\n<p>Ca rezultat, se formeaz\u0103 o adev\u0103rat\u0103 matrice de aplica\u021bii \u0219i medii:<\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/f2a811fa82e1e433463ba25d29f837e6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Aplica\u021bii \u0219i medii<\/i><\/p>\n<p>\u00cen exemplul de mai sus, sunt prezentate 3 aplica\u021bii \u0219i 3 medii, ceea ce ofer\u0103 \u00een total 9 variante posibile.<\/p>\n<p>Fiecare instan\u021b\u0103 a aplica\u021biei reprezint\u0103 o unitate de deployment autonom\u0103, cu care se poate lucra independent de altele.<\/p>\n<p><i>Re\u021bine\u021bi c\u0103 <b>instan\u021ba aplica\u021biei<\/b> poate consta din mai multe <b>componentelor<\/b>, cum ar fi front-end, back-end, baz\u0103 de date etc. \u00cen cazul aplica\u021biilor microservicii, instan\u021ba va include toate microserviciile.<\/i><\/p>\n<p>Ca rezultat, utilizatorii Kubernetes au c\u00e2teva \u00eentreb\u0103ri:<\/p>\n<ul>\n<li> Ar trebui s\u0103 plasa\u021bi toate instan\u021bele aplica\u021biei \u00eentr-un singur cluster?<\/li>\n<li> Ar trebui s\u0103 crea\u021bi un cluster separat pentru fiecare instan\u021b\u0103 a aplica\u021biei?<\/li>\n<li> Sau, poate, ar trebui s\u0103 utiliza\u021bi o combina\u021bie a abord\u0103rilor men\u021bionate mai sus?<\/li>\n<\/ul>\n<p>\nToate aceste variante sunt pe deplin viabile, deoarece Kubernetes este un sistem flexibil care nu limiteaz\u0103 utilizatorul \u00een op\u021biuni.<\/p>\n<p>Iat\u0103 c\u00e2teva dintre posibilit\u0103\u021bile disponibile:<\/p>\n<ul>\n<li> un singur cluster mare comun;<\/li>\n<li> multe clustere mici specializate;<\/li>\n<li> un cluster pentru fiecare aplica\u021bie;<\/li>\n<li> un cluster pentru fiecare mediu.<\/li>\n<\/ul>\n<p>\nDup\u0103 cum se arat\u0103 mai jos, primele dou\u0103 abord\u0103ri sunt la extremit\u0103\u021bile opuse ale scalei op\u021biunilor:<\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/99b8fd0d1e4173705e7996cf8ccb6eec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>De la c\u00e2teva clustere mari (st\u00e2nga) la multe mici (dreapta)<\/i><\/p>\n<p><i>\u00cen general, se consider\u0103 c\u0103 un cluster este \u201emai mare\u201d dec\u00e2t altul dac\u0103 are o sum\u0103 mai mare de noduri \u0219i pod-uri. De exemplu, un cluster cu 10 noduri \u0219i 100 de pod-uri este mai mare dec\u00e2t un cluster cu 1 nod \u0219i 10 pod-uri.<\/i><\/p>\n<p>Ei bine, s\u0103 \u00eencepem!<\/p>\n<h2>1. Un mare cluster comun<\/h2>\n<p>\nPrima op\u021biune - a plasa toate sarcinile de lucru \u00eentr-un singur cluster:<\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/283fc3c3f5ccb40a157ccff600628114.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Un mare cluster<\/i><\/p>\n<p>\u00cen cadrul acestei abord\u0103ri, clusterul este utilizat ca o <b>platform\u0103 infrastructural\u0103 general\u0103<\/b> \u2014 tot ce ai nevoie, pur \u0219i simplu, desf\u0103\u0219ori \u00een clusterul existent Kubernetes.<\/p>\n<p><i><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/overview\/working-with-objects\/namespaces\/\">Namespace-uri<\/a><\/noindex> Kubernetes permite separarea logic\u0103 a p\u0103r\u021bilor clusterului, astfel \u00eenc\u00e2t pentru fiecare instan\u021b\u0103 de aplica\u021bie s\u0103 po\u021bi folosi propriul spa\u021biu de nume.<\/i><\/p>\n<p><i>S\u0103 analiz\u0103m avantajele \u0219i dezavantajele acestei abord\u0103ri.<\/i><\/p>\n<h3>+ Utilizarea eficient\u0103 a resurselor<\/h3>\n<p>\n\u00cen cazul unui singur cluster, este necesar\u0103 doar o copie a tuturor resurselor necesare pentru a rula \u0219i gestiona clusterul Kubernetes.<\/p>\n<p>De exemplu, aceasta este valabil\u0103 pentru nodurile master. \u00cen general, pentru fiecare cluster Kubernetes exist\u0103 3 noduri master, a\u0219a c\u0103 pentru un singur cluster num\u0103rul acestora va r\u0103m\u00e2ne acela\u0219i (spre compara\u021bie, 10 clustere vor necesit\u0103 30 noduri master).<\/p>\n<p>Aceast\u0103 subtilitate se aplic\u0103 \u0219i altor servicii care func\u021bioneaz\u0103 la nivelul \u00eentregului cluster, cum ar fi echilibratoarele de sarcin\u0103, controlerele Ingress, sistemele de autentificare, \u00eenregistrare \u0219i monitorizare.<\/p>\n<p>\u00cen cadrul unui singur cluster, toate aceste servicii pot fi folosite simultan pentru toate sarcinile de lucru (nu trebuie s\u0103 creezi copii ale acestora, cum se \u00eent\u00e2mpl\u0103 \u00een cazul mai multor clustere).<\/p>\n<h3>+ Economie<\/h3>\n<p>\nCa urmare a celor de mai sus, num\u0103rul mai mic de clustere se dovede\u0219te, de obicei, a fi mai ieftin, deoarece costurile cu resursele redundante sunt absente.<\/p>\n<p>Acest lucru este cu at\u00e2t mai adev\u0103rat pentru nodurile master, care pot costa sume considerabile indiferent de modul de implementare (on-premises sau \u00een cloud).<\/p>\n<p>Unele servicii gestionate Kubernetes, cum ar fi <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\">Google Kubernetes Engine (GKE)<\/a><\/noindex> sau <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/\">Azure Kubernetes Service (AKS)<\/a><\/noindex>, furnizeaz\u0103 un strat de gestionare gratuit. \u00cen acest caz, problema costurilor nu este at\u00e2t de acut\u0103.<\/p>\n<p>Exist\u0103, de asemenea, servicii gestionate care percep o tax\u0103 fix\u0103 pentru fiecare cluster Kubernetes (de exemplu, <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/eks\/\">Amazon Elastic Kubernetes Service, EKS<\/a><\/noindex>).<\/p>\n<h3>+ Administrare eficient\u0103<\/h3>\n<p>\nGestionarea unui singur cluster este mai simpl\u0103 dec\u00e2t gestionarea mai multor.<\/p>\n<p>Administrarea poate include urm\u0103toarele sarcini:<\/p>\n<ul>\n<li> actualizarea versiunii Kubernetes;<\/li>\n<li> configurarea pipeline-ului CI\/CD;<\/li>\n<li> instalarea pluginului CNI;<\/li>\n<li> configurarea sistemului de autentificare a utilizatorilor;<\/li>\n<li> instalarea unui controller de acces;<\/li>\n<\/ul>\n<p>\n\u0219i multe altele\u2026<\/p>\n<p>\u00cen cazul unui singur cluster, toate acestea trebuie f\u0103cute o singur\u0103 dat\u0103.<\/p>\n<p>Pentru multiple clustere, opera\u021biile trebuie repetate de mai multe ori, ceea ce probabil va necesita automatizarea proceselor \u0219i instrumentelor pentru a asigura sistematizarea \u0219i uniformitatea procesului.<\/p>\n<p><i>Acum, c\u00e2teva cuvinte despre dezavantaje.<\/i><\/p>\n<h3>\u2212 Punct unic de e\u0219ec<\/h3>\n<p>\n\u00cen cazul unei defec\u021biuni a <i>singurului<\/i> cluster, toate <i>tot<\/i> sarcinile de lucru se vor opri imediat!<\/p>\n<p>Exist\u0103 multe scenarii \u00een care ceva poate merge prost:<\/p>\n<ul>\n<li> actualizarea Kubernetes duce la efecte secundare nea\u0219teptate;<\/li>\n<li> componenta comun\u0103 a clusterului (de exemplu, pluginul CNI) \u00eencepe s\u0103 func\u021bioneze diferit fa\u021b\u0103 de a\u0219tept\u0103ri;<\/li>\n<li> una dintre componentele clusterului este configurat\u0103 gre\u0219it;<\/li>\n<li> defec\u021biune \u00een infrastructura subiacente.<\/li>\n<\/ul>\n<p>\nUn astfel de incident poate provoca daune severe tuturor sarcinilor de lucru g\u0103zduite \u00een clusterul comun.<\/p>\n<h3>\u2212 Lipse\u0219te izolarea strict\u0103<\/h3>\n<p>\nFunc\u021bionarea \u00eentr-un cluster comun \u00eenseamn\u0103 c\u0103 aplica\u021biile \u00eemp\u0103rt\u0103\u0219esc resurse hardware, capabilit\u0103\u021bi de re\u021bea \u0219i sistem de operare pe nodurile clusterului.<\/p>\n<p>\u00centr-un sens, dou\u0103 containere cu dou\u0103 aplica\u021bii diferite care ruleaz\u0103 pe acela\u0219i nod sunt asem\u0103n\u0103toare cu dou\u0103 procese care ruleaz\u0103 pe aceea\u0219i ma\u0219in\u0103 sub un singur nucleu de sistem de operare.<\/p>\n<p><i>Containerele Linux ofer\u0103 o form\u0103 de izolare, dar aceasta nu este la fel de puternic\u0103 precum cea asigurat\u0103 de, s\u0103 spunem, ma\u0219inile virtuale. \u00cen esen\u021b\u0103, un proces dintr-un container este acela\u0219i proces care ruleaz\u0103 \u00een sistemul de operare gazd\u0103.<\/i><\/p>\n<p>Aceasta poate deveni o problem\u0103 din perspectiva securit\u0103\u021bii: o astfel de organizare teoretic permite aplica\u021biilor nesolidare s\u0103 interac\u021bioneze \u00eentre ele (inten\u021bionat sau accidental).<\/p>\n<p>\u00cen plus, toate sarcinile de lucru din clusterul Kubernetes folosesc \u00eempreun\u0103 unele servicii comune de cluster, cum ar fi <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/dns-pod-service\/\">DNS<\/a><\/noindex> \u2014 aceasta permite aplica\u021biilor s\u0103 g\u0103seasc\u0103 serviciile altor aplica\u021bii \u00een cluster.<\/p>\n<p><i>Toate punctele men\u021bionate anterior pot avea semnifica\u021bii diferite \u00een func\u021bie de cerin\u021bele de securitate ale aplica\u021biilor.<\/i><\/p>\n<p>Kubernetes ofer\u0103 diverse instrumente pentru prevenirea problemelor de securitate, cum ar fi <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/pod-security-policy\/\">PodSecurityPolicies<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/network-policies\/\">NetworkPolicies<\/a><\/noindex>. Cu toate acestea, pentru configurarea lor corect\u0103 este necesar\u0103 o anumit\u0103 experien\u021b\u0103, \u00een plus, ele nu pot \u00eenchide toate vulnerabilit\u0103\u021bile de securitate.<\/p>\n<p>Este important s\u0103 ne amintim \u00eentotdeauna c\u0103 Kubernetes a fost conceput ini\u021bial pentru <i>partajare<\/i>, nu pentru <i>izolare \u0219i securitate<\/i>.<\/p>\n<h3>\u2212 Lipsa unei multi-tenancy stricte<\/h3>\n<p>\nAv\u00e2nd \u00een vedere abunden\u021ba resurselor comune din clusterul Kubernetes, exist\u0103 multe modalit\u0103\u021bi prin care aplica\u021biile diferite pot \"p\u0103trunde una \u00een teritoriul alteia\".<\/p>\n<p>De exemplu, o aplica\u021bie poate monopoliza o resurs\u0103 comun\u0103 (precum CPU sau memorie) \u0219i poate privi alte aplica\u021bii care ruleaz\u0103 pe acela\u0219i nod de acces.<\/p>\n<p>Kubernetes ofer\u0103 diverse mecanisme de control al acestui comportament, cum ar fi <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-compute-resources-container\/\">solicit\u0103rile de resurse \u0219i limit\u0103rile<\/a><\/noindex> <i>(consulta\u021bi, de asemenea, articolul \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/489668\/\"> Limit\u0103rile CPU \u0219i throttlingul agresiv \u00een Kubernetes <\/a><\/noindex>\u201d \u2014 n. trad.)<\/i>, <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/resource-quotas\/\">ResourceQuotas<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/limit-range\/\">LimitRanges<\/a><\/noindex>. Cu toate acestea, la fel ca \u00een cazul securit\u0103\u021bii, configurarea lor este destul de complex\u0103 \u0219i nu pot preveni toate efectele secundare neprev\u0103zute.<\/p>\n<h3>\u2212 Un num\u0103r mare de utilizatori<\/h3>\n<p>\n\u00cen cazul unui singur cluster, acesta trebuie s\u0103 fie accesibil multor persoane. Cu c\u00e2t num\u0103rul lor este mai mare, cu at\u00e2t riscul ca ace\u0219tia s\u0103 \"strice\" ceva este mai mare.<\/p>\n<p>\u00cen interiorul clusterului, se poate controla cine \u0219i ce poate face prin <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/rbac\/\">gestionarea accesului bazat\u0103 pe roluri (RBAC)<\/a><\/noindex> <i>(consulta\u021bi articolul \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/470503\/\"> Utilizatori \u0219i autorizare RBAC \u00een Kubernetes <\/a><\/noindex>\u201d \u2014 n. trad.)<\/i>. Totu\u0219i, acest lucru nu va \u00eempiedica utilizatorii s\u0103 \"strice\" ceva \u00een cadrul zonei lor de responsabilitate.<\/p>\n<h3>\u2212 Clusterele nu pot cre\u0219te la nesf\u00e2r\u0219it<\/h3>\n<p>\nUn cluster folosit pentru toate sarcinile de munc\u0103 va fi, probabil, foarte mare (\u00een ceea ce prive\u0219te num\u0103rul de noduri \u0219i pod-uri).<\/p>\n<p>Dar aici apare o alt\u0103 problem\u0103: clusterele din Kubernetes nu pot cre\u0219te la nesf\u00e2r\u0219it.<\/p>\n<p>Exist\u0103 o limit\u0103 teoretic\u0103 asupra dimensiunii clusterului. \u00cen Kubernetes, aceasta este de aproximativ <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/setup\/best-practices\/cluster-large\/\">5000 de noduri, 150 de mii de pod-uri \u0219i 300 de mii de containere<\/a><\/noindex>.<\/p>\n<p>Cu toate acestea, \u00een via\u021ba real\u0103, problemele pot \u00eencepe mult mai devreme \u2014 de exemplu, doar la <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 de noduri<\/a><\/noindex>.<\/p>\n<p>Problema este c\u0103 clusterele mari exercit\u0103 o presiune mare asupra stratului de control Kubernetes. Cu alte cuvinte, pentru a men\u021bine un cluster \u00een stare de func\u021bionare \u0219i a utiliza eficient resursele, este necesar\u0103 o configura\u021bie atent\u0103.<\/p>\n<p><i>Aceast\u0103 problem\u0103 este discutat\u0103 \u00een articolul corespunz\u0103tor din blogul original intitulat \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/kubernetes-node-size\">Architecting Kubernetes clusters \u2014 choosing a worker node size<\/a><\/noindex>\u00bb.<\/i><\/p>\n<p><i>Dar s\u0103 examin\u0103m abordarea opus\u0103: multe clustere mici.<\/i><\/p>\n<h2>2. Multe clustere mici, specializate<\/h2>\n<p>\nPrin aceast\u0103 abordare, utiliza\u021bi un cluster separat pentru fiecare element desf\u0103\u0219urat:<\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/2320f62d945944f2e26f07252e9b8440.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Multe clustere mici<\/i><\/p>\n<p>\u00cen scopurile acestui articol, prin <i>element desf\u0103\u0219urat<\/i> se \u00een\u021belege o instan\u021b\u0103 a aplica\u021biei \u2014 de exemplu, versiunea dev a unei aplica\u021bii separate.<\/p>\n<p>\u00cen aceast\u0103 strategie, Kubernetes este utilizat ca un mediu de <b>execu\u021bie extrem de specializat<\/b> pentru instan\u021be separate ale aplica\u021biei.<\/p>\n<p><i>S\u0103 analiz\u0103m avantajele \u0219i dezavantajele acestei abord\u0103ri.<\/i><\/p>\n<h3>+ Raz\u0103 de explozie limitat\u0103<\/h3>\n<p>\n\u00cen cazul unei \u201erupturi\u201d a cluster-ului, consecin\u021bele negative se limiteaz\u0103 doar la acele sarcini de munc\u0103 care au fost desf\u0103\u0219urate \u00een acest cluster. Toate celelalte workload-uri r\u0103m\u00e2n neatinse.<\/p>\n<h3>+ Izolare<\/h3>\n<p>\nSarcinile de lucru g\u0103zduite \u00een clustere individuale nu au resurse comune, cum ar fi CPU, memorie, sistem de operare, re\u021bea sau alte servicii.<\/p>\n<p>Prin urmare, ob\u021binem o izolare strict\u0103 \u00eentre aplica\u021bii necorelate, ceea ce poate beneficia siguran\u021ba acestora.<\/p>\n<h3>+ Num\u0103r mic de utilizatori<\/h3>\n<p>\nAv\u00e2nd \u00een vedere c\u0103 fiecare cluster con\u021bine doar un set restr\u00e2ns de sarcini de lucru, este redus num\u0103rul utilizatorilor care au acces la el.<\/p>\n<p>Cu c\u00e2t mai pu\u021bini oameni au acces la cluster, cu at\u00e2t riscul ca ceva s\u0103 \u201ese strice\u201d este mai mic.<\/p>\n<p><i>S\u0103 vedem dezavantajele.<\/i><\/p>\n<h3>\u2212 Utilizare ineficient\u0103 a resurselor<\/h3>\n<p>\nA\u0219a cum s-a men\u021bionat anterior, fiecare cluster Kubernetes necesit\u0103 un anumit set de resurse de control: noduri master, componente ale stratului de control, solu\u021bii pentru monitorizare \u0219i \u00eenregistrare.<\/p>\n<p>\u00cen cazul unui num\u0103r mare de clustere mici, trebuie alocate o propor\u021bie mai mare de resurse pentru gestionare.<\/p>\n<h3>\u2212 Costuri ridicate<\/h3>\n<p>\nUtilizarea ineficient\u0103 a resurselor atrage automat costuri mari.<\/p>\n<p>De exemplu, utilizarea a 30 de noduri master \u00een loc de trei, cu aceea\u0219i capacitate de calcul, va avea un impact inevitabil asupra costurilor.<\/p>\n<h3>\u2212 Dificult\u0103\u021bi de administrare<\/h3>\n<p>\nAdministrarea unui num\u0103r mare de clustere Kubernetes este mult mai complicat\u0103 dec\u00e2t lucrul cu unul singur.<\/p>\n<p>De exemplu, va trebui s\u0103 configura\u021bi autentificarea \u0219i autorizarea pentru fiecare cluster. Actualizarea versiunii Kubernetes va trebui, de asemenea, realizat\u0103 de mai multe ori.<\/p>\n<p>Probabil va trebui s\u0103 aplica\u021bi automatizarea pentru a \u00eembun\u0103t\u0103\u021bi eficien\u021ba tuturor acestor sarcini.<\/p>\n<p><i>Acum s\u0103 discut\u0103m despre scenarii mai pu\u021bin extreme.<\/i><\/p>\n<h2>3. Un cluster pentru fiecare aplica\u021bie<\/h2>\n<p>\n\u00cen cadrul acestui principiu, crea\u021bi un cluster separat pentru toate instan\u021bele unei aplica\u021bii specifice:<\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/238ee74d4e4dc42b7daeadc1ce484905.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Cluster pentru aplica\u021bie<\/i><\/p>\n<p>Aceast\u0103 abordare poate fi v\u0103zut\u0103 ca o generalizare a principiului \u201e<b>cluster separat pentru echip\u0103<\/b>\u201d, deoarece, de obicei, o echip\u0103 de ingineri se ocup\u0103 de dezvoltarea uneia sau mai multor aplica\u021bii.<\/p>\n<p><i>S\u0103 analiz\u0103m avantajele \u0219i dezavantajele acestei abord\u0103ri.<\/i><\/p>\n<h3>+ Clusterul poate fi personalizat pentru aplica\u021bie<\/h3>\n<p>\nDac\u0103 aplica\u021bia are cerin\u021be speciale, acestea pot fi implementate \u00een cluster f\u0103r\u0103 a afecta celelalte clustere.<\/p>\n<p>Astfel de nevoi pot include lucr\u0103tori cu GPU, anumite plugin-uri CNI, service mesh sau orice alt serviciu.<\/p>\n<p>Fiecare cluster poate fi configurat pentru aplica\u021bia care func\u021bioneaz\u0103 \u00een el, astfel \u00eenc\u00e2t s\u0103 con\u021bin\u0103 doar ceea ce este necesar.<\/p>\n<h3>\u2212 Medii diferite \u00eentr-un cluster<\/h3>\n<p>\nDezavantajul acestei abord\u0103ri este c\u0103 instan\u021bele aplica\u021biilor din medii diferite coexista \u00eentr-un singur cluster.<\/p>\n<p>De exemplu, versiunea prod a aplica\u021biei func\u021bioneaz\u0103 \u00een acela\u0219i cluster cu versiunea dev. Acest lucru \u00eenseamn\u0103, de asemenea, c\u0103 dezvoltatorii \u00ee\u0219i desf\u0103\u0219oar\u0103 activitatea \u00een acela\u0219i cluster \u00een care ruleaz\u0103 versiunea de produc\u021bie a aplica\u021biei.<\/p>\n<p>Dac\u0103, din cauza ac\u021biunilor dezvoltatorilor sau a erorilor versiunii dev, apare o defec\u021biune \u00een cluster, versiunea prod poate fi afectat\u0103, ceea ce constituie un dezavantaj major al acestei abord\u0103ri.<\/p>\n<p><i>\u0218i, \u00een final, ultimul scenariu din lista noastr\u0103.<\/i><\/p>\n<h2>4. Un cluster pentru fiecare mediu<\/h2>\n<p>\nAcest scenariu prevede alocarea unui cluster separat pentru fiecare mediu:<\/p>\n<p><img decoding=\"async\" alt=\"Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie?\" src=\"\/wp-content\/uploads\/2020\/05\/157da599edf178832b1b15459786fbc8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Un cluster pentru mediu<\/i><\/p>\n<p>De exemplu, pute\u021bi avea clustere <i>dev<\/i>, <i>test<\/i> \u0219i <i>prod<\/i>, \u00een care ve\u021bi rula toate instan\u021bele aplica\u021biei destinate unui mediu specific.<\/p>\n<p><i>Iat\u0103 avantajele \u0219i dezavantajele acestei abord\u0103ri.<\/i><\/p>\n<h3>+ Izolarea mediului prod<\/h3>\n<p>\n\u00cen cadrul acestei abord\u0103ri, toate mediile sunt izolate una de cealalt\u0103. Totu\u0219i, \u00een practic\u0103, acest lucru este deosebit de important pentru mediul de produc\u021bie.<\/p>\n<p>Versiunile de produc\u021bie ale aplica\u021biei nu mai depind acum de ceea ce se \u00eent\u00e2mpl\u0103 \u00een alte clustere \u0219i medii.<\/p>\n<p>Astfel, dac\u0103 o problem\u0103 apare brusc \u00een clusterul de dezvoltare, versiunile de produc\u021bie ale aplica\u021biilor vor continua s\u0103 func\u021bioneze ca \u0219i cum nimic nu s-ar fi \u00eent\u00e2mplat.<\/p>\n<h3>+ Clusterul poate fi ajustat pentru mediu<\/h3>\n<p>\nFiecare cluster poate fi adaptat la mediul s\u0103u. De exemplu, se pot:<\/p>\n<ul>\n<li> instala instrumente pentru dezvoltare \u0219i depanare \u00een clusterul de dezvoltare;<\/li>\n<li> instala cadre \u0219i instrumente de testare \u00een cluster; <i>test<\/i>;<\/li>\n<li> folosi echipamente \u0219i canale de re\u021bea mai puternice \u00een cluster; <i>prod<\/i>.<\/li>\n<\/ul>\n<p>\nAceasta permite cre\u0219terea eficien\u021bei at\u00e2t \u00een dezvoltarea, c\u00e2t \u0219i \u00een exploatarea aplica\u021biilor.<\/p>\n<h3>+ Limitarea accesului la clusterul de produc\u021bie<\/h3>\n<p>\nNecesitatea de a lucra direct cu clusterul de produc\u021bie apare rar, a\u0219a c\u0103 se poate limita semnificativ num\u0103rul de persoane care au acces la acesta.<\/p>\n<p>Se poate merge chiar mai departe \u0219i se poate lipsi complet oamenii de acces la acest cluster, iar toate desf\u0103\u0219ur\u0103rile se pot realiza cu ajutorul unui instrument automatizat de CI\/CD. O astfel de abordare va reduce la minimum riscul erorilor umane exact acolo unde este cel mai relevant.<\/p>\n<p><i>Acum, c\u00e2teva cuvinte despre dezavantaje.<\/i><\/p>\n<h3>\u2212 Absen\u021ba izola\u021biei \u00eentre aplica\u021bii<\/h3>\n<p>\nPrincipalul dezavantaj al abord\u0103rii este lipsa izola\u021biei hardware \u0219i de resurse \u00eentre aplica\u021bii.<\/p>\n<p>Aplica\u021biile necorelate \u00eemp\u0103rt\u0103\u0219esc resursele clusterului: nucleul sistemului, procesorul, memoria \u0219i unele alte servicii.<\/p>\n<p>A\u0219a cum s-a men\u021bionat anterior, acest lucru poate fi poten\u021bial periculos.<\/p>\n<h3>\u2212 Imposibilitatea de a localiza dependen\u021bele aplica\u021biilor<\/h3>\n<p>\nDac\u0103 o aplica\u021bie are cerin\u021be speciale, acestea trebuie satisf\u0103cute \u00een toate clusterele.<\/p>\n<p>De exemplu, dac\u0103 aplica\u021biei \u00eei este necesar un GPU, atunci fiecare cluster trebuie s\u0103 con\u021bin\u0103 cel pu\u021bin un worker cu GPU (chiar dac\u0103 este folosit doar de aceast\u0103 aplica\u021bie).<\/p>\n<p>\u00cen consecin\u021b\u0103, risc\u0103m s\u0103 ob\u021binem costuri mai mari \u0219i o utilizare ineficient\u0103 a resurselor.<\/p>\n<h2>Concluzie<\/h2>\n<p>\nCu un anumit set de aplica\u021bii, acestea pot fi plasate \u00een mai multe clustere mari sau \u00een multe mici.<\/p>\n<p>Articolul analizeaz\u0103 beneficiile \u0219i dezavantajele diferitelor abord\u0103ri, de la un singur cluster global p\u00e2n\u0103 la mai multe mici \u0219i specializate:<\/p>\n<ul>\n<li> o mare cluster comun;<\/li>\n<li> multe clustere mici specializate;<\/li>\n<li> un cluster pentru fiecare aplica\u021bie;<\/li>\n<li> un cluster pentru fiecare mediu.<\/li>\n<\/ul>\n<p>\n<i>Deci, ce abordare ar trebui aleas\u0103?<\/i><\/p>\n<p>Ca de obicei, r\u0103spunsul depinde de scenariul de utilizare: trebuie s\u0103 c\u00e2nt\u0103ri\u021bi avantajele \u0219i dezavantajele diferitelor abord\u0103ri \u0219i s\u0103 alege\u021bi cea mai optim\u0103 variant\u0103.<\/p>\n<p>Cu toate acestea, alegerea nu se limiteaz\u0103 la exemplele de mai sus \u2014 se poate folosi orice combina\u021bie dintre ele!<\/p>\n<p>De exemplu, se pot organiza c\u00e2te dou\u0103 clustere pentru fiecare echip\u0103: un cluster pentru dezvoltare (\u00een care vor fi medii <i>dev<\/i> \u0219i <i>test<\/i>) \u0219i un cluster pentru <i>produc\u021bie<\/i> (unde va fi mediu de produc\u021bie).<\/p>\n<p>Baz\u00e2ndu-v\u0103 pe informa\u021biile din acest articol, ve\u021bi putea optimiza avantajele \u0219i dezavantajele \u00een func\u021bie de scenariul specific. Succes!<\/p>\n<h2>P.S.<\/h2>\n<p>\nCiti\u021bi \u0219i \u00een blogul nostru:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/484954\/\">Ghid vizual pentru diagnosticarea problemelor \u00een Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/480946\/\">Jurnalele \u00een Kubernetes (\u0219i nu numai) ast\u0103zi: a\u0219tept\u0103ri \u0219i realitate<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/478306\/\">Service Mesh: Ce trebuie s\u0103 \u0219tie fiecare Software Engineer despre cea mai popular\u0103 tehnologie<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468679\/\">ABC-ul securit\u0103\u021bii \u00een Kubernetes: autentificare, autorizare, audit<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Sursa: <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.2.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\/ro\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Proiectarea clusterelor Kubernetes: c\u00e2te ar trebui s\u0103 fie? | ProHoster","description":"Not\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/proektirovanie-kubernetes-klasterov-skolko-ih-dolzhno-byt","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/80076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=80076"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/80076\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/80077"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=80076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=80076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=80076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}