{"id":39016,"date":"2019-10-31T22:27:21","date_gmt":"2019-10-31T19:27:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google\/"},"modified":"2019-10-31T22:27:21","modified_gmt":"2019-10-31T19:27:21","slug":"7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","title":{"rendered":"7 cele mai bune practici pentru exploatarea containerelor conform Google","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota traduc\u0103torului.<\/b>: Autorul articolului original este Th\u00e9o Chamley, arhitect de solu\u021bii cloud la Google. \u00cen aceast\u0103 publicare pe blogul Google Cloud, el a prezentat un rezumat concis dintr-un ghid mai detaliat al companiei sale, intitulat \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Cele mai bune practici pentru operarea containerelor<\/a><\/noindex>\u201d. \u00cen el, speciali\u0219tii Google au adunat cele mai bune practici pentru exploatarea containerelor \u00een contextul utiliz\u0103rii Google Kubernetes Engine \u0219i nu numai, acoperind o gam\u0103 larg\u0103 de teme: de la securitate p\u00e2n\u0103 la monitorizare \u0219i \u00eenregistrare. A\u0219adar, care sunt practicile cele mai importante \u00een lucru cu containere, potrivit Google?<\/i><\/p>\n<p><img decoding=\"async\" alt=\"7 cele mai bune practici pentru exploatarea containerelor conform Google\" src=\"\/wp-content\/uploads\/2019\/10\/43aaa13a0fae1564ffc7f0a1fe0020b7.jpg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/\">Google Kubernetes Engine<\/a><\/noindex> <i>(serviciul bazat pe Kubernetes pentru rularea aplica\u021biilor containerizate \u00een Google Cloud \u2014 <b>not\u0103 de traducere.<\/b>)<\/i> \u2014 este una dintre cele mai bune modalit\u0103\u021bi de a rula sarcini de lucru care necesit\u0103 scalare. <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes\/\">Kubernetes<\/a><\/noindex> va asigura func\u021bionarea f\u0103r\u0103 probleme a majorit\u0103\u021bii aplica\u021biilor, dac\u0103 acestea sunt containerizate. Dar, dac\u0103 dori\u021bi ca aplica\u021bia s\u0103 fie u\u0219or de gestionat \u0219i s\u0103 profita\u021bi de toate avantajele Kubernetes, trebuie s\u0103 urma\u021bi cele mai bune practici. Acestea vor simplifica exploatarea aplica\u021biei, monitorizarea \u0219i depanarea acesteia, precum \u0219i vor \u00eembun\u0103t\u0103\u021bi securitatea.<\/p>\n<p>\u00cen acest articol, vom trece \u00een revist\u0103 lista a ceea ce trebuie s\u0103 \u0219ti\u021bi \u0219i s\u0103 face\u021bi pentru o func\u021bionare eficient\u0103 a containerelor \u00een Kubernetes. Cei care doresc s\u0103 \u00een\u021beleag\u0103 mai \u00een detaliu ar trebui s\u0103 citeasc\u0103 materialul <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Cele mai bune practici pentru operarea containerelor<\/a><\/noindex>, iar de asemenea s\u0103 acorde aten\u021bie post\u0103rii noastre <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/7-best-practices-for-building-containers\">anterioare<\/a><\/noindex> despre construirea containerelor.<\/p>\n<h2>1. Utiliza\u021bi mecanismele native ale containerelor pentru \u00eenregistrare<\/h2>\n<p>\nDac\u0103 aplica\u021bia este rulat\u0103 \u00eentr-un cluster Kubernetes, nu este nevoie de prea mult pentru \u00eenregistr\u0103ri. Un sistem de \u00eenregistrare centralizat este probabil deja integrat \u00een clusterul utilizat. \u00cen cazul utiliz\u0103rii Google Kubernetes Engine, aceasta este responsabilitatea <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/\">Stackdriver Logging<\/a><\/noindex>. <i>(<b>Nota traduc\u0103torului.<\/b>: \u00cen cazul utiliz\u0103rii unei instal\u0103ri proprii de Kubernetes, v\u0103 recomand\u0103m s\u0103 lua\u021bi \u00een considerare solu\u021bia noastr\u0103 Open Source \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/loghouse\">loghouse<\/a><\/noindex>.)<\/i> Nu v\u0103 complica\u021bi via\u021ba \u0219i folosi\u021bi mecanismele native ale jurnaliz\u0103rii containerelor. Scrie\u021bi \u00eenregistr\u0103rile \u00een stdout \u0219i stderr \u2014 ele vor fi ob\u021binute, salvate \u0219i indexate automat.<\/p>\n<p>Dac\u0103 dori\u021bi, pute\u021bi, de asemenea, s\u0103 scrie\u021bi \u00eenregistr\u0103rile \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/docs\/structured-logging\">format JSON<\/a><\/noindex>. Aceast\u0103 abordare va permite ad\u0103ugarea u\u0219oar\u0103 de metadate. \u0218i \u00eempreun\u0103 cu acestea, \u00een Stackdriver Logging va ap\u0103rea posibilitatea de c\u0103utare a \u00eenregistr\u0103rilor folosind aceste metadate.<\/p>\n<h2>2. Asigura\u021bi-v\u0103 c\u0103 containerele sunt stateless \u0219i immutable<\/h2>\n<p>\nPentru un func\u021bionare corect\u0103 a containerelor \u00eentr-un cluster Kubernetes, acestea trebuie s\u0103 fie stateless \u0219i immutable. C\u00e2nd aceste condi\u021bii sunt \u00eendeplinite, Kubernetes \u00ee\u0219i va putea \u00eendeplini sarcinile, cre\u00e2nd \u0219i distrug\u00e2nd entit\u0103\u021bi ale aplica\u021biei ori de c\u00e2te ori \u0219i unde este necesar.<\/p>\n<p><i>Stateless<\/i> \u00eenseamn\u0103 c\u0103 orice stare (date persistente de orice fel) este stocat\u0103 \u00een afara containerului. \u00cen acest sens, \u00een func\u021bie de necesit\u0103\u021bi, pot fi utilizate diferite tipuri de stoc\u0103ri externe: <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/storage\/docs\">Cloud Storage<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/stateful-apps\">Discuri Persistente<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/memorystore\/docs\/redis\/\">Redis<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/sql\/docs\/\">Cloud SQL<\/a><\/noindex> sau alte baze de date gestionate. <i>(<b>Nota traduc\u0103torului.<\/b>: Afla\u021bi mai multe despre acest subiect \u00een articolul nostru \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/326414\/\">Operatori pentru Kubernetes: cum s\u0103 lancezi aplica\u021bii stateful<\/a><\/noindex>\u00bb.)<\/i><\/p>\n<p><i>Immutable<\/i> \u00eenseamn\u0103 c\u0103 containerul nu va fi modificat pe parcursul vie\u021bii sale: nicio actualizare, niciun patch, f\u0103r\u0103 modific\u0103ri ale configura\u021biei. Dac\u0103 dori\u021bi s\u0103 actualiza\u021bi codul aplica\u021biei sau s\u0103 aplica\u021bi un patch, crea\u021bi o nou\u0103 imagine \u0219i desf\u0103\u0219ura\u021bi-o. Se recomand\u0103 extragerea configura\u021biei containerului (portul de ascultare, op\u021biunile mediului de execu\u021bie etc.) \u00een afara acestuia \u2014 \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/secret\/\">Secrets<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-pod-configmap\/\">ConfigMaps<\/a><\/noindex>. Acestea pot fi actualizate f\u0103r\u0103 a fi necesar\u0103 construirea unei noi imagini a containerului. Pentru a simplifica crearea de pipeline-uri pentru construc\u021bia imaginilor, se poate utiliza <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/cloud-build\/\">Cloud Build<\/a><\/noindex>. <i>(<b>Nota traduc\u0103torului.<\/b>: Pentru aceste scopuri, folosim instrumentul Open Source <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/dapp\">dapp<\/a><\/noindex>.)<\/i><\/p>\n<p><img decoding=\"async\" alt=\"7 cele mai bune practici pentru exploatarea containerelor conform Google\" src=\"\/wp-content\/uploads\/2019\/10\/f13a83d22e7b8d7c1e8ac6a63c35646c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Exemplu de actualizare a configura\u021biei Deployment \u00een Kubernetes folosind ConfigMap, montat \u00een poduri ca un config<\/i><\/p>\n<h2>3. Evita\u021bi containerele privilegiate<\/h2>\n<p>\nNu rula\u021bi aplica\u021bii sub root pe serverele dumneavoastr\u0103, corect? Dac\u0103 un atacator p\u0103trunde \u00een aplica\u021bie, va ob\u021bine acces cu drepturi de root. Acelea\u0219i considera\u021bii se aplic\u0103 \u0219i pentru a nu rula containere privilegiate. Dac\u0103 este necesar s\u0103 modifica\u021bi set\u0103rile pe host, pute\u021bi atribui containerului specifica\u021bii. <i>capabilities<\/i> prin op\u021biunea <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/security-context\/#set-capabilities-for-a-container\"><code>securityContext<\/code><\/a><\/noindex> \u00een Kubernetes. Dac\u0103 este nevoie s\u0103 modifica\u021bi <i>sysctls<\/i>, Kubernetes are <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/sysctl-cluster\/\">o anota\u021bie separat\u0103<\/a><\/noindex> pentru aceasta. \u00cen general, \u00eencerca\u021bi s\u0103 utiliza\u021bi c\u00e2t mai mult <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">init-<\/a><\/noindex> \u0219i containere sidecar pentru a efectua astfel de opera\u021biuni privilegiate. Ele nu necesit\u0103 accesibilitate pentru traficul intern sau extern.<\/p>\n<p>Dac\u0103 administra\u021bi un cluster, pute\u021bi utiliza <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/pod-security-policy\/#privileged\">Politica de Securitate a Pod-urilor<\/a><\/noindex> pentru limit\u0103rile aplic\u0103rii containerelor privilegiate.<\/p>\n<h2>4. Evita\u021bi rularea sub root<\/h2>\n<p>\nS-au men\u021bionat deja containerele privilegiate, dar ar fi \u0219i mai bine dac\u0103, \u00een completare, nu ve\u021bi rula aplica\u021bii sub root \u00een interiorul containerului. Dac\u0103 un atacator descoper\u0103 o vulnerabilitate la distan\u021b\u0103 \u00een aplica\u021bia cu drepturi de root care permite executarea de cod \u0219i apoi reu\u0219e\u0219te s\u0103 ias\u0103 din limita containerului printr-o vulnerabilitate neidentificat\u0103, va ob\u021bine drepturi de root pe host.<\/p>\n<p>Cea mai bun\u0103 modalitate de a evita aceasta este, \u00een primul r\u00e2nd, s\u0103 nu rula\u021bi nimic sub root. Pentru aceasta, pute\u021bi folosi directiva. <code>USER<\/code> \u00een <code>Dockerfile<\/code> sau <code>runAsUser<\/code> \u00een Kubernetes. Administratorul de cluster poate de asemenea s\u0103 configureze un comportament for\u021bat cu ajutorul <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/pod-security-policies\">Politica de Securitate a Pod-urilor<\/a><\/noindex>.<\/p>\n<h2>5. Faceti aplica\u021bia u\u0219or de monitorizat<\/h2>\n<p>\nLa fel ca \u0219i logarea, monitorizarea este o parte esen\u021bial\u0103 a managementului aplica\u021biei. O solu\u021bie popular\u0103 pentru monitorizare \u00een comunitatea Kubernetes este <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex> \u2014 un sistem care descoper\u0103 automat podurile \u0219i serviciile ce necesit\u0103 monitorizare. <i>(<b>Nota traduc\u0103torului.<\/b>: Consulta\u021bi \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">raportul nostru detaliat<\/a><\/noindex> privind monitorizarea folosind Prometheus \u0219i Kubernetes.)<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/monitoring\/kubernetes-engine\/\">Stackdriver<\/a><\/noindex> este capabil s\u0103 monitorizeze clustere Kubernetes \u0219i include versiunea sa de Prometheus pentru monitorizarea aplica\u021biilor.<\/p>\n<p><img decoding=\"async\" alt=\"7 cele mai bune practici pentru exploatarea containerelor conform Google\" src=\"\/wp-content\/uploads\/2019\/10\/642b9ccc4b7a789018a4aeeb62e7cae7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Panoul de monitorizare Kubernetes din Stackdriver<\/i><\/p>\n<p>Prometheus se a\u0219teapt\u0103 ca aplica\u021bia s\u0103 expun\u0103 metrici printr-un endpoint HTTP. Pentru aceasta sunt disponibile <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/docs\/instrumenting\/clientlibs\/\">biblioteci client Prometheus<\/a><\/noindex>. Acela\u0219i format este utilizat de alte instrumente precum <noindex><a rel=\"nofollow\" href=\"http:\/\/opencensus.io\/\">OpenCensus<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Istio<\/a><\/noindex>.<\/p>\n<h2>6. Face\u021bi disponibil statusul s\u0103n\u0103t\u0103\u021bii aplica\u021biei<\/h2>\n<p>\nManagementul aplica\u021biei \u00een produc\u021bie beneficiaz\u0103 de capacitatea acesteia de a raporta starea sa \u00eentregului sistem. Este aplica\u021bia pornit\u0103? Este func\u021bional\u0103? Este preg\u0103tit\u0103 s\u0103 primeasc\u0103 trafic? Cum se comport\u0103? Cea mai comun\u0103 metod\u0103 de a aborda aceast\u0103 problem\u0103 este implementarea verific\u0103rilor de s\u0103n\u0103tate <i>(health checks)<\/i>. Kubernetes dispune de dou\u0103 tipuri de asemenea verific\u0103ri: <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness \u0219i readiness probes<\/a><\/noindex>.<\/p>\n<p>Pentru liveness probe <i>(verific\u0103ri de viabilitate)<\/i> aplica\u021bia trebuie s\u0103 aib\u0103 un endpoint HTTP care returneaz\u0103 r\u0103spunsul \u201e200 OK\u201d dac\u0103 func\u021bioneaz\u0103 \u0219i dependen\u021bele sale principale sunt \u00eendeplinite. Pentru readiness probe <i>(verific\u0103ri de preg\u0103tire pentru servire)<\/i> Aplica\u021bia ar trebui s\u0103 aib\u0103 un alt endpoint HTTP care s\u0103 returneze un r\u0103spuns \"200 OK\" dac\u0103 aplica\u021bia este \u00een stare bun\u0103, pa\u0219ii de ini\u021bializare au fost finaliza\u021bi, iar orice solicitare valid\u0103 nu duce la o eroare. Kubernetes va redirec\u021biona traficul c\u0103tre container doar \u00een cazul \u00een care aplica\u021bia este preg\u0103tit\u0103 conform acestor verific\u0103ri. Cele dou\u0103 endpoint-uri pot fi combinate dac\u0103 nu exist\u0103 nicio diferen\u021b\u0103 \u00eentre st\u0103rile de viabilitate (liveness) \u0219i preg\u0103tire (readiness).<\/p>\n<p>Mai multe informa\u021bii pot fi g\u0103site \u00een articolul corespunz\u0103tor scris de Sandeep Dinesh, Developer Advocate de la Google: \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/kubernetes-best-practices-setting-up-health-checks-with-readiness-and-liveness-probes\">Kubernetes best practices: Configurarea verific\u0103rilor de s\u0103n\u0103tate cu probe de readiness \u0219i liveness<\/a><\/noindex>\u00bb.<\/p>\n<h2>7. Alege\u021bi cu aten\u021bie versiunea imaginii<\/h2>\n<p>\nCele mai multe imagini publice \u0219i private utilizeaz\u0103 un sistem de etichetare similar cu cel descris \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-building-containers#properly_tag_your_images\">Best Practices for Building Containers<\/a><\/noindex>. Dac\u0103 imaginea aplic\u0103 un sistem asem\u0103n\u0103tor cu <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\/lang\/ru\/\">versionarea semantic\u0103<\/a><\/noindex>, este necesar s\u0103 \u021bine\u021bi cont de specificitatea etichet\u0103rii. De exemplu, eticheta <code>latest<\/code> poate migra frecvent de la o imagine la alta - nu se poate conta pe ea dac\u0103 ave\u021bi nevoie de construc\u021bii \u0219i instal\u0103ri previzibile \u0219i reproducibile.<\/p>\n<p>Pute\u021bi utiliza eticheta <code>X.Y.Z<\/code> (de obicei, acestea r\u0103m\u00e2n neschimbate), \u00eens\u0103 \u00een acest caz, urm\u0103ri\u021bi toate patch-urile \u0219i actualiz\u0103rile imaginii. Dac\u0103 imaginea utilizat\u0103 are eticheta <code>X.Y<\/code>, acesta este o alegere bun\u0103 de mijloc. Aleg\u00e2nd-o, ob\u021bine\u021bi automat patch-uri \u0219i, \u00een acela\u0219i timp, v\u0103 baza\u021bi pe o versiune stabil\u0103 a aplica\u021biei.<\/p>\n<h2>P.S. de la traduc\u0103tor<\/h2>\n<p>\nCiti\u021bi \u0219i \u00een blogul nostru:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/422949\/\">Noile statistici CNCF despre containere, cloud native \u0219i Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353272\/\">7 principii de proiectare a aplica\u021biilor bazate pe containere<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/417905\/\">11 moduri (nu) de a deveni victima unui atac cibernetic \u00een Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Experien\u021ba noastr\u0103 cu Kubernetes \u00een proiecte mici<\/a><\/noindex>\u00bb <i>(prezentare \u0219i video al prezent\u0103rii)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">Monitorizare \u0219i Kubernetes<\/a><\/noindex>\u00bb <i>(prezentare \u0219i video al prezent\u0103rii)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/324274\/\">Construim imagini Docker pentru CI\/CD rapid \u0219i convenabil \u00eempreun\u0103 cu dapp<\/a><\/noindex>\u00bb <i>(prezentare \u0219i video al prezent\u0103rii)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/322686\/\">Practici de Continuous Delivery cu Docker<\/a><\/noindex>\u00bb <i>(prezentare \u0219i video al prezent\u0103rii)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/347518\/\">Moartea nebuniei microservicilor \u00een 2018<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">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.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 Th\u00e9o Chamley, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 Google. \u0412 \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 Google Cloud \u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u043a\u0440\u0430\u0442\u043a\u0443\u044e \u0432\u044b\u0436\u0438\u043c\u043a\u0443 \u0438\u0437 \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u00abBest Practices for Operating Containers\u00bb. \u0412 \u043d\u0451\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b Google \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043f\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Google Kubernetes Engine \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e, \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29273,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39016","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. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 Th\u00e9o Chamley, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 Google.\" \/>\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\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google\" \/>\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\udd477 \u043b\u0443\u0447\u0448\u0438\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a \u043f\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043f\u043e \u0432\u0435\u0440\u0441\u0438\u0438 Google | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 Th\u00e9o Chamley, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 Google.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google\" \/>\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=\"2019-10-31T19:27:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:21+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\udd477 cele mai bune practici pentru operarea containerelor conform Google | ProHoster","description":"Not\u0103 de traducere: Autorul articolului original este Th\u00e9o Chamley, arhitect de solu\u021bii cloud Google.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","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\udd477 \u043b\u0443\u0447\u0448\u0438\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a \u043f\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043f\u043e \u0432\u0435\u0440\u0441\u0438\u0438 Google | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 Th\u00e9o Chamley, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 Google.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","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":"2019-10-31T19:27:21+00:00","article:modified_time":"2019-10-31T19:27:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39016","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":"2026-01-24 00:24:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:58:39","updated":"2026-01-24 00:24:24","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\/39016","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=39016"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/39016\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/29273"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=39016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=39016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=39016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}