{"id":75425,"date":"2020-03-26T07:42:30","date_gmt":"2020-03-26T05:42:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/luchshie-10-hitrostej-i-sovetov-po-kubernetes"},"modified":"2020-03-26T07:42:30","modified_gmt":"2020-03-26T05:42:30","slug":"luchshie-10-hitrostej-i-sovetov-po-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-10-hitrostej-i-sovetov-po-kubernetes","title":{"rendered":"Cele mai bune 10 sfaturi \u0219i trucuri pentru Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cele mai bune 10 sfaturi \u0219i trucuri pentru Kubernetes\" src=\"\/wp-content\/uploads\/2020\/03\/4e4a268e9cee6b8b10d283805227b5ac.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPe internet exist\u0103 multe resurse de referin\u021b\u0103, dar uneori cele mai valoroase sunt cele mai simple sfaturi. Echipa <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/containers\/\">Kubernetes aaS de la Mail.ru<\/a><\/noindex> a tradus <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/faun\/top-10-kubernetes-tips-and-tricks-d07d38700a70\">o selec\u021bie de zece trucuri \u0219i sfaturi<\/a><\/noindex>, pe care autorul articolului le-a adunat dup\u0103 un an de munc\u0103 cu Kubernetes. Sfaturile nu sunt ordonate dup\u0103 importan\u021b\u0103, dar credem c\u0103 fiecare va g\u0103si ceva util pentru sine.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Cea mai simpl\u0103 comand\u0103 \u00een lucrul cu Kubernetes<\/h2>\n<p>\nPentru \u00eenceput, probabil cea mai simpl\u0103 \u0219i util\u0103 ac\u021biune \u00een lucrul cu Kubernetes. Urm\u0103toarea comand\u0103 activeaz\u0103 completarea automat\u0103 a comenzilor <code>kubectl<\/code> \u00een shell-ul bash:<\/p>\n<pre><code class=\"bash\">echo \"source &gt; ~\/.bashrc\n<\/code><\/pre>\n<p>\nCompletarea automat\u0103 <code>kubectl<\/code> va fi scris\u0103 \u00een fi\u0219ierul .bashrc \u0219i va fi activat\u0103 automat de fiecare dat\u0103 c\u00e2nd deschide\u021bi shell-ul. Aceasta accelereaz\u0103 introducerea comenzilor \u0219i parametrilor lungi, cum ar fi <code>toate-nume<\/code>. Mai multe detalii \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/#kubectl-autocompletion-0\">documenta\u021bia Kubernetes pentru bash<\/a><\/noindex>.<\/p>\n<h2>Limitele implicite pentru memorie \u0219i CPU \u00een spa\u021biul de nume<\/h2>\n<p>\nDac\u0103 aplica\u021bia este scris\u0103 gre\u0219it, de exemplu, deschide o nou\u0103 conexiune la baza de date \u00een fiecare secund\u0103, dar niciodat\u0103 nu o \u00eenchide, atunci \u00een cluster are loc o scurgere de memorie. Iar dac\u0103 pentru aplica\u021bie nu sunt setate limite de memorie la desf\u0103\u0219urare, acest lucru poate duce la o c\u0103dere a nodului.<\/p>\n<p>Pentru a preveni acest lucru, Kubernetes permite setarea limitelor implicite pentru fiecare spa\u021biu de nume. Acestea sunt specificate \u00een fi\u0219ierul yaml pentru spa\u021biul de nume respectiv. Iat\u0103 un exemplu de fi\u0219ier:<\/p>\n<pre><code class=\"go\">apiVersion: v1\nkind: LimitRange\nmetadata:\n  name: mem-limit-range\nspec:\n  limits:\n  - default:\n      memory: 512Mi\n    defaultRequest:\n      memory: 256Mi\n    type: Container\n<\/code><\/pre>\n<p>\nCreeaz\u0103 un astfel de yaml \u0219i aplic\u0103-l oric\u0103rui spa\u021biu de nume. De exemplu, spa\u021biul de nume <code>limit-example<\/code>. Acum, pentru orice container desf\u0103\u0219urat \u00een acest spa\u021biu de nume, va exista o limit\u0103 de 512Mi, dac\u0103 pentru acel container nu este setat\u0103 o alt\u0103 limit\u0103 individual\u0103.<\/p>\n<h2>Cur\u0103\u021barea coloanelor de\u0219euri \u00een versiunile vechi de Kubernetes<\/h2>\n<p>\nKubelet \u00eencepe \u00een mod implicit cur\u0103\u021barea coloanelor de\u0219euri atunci c\u00e2nd <i>var\/lib\/docker<\/i> ocup\u0103 90% din spa\u021biul disc disponibil. Este minunat, totu\u0219i, p\u00e2n\u0103 la versiunea Kubernetes 1.7 nu existau limite implicite pentru num\u0103rul descriptorilor de index inode utiliza\u021bi (inodes), care corespunde num\u0103rului de fi\u0219iere din sistemul de fi\u0219iere.<\/p>\n<p>Potrivit, containerul dvs. <i>var\/lib\/docker<\/i> poate utiliza doar 50% din spa\u021biul pe disc, dar descriptorii inode se pot epuiza, ceea ce va provoca probleme \u00een func\u021bionarea muncitorilor.<\/p>\n<p>\u00cen versiunile vechi de kubelet de la 1.4 la 1.6, va trebui s\u0103 ad\u0103uga\u021bi acest flag:<\/p>\n<pre><code class=\"go\">--eviction-hard\n=memory.available&lt;100Mi,nodefs.available&lt;10%,nodefs.inodesFree&lt;5%\n<\/code><\/pre>\n<p>\n\u00cen versiunile 1.7 \u0219i mai recente, acest flag este setat implicit. Totu\u0219i, versiunile anterioare nu monitorizeaz\u0103 limita inodelor.<\/p>\n<h2>Minikube\u2026 mic, dar puternic Kubernetes local<\/h2>\n<p>\nMinikube este cea mai simpl\u0103 modalitate de a rula un cluster Kubernetes local. Acesta se porne\u0219te cu o comand\u0103 simpl\u0103:<\/p>\n<pre><code class=\"go\">minikube start\n<\/code><\/pre>\n<p>\nCa rezultat al execut\u0103rii acestei comenzi, pe computerul dvs. va func\u021biona un adev\u0103rat cluster Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Cele mai bune 10 sfaturi \u0219i trucuri pentru Kubernetes\" src=\"\/wp-content\/uploads\/2020\/03\/a27a11ddb35992fbb2835851633eb9c7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@sindhujacynixit\/what-is-the-kubernetes-cluster-de2a33e6572\"><i>Sursa ilustra\u021biei<\/i><\/a><\/noindex><\/p>\n<p>Trucul este modul \u00een care s\u0103 construi\u021bi aplica\u021bia \u0219i s\u0103 o rula\u021bi local \u00een acest cluster. Dac\u0103 nu da\u021bi instruc\u021biuni speciale, imaginea Docker se va construi pe computerul dvs., nu \u00een cluster.<\/p>\n<p>Pentru a face ca Docker s\u0103 trimit\u0103 imaginea \u00een clusterul Kubernetes local, se d\u0103 urm\u0103toarea comand\u0103 ma\u0219inii Docker:<\/p>\n<pre><code class=\"go\">eval $(minikube docker-env)\n<\/code><\/pre>\n<p>\nAcum putem construi aplica\u021bii pe clusterul Kubernetes local.<\/p>\n<h2>Nu oferi\u021bi acces kubectl la toat\u0103 lumea<\/h2>\n<p>\nPare evident, dar dac\u0103 mai multe echipe folosesc acela\u0219i cluster pentru aplica\u021biile lor (de aceea a fost creat Kubernetes), nu este recomandat s\u0103 oferi\u021bi f\u0103r\u0103 discriminare. <code>kubectl<\/code>. Este mai bine s\u0103 \u00eemp\u0103r\u021bi\u021bi echipele, aloc\u00e2nd fiec\u0103rei echipe propriul spa\u021biu de nume \u0219i delimit\u00e2nd accesul prin politici RBAC.<\/p>\n<p>Pute\u021bi s\u0103 v\u0103 face\u021bi griji asupra permisiunilor fiec\u0103rui pod pentru acces, citire, creare, \u0219tergere \u0219i alte opera\u021biuni. Dar cel mai important este s\u0103 restric\u021biona\u021bi accesul la secrete, permi\u021b\u00e2ndu-l doar administratorilor. Astfel, vom delimita pe cei care pot administra clusterul de cei care pot desf\u0103\u0219ura pur \u0219i simplu \u00een el.<\/p>\n<h2>Gestiona\u021bi bugetele podurilor<\/h2>\n<p>\nCum s\u0103 garant\u0103m absen\u021ba opririlor pentru aplica\u021bie \u00een clusterul Kubernetes? PodDisruptionBudget \u0219i \u00eenc\u0103 o dat\u0103 PodDisruptionBudget.<\/p>\n<p>Clusterele sunt actualizate periodic, iar nodurile sunt golite. Nimic nu st\u0103 pe loc, aceasta este realitatea. Fiecare desf\u0103\u0219urare cu mai mult de o instan\u021b\u0103 ar trebui s\u0103 includ\u0103 \u00eentotdeauna PDB (PodDisruptionBudget). Acesta se creeaz\u0103 \u00eentr-un simplu fi\u0219ier yaml, care este aplicat la cluster. Domeniul de aplicare al unui PDB specific este definit de selectorii de etichete.<\/p>\n<p><strong>Not\u0103:<\/strong> Bugetul PDB se ia \u00een considerare doar \u00een cazul unei \u00eenc\u0103lc\u0103ri reversibile a bugetului (<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/disruptions\/#voluntary-and-involuntary-disruptions\">\u00eencetare voluntar\u0103<\/a><\/noindex>). \u00cen situa\u021bii precum defectele hardware, PDB nu va func\u021biona.<\/p>\n<p><strong>Exemplu de PDB:<\/strong><\/p>\n<pre><code class=\"go\">apiVersion: policy\/v1beta1\nkind: PodDisruptionBudget\nmetadata:\n  name: app-a-pdb\nspec:\n  minAvailable: 2\n  selector:\n      matchLabels:\n        app: app-a\n<\/code><\/pre>\n<p>\nCele dou\u0103 parametrii principali sunt <code>matchLabels<\/code> \u0219i <code>minAvailable<\/code>. Primul parametru specific\u0103 pentru ce aplica\u021bii se aplic\u0103 bugetul. De exemplu, dac\u0103 am deployment-uri cu etichete <code>app: app-a<\/code> \u0219i <code>app: app-b<\/code>, atunci acest PDB se va aplica doar primului.<\/p>\n<p>Parametru <code>minAvailable<\/code> este luat \u00een calcul la golirea (cur\u0103\u021barea) nodului. De exemplu, \u00een cazul nostru, \u00een timpul golirii, toate instan\u021bele <code>app: app-a<\/code>, cu excep\u021bia a dou\u0103.<\/p>\n<p>Aceasta permite controlul asupra c\u00e2te instan\u021be ale aplica\u021biei ar trebui s\u0103 fie executate \u00een fiecare moment.<\/p>\n<h2>Monitorizarea st\u0103rii aplica\u021biei<\/h2>\n<p>\nAceast\u0103 monitorizare este posibil\u0103 \u00een dou\u0103 moduri: prin probele Readiness sau Liveness.<\/p>\n<p>Prima prob\u0103 (readiness) determin\u0103 dac\u0103 containerul este preg\u0103tit pentru a primi trafic.<\/p>\n<p>A doua (liveness) arat\u0103 dac\u0103 containerul este func\u021bional sau trebuie reinicializat.<\/p>\n<p>Configur\u0103rile corespunz\u0103toare sunt ad\u0103ugate pur \u0219i simplu \u00een yaml pentru desf\u0103\u0219urare. Acolo pot fi specificate timeout-uri, timp de \u00eent\u00e2rziere \u0219i num\u0103rul de repeti\u021bii ale probelor. Mai multe detalii despre acestea g\u0103si\u021bi \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/\">documenta\u021bia Kubernetes<\/a><\/noindex>.<\/p>\n<h2>Etichete peste tot<\/h2>\n<p>\nEtichetele sunt unul dintre conceptele fundamentale din Kubernetes. Ele permit obiectelor s\u0103 se conecteze liber \u00eentre ele, precum \u0219i s\u0103 creeze solicit\u0103ri pe baza etichetelor. \u00cen Kubernetes, este chiar posibil s\u0103 accesa\u021bi clientul \u0219i s\u0103 observa\u021bi evenimentele pe baza unor etichete specifice.<\/p>\n<p>Folosing etichete, se poate face practic orice, dar un exemplu bun ar fi crearea mai multor medii pentru rularea programelor \u00eentr-un singur cluster.<\/p>\n<p>S\u0103 presupunem c\u0103 folosi\u021bi acela\u0219i cluster pentru <code>dev<\/code> \u0219i <code>qa<\/code>. Aceasta \u00eenseamn\u0103 c\u0103 ave\u021bi o aplica\u021bie <code>app-a<\/code>, care poate func\u021biona simultan \u00een ambele medii <code>qa<\/code> \u0219i <code>dev<\/code>. \u00cen acest caz, putem apela \u00een mod separat la instan\u021ba aplica\u021biei dintr-o anumit\u0103 mediu, specific\u00e2nd parametrul corespunz\u0103tor <code>environment<\/code>. De exemplu, <code>app: app-a<\/code> \u0219i <code>environment: dev<\/code> pentru un mediu, \u0219i <code>app: app-a<\/code> \u0219i <code>environment: qa<\/code> pentru al doilea.<\/p>\n<p>Aceasta permite accesarea ambelor instan\u021be ale aplica\u021biei, de exemplu, pentru a efectua teste simultan.<\/p>\n<h2>Organiza\u021bi-v\u0103<\/h2>\n<p>\nKubernetes este un sistem foarte puternic, dar orice sistem poate ajunge, \u00een cele din urm\u0103, s\u0103 fie cople\u0219it de un num\u0103r mare de procese. Kubelet ruleaz\u0103 toate procesele \u0219i verific\u0103rile specificate de voi, precum \u0219i pe ale sale.<\/p>\n<p>Sigur, un serviciu l\u0103sat necontrolat nu va \u00eencetini sistemul, iar Kubernetes este ini\u021bial proiectat pentru scalare. Dar dac\u0103 \u00een loc de un singur serviciu apar milioane, kubelet-ul \u00eencepe s\u0103 se cople\u0219easc\u0103.<\/p>\n<p>Dac\u0103 dintr-un anumit motiv \u0219terge\u021bi un deployment (container, imagine, orice altceva), asigura\u021bi-v\u0103 c\u0103 a fost efectuat\u0103 o cur\u0103\u021bare complet\u0103.<\/p>\n<h2>\u00cent\u00e2lni\u021bi Go<\/h2>\n<p>\nCel mai important sfat l-am p\u0103strat pentru final. \u00cenv\u0103\u021ba\u021bi limbajul de programare Go.<\/p>\n<p>Kubernetes este dezvoltat \u00een Go, toate extensiile sunt scrise \u00een Go \u0219i, mai mult, biblioteca client oficial\u0103 client-go este sus\u021binut\u0103.<\/p>\n<p>Este utilizat\u0103 pentru lucruri diverse \u0219i interesante. De exemplu, pentru a extinde sistemul Kubernetes \u00een modul dorit. Astfel, pute\u021bi folosi propriile programe pentru colectarea datelor, desf\u0103\u0219urarea aplica\u021biilor sau simpla cur\u0103\u021bare a containerelor.<\/p>\n<p>S\u0103 \u00eenv\u0103\u021ba\u021bi limbajul de programare Go \u0219i s\u0103 st\u0103p\u00e2ni\u021bi client-go este, probabil, cel mai important sfat pe care \u00eel putem oferi utilizatorilor \u00eencep\u0103tori ai Kubernetes.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\"><i>Tradus cu sprijinul Mail.ru Cloud Solutions<\/i><\/a><\/noindex><\/p>\n<p><strong>Ce altceva s\u0103 citi\u021bi<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/484344\/\">Three levels of autoscaling in Kubernetes and how to use them effectively<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/484334\/\">Nodurile de lucru Kubernetes: multe mici sau pu\u021bine mari<\/a><\/noindex>?<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/25-poleznyh-instrumentov-kubernetes-razvertyvanie-i-upravlenie\">25 de unelte utile pentru desf\u0103\u0219urarea \u0219i gestionarea Kubernetes<\/a><\/noindex>.<\/li>\n<\/ol>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/493772\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u043e\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b, \u043d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0441\u0430\u043c\u044b\u043c\u0438 \u0446\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u044b. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Kubernetes aaS \u043e\u0442 Mail.ru \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0430 \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441\u043e\u0432\u0435\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u043e\u0431\u0440\u0430\u043b\u0430 \u043f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes. \u0421\u043e\u0432\u0435\u0442\u044b \u043d\u0435 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0434\u0443\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0430\u0439\u0434\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f. \u0421\u0430\u043c\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Kubernetes [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":75426,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-75425","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=\"\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u043e\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b, \u043d\u043e.\" \/>\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\/luchshie-10-hitrostej-i-sovetov-po-kubernetes\" \/>\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\u041b\u0443\u0447\u0448\u0438\u0435 10 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u043f\u043e Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u043e\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b, \u043d\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-10-hitrostej-i-sovetov-po-kubernetes\" \/>\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-03-26T05:42:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-26T05:42:30+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\udd47Cele mai bune 10 trucuri \u0219i sfaturi pentru Kubernetes | ProHoster","description":"Pe internet exist\u0103 mult\u0103 literatur\u0103 de referin\u021b\u0103, dar.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-10-hitrostej-i-sovetov-po-kubernetes","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\u041b\u0443\u0447\u0448\u0438\u0435 10 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u0435\u0439 \u0438 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u043f\u043e Kubernetes | ProHoster","og:description":"\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u043e\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b, \u043d\u043e.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/luchshie-10-hitrostej-i-sovetov-po-kubernetes","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-03-26T05:42:30+00:00","article:modified_time":"2020-03-26T05:42:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75425","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 17:56:30","updated":"2022-10-01 20:34:03","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\/75425","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=75425"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/75425\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/75426"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=75425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=75425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=75425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}