{"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\/et\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","title":{"rendered":"Google'i versiooni j\u00e4rgi 7 parimat praktikat konteinerite kasutamiseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>M\u00e4rkus t\u00f5lke kohta.<\/b>: Originaali artikli autor on Th\u00e9o Chamley, Google'i pilveehitusarhitekt. Selles Google Cloud'i blogipostituses esitleb ta l\u00fchikokkuv\u00f5tte oma ettev\u00f5tte pikemast juhendist, pealkirjaga \"<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Parimad praktikud konteinerite haldamiseks<\/a><\/noindex>\u00bb. Selles on Google'i ekspertide poolt kokku kogutud parimad praktikud konteinerite kasutamiseks Google Kubernetes Engine'i kontekstis ja mitte ainult, k\u00e4sitledes laia teemade spektrit: alates turvalisusest kuni j\u00e4lgimise ja logimise. Nii et millised konteinerite haldamise praktikud on Google'i arvates k\u00f5ige olulisemad?<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Google&#039;i versiooni j\u00e4rgi 7 parimat praktikat konteinerite kasutamiseks\" 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\/\">Kubernetes Engine<\/a><\/noindex> <i>(Kubernetesil p\u00f5hinev teenus konteineriseeritud rakenduste k\u00e4itamiseks Google Cloud'is \u2014 <b>m\u00e4rkus t\u00f5lke kohta.<\/b>)<\/i> on \u00fcks parimaid viise skaleerimist vajavate t\u00f6\u00f6koormuste k\u00e4itamiseks. <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes\/\">Kubernetes<\/a><\/noindex> tagab enamikku rakendustest probleemivaba toimimise, kui need on konteineriseeritud. Kuid kui soovite, et rakenduse haldamine oleks lihtne ja soovite kasutada k\u00f5iki Kubernetes'e eeliseid, tuleb j\u00e4rgida parimaid praktikaid. Need lihtsustavad rakenduse haldamist, selle j\u00e4lgimist ja t\u00f5rkeotsingut ning suurendavad ka turvalisust.<\/p>\n<p>Selles artiklis vaatame \u00fcle, mida on oluline teada ja teha, et tagada konteinerite t\u00f5hus toimimine Kuberneteses. Kes soovib s\u00fcvitsi minna, peaks lugema materjali <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Parimad praktikud konteinerite haldamiseks<\/a><\/noindex>, samuti p\u00f6\u00f6rama t\u00e4helepanu meie <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/7-best-practices-for-building-containers\">varasemale postitusele<\/a><\/noindex> konteinerite ehitamisest.<\/p>\n<h2>1. Kasutage konteinerite logimise natiivmehhanisme<\/h2>\n<p>\nKui rakendus k\u00e4ib Kubernetes'e klastris, siis logide jaoks ei ole vajalik palju. Tsentraliseeritud logimise s\u00fcsteem on t\u00f5en\u00e4oliselt juba sisse ehitatud kasutatavasse klastrisse. Kui kasutate Kubernetes Engine'i, vastutab selle eest <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/\">Stackdriver Logging<\/a><\/noindex>. <i>(<b>M\u00e4rkus t\u00f5lke kohta.<\/b>: Kui kasutate oma Kubernetes'e installatsiooni, soovitame tutvuda meie avatud l\u00e4htekoodiga lahendusega \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/loghouse\">loghouse<\/a><\/noindex>.)<\/i> \u00c4rge keerake endale elu raskeks ja kasutage konteinerite logimise natiivmehhanisme. Kirjutage logid stdout ja stderr \u2014 need saadetakse automaatselt, salvestatakse ja indekseerivad.<\/p>\n<p>Soovi korral saate logisid kirjutada ka <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/docs\/structured-logging\">JSON formaadis<\/a><\/noindex>. Selline l\u00e4henemine v\u00f5imaldab h\u00f5lpsasti lisada neile metaandmeid. Koos nendega ilmub Stackdriver Logging'is v\u00f5imalus otsida logisid nende metaandmete abil.<\/p>\n<h2>2. Veenduge, et konteinerid oleksid stateful ja immutable<\/h2>\n<p>\nKubernetesi klastris t\u00f6\u00f6tavate konteinerite korrektseks funktsioneerimiseks peavad need olema stateless ja immutable. Kui need tingimused on t\u00e4idetud, saab Kubernetes oma \u00fclesandeid t\u00e4ita, luues ja h\u00e4vitades rakenduse \u00fcksusi, kui ja kus see on vajalik.<\/p>\n<p><i>Stateless<\/i> t\u00e4hendab, et k\u00f5ik olekud (k\u00f5ikv\u00f5imalikud p\u00fcsivad andmed) talletatakse konteinerist v\u00e4ljaspool. Selleks, s\u00f5ltuvalt vajadustest, v\u00f5ivad olla kaasatud erinevad v\u00e4lised ladustamisv\u00f5imalused: <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/storage\/docs\">Pilvelaadimise teenus<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/stateful-apps\">P\u00fcsivad kettad<\/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> v\u00f5i muud haldatud andmebaasid. <i>(<b>M\u00e4rkus t\u00f5lke kohta.<\/b>: Lisainformatsiooni selle kohta lugege ka meie artiklist \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/326414\/\">Kubernetes'i operaatorid: kuidas k\u00e4ivitada stateful-rakendusi<\/a><\/noindex>\u00bb.)<\/i><\/p>\n<p><i>Immutable<\/i> t\u00e4hendab, et konteinerit ei muudetaks elu jooksul: ei mingit uuendamist, plaastrite rakendamist ega konfiguratsiooni muutmist. Kui peate rakenduse koodi uuendama v\u00f5i plaastri rakendama, looge uus pilt ja juurutage see. Soovitav on konteineri konfiguratsioon (kuulamisport, k\u00e4ituskeskkonna valikud jne) asetada v\u00e4ljapoole \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/secret\/\">Saladused<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-pod-configmap\/\">ConfigMaps<\/a><\/noindex>. Neid saab uuendada, ilma et oleks vajalik uut konteineripilti luua. Pilti kogumispipeline'ide lihtsaks loomiseks saab kasutada <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/cloud-build\/\">Cloud Build<\/a><\/noindex>. <i>(<b>M\u00e4rkus t\u00f5lke kohta.<\/b>: Me kasutame nende jaoks avatud l\u00e4htekoodiga t\u00f6\u00f6riista <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/dapp\">dapp<\/a><\/noindex>.)<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Google&#039;i versiooni j\u00e4rgi 7 parimat praktikat konteinerite kasutamiseks\" src=\"\/wp-content\/uploads\/2019\/10\/f13a83d22e7b8d7c1e8ac6a63c35646c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>N\u00e4ide Deployment konfiguratsiooni uuendamisest Kubernetesis ConfigMap'i kaudu, mis on monteeritud podidesse konfiguraatorina<\/i><\/p>\n<h2>3. V\u00e4listage privileege sisaldavad konteinerid<\/h2>\n<p>\nTe ei k\u00e4ivita rakendusi root-\u00f5igustes oma serverites, eks? Kui sissetungija p\u00e4\u00e4seb rakendusse, saab ta root-\u00f5igused. Samad kaalutlused kehtivad ka selle kohta, et \u00e4ra k\u00e4ivita privileegitud konteinerit. Kui hosti seadistusi on vaja muuta, saab konteinerile anda konkreetsed <i>capabilities<\/i> kasutades valikut <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> Kubernetesis. Kui on vaja muuta <i>sysctls<\/i>, siis Kubernetesil on <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/sysctl-cluster\/\">erinev annotatsioon<\/a><\/noindex> selle jaoks. \u00dcldiselt p\u00fc\u00fcdke teha maksimaalselt kasutust <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">init-<\/a><\/noindex> ja sidecar-konteineritele sarnaste privileegide toimingute jaoks. Need ei vaja k\u00e4ttesaadavust ei sisetu trafikus, ega v\u00e4lises.<\/p>\n<p>Kui haldate klastrit, v\u00f5ite kasutada <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/pod-security-policy\/#privileged\">Pod Security Policy<\/a><\/noindex> privilegeeritud konteinerite rakendamise piirangute jaoks.<\/p>\n<h2>4. V\u00e4ltige k\u00e4ivitamist root'al<\/h2>\n<p>\nPrivileegitud konteerimise kohta on juba r\u00e4\u00e4gitud, kuid veel parem on, kui te ei k\u00e4ivita rakendusi konteineris root-\u00f5igustes. Kui sissetungija leiab rakenduses root-\u00f5igustes kaugjuhtimise haavatavuse, mis v\u00f5imaldab koodi k\u00e4ivitamist, ja suudab seej\u00e4rel konteinergi piiridest v\u00e4lja p\u00e4\u00e4seda seni tundmatu haavatavuse kaudu, saab ta hostil root-\u00f5igused.<\/p>\n<p>Parim viis selle v\u00e4ltimiseks on k\u00f5igepealt mitte k\u00e4ivitada midagi root-\u00f5igustes. Selleks saab kasutada direktiivi <code>KASUTAJA<\/code> ja <code>Dockerfile<\/code> v\u00f5i <code>runAsUser<\/code> Kuberneteses. Klastri administraator saab samuti seadistada sundimist, kasutades <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/pod-security-policies\">Pod Security Policy<\/a><\/noindex>.<\/p>\n<h2>5. Tehke rakendus j\u00e4lgimiseks lihtsaks<\/h2>\n<p>\nNagu logimine, on j\u00e4lgimine rakenduse haldamise lahutamatu osa. Populaarne lahendus Kubernetese kogukonnas j\u00e4lgimiseks on <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex> \u2014 s\u00fcsteem, mis avastab automaatselt podid ja teenused, mis vajavad j\u00e4lgimist. <i>(<b>M\u00e4rkus t\u00f5lke kohta.<\/b>: Vaadake ka meie <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">\u00fcldist aruannet<\/a><\/noindex> teemal j\u00e4lgimine Prometheuse ja Kubernetese abil.)<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/monitoring\/kubernetes-engine\/\">Stackdriver<\/a><\/noindex> on suuteline j\u00e4lgima Kubernetese klastreid ja sisaldab oma versiooni Prometheusest rakenduste j\u00e4lgimiseks.<\/p>\n<p><img decoding=\"async\" alt=\"Google&#039;i versiooni j\u00e4rgi 7 parimat praktikat konteinerite kasutamiseks\" src=\"\/wp-content\/uploads\/2019\/10\/642b9ccc4b7a789018a4aeeb62e7cae7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetese j\u00e4lgimise paneel Stackdriveris<\/i><\/p>\n<p>Tavaline ootus Prometheuse jaoks on, et rakendus edastab m\u00f5\u00f5dikud HTTP l\u00f5pp-punkti. Selleks on saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/docs\/instrumenting\/clientlibs\/\">Prometheuse klienditeegid<\/a><\/noindex>. Sama formaati kasutavad ka teised t\u00f6\u00f6riistad, nagu <noindex><a rel=\"nofollow\" href=\"http:\/\/opencensus.io\/\">OpenCensus<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Istio<\/a><\/noindex>.<\/p>\n<h2>6. Tehke rakenduse tervislik olek kergesti k\u00e4ttesaadavaks<\/h2>\n<p>\nRakenduse haldamisel tootmises aitab selle suutlikkus teatada oma olekust kogu s\u00fcsteemile. Kas rakendus on k\u00e4ivitatud? Kas see on korras? Kas see on valmis liiklust vastu v\u00f5tma? Kuidas see k\u00e4itub? K\u00f5ige levinum viis selle probleemi lahendamiseks on eluj\u00f5udude kontrollide rakendamine <i>(health checks)<\/i>. Kubernetese jaoks on nende kahe t\u00fc\u00fcpi kontrollid: <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">eluj\u00f5ud ja valmisoleku kontrollid<\/a><\/noindex>.<\/p>\n<p>Eluj\u00f5u kontrolli jaoks <i>(liveness probe)<\/i> peab rakendusel olema HTTP l\u00f5pp-punkt, mis tagastab '200 OK' vastuse, kui see t\u00f6\u00f6tab ja selle p\u00f5h s\u00f5ltuvused on rahuldatud. Valmiduse kontrolli jaoks <i>(readiness probe)<\/i> rakendusel peaks olema teine HTTP endpoint, mis tagastab vastuse \"200 OK\", kui rakendus on heas seisundis, initsialiseerimise sammud on t\u00e4idetud ja iga korrektne p\u00e4ring ei p\u00f5hjusta viga. Kubernetes suunab liikluse konteinerisse ainult siis, kui rakendus on nende kontrollide kohaselt valmis. Kaks endpoint'i v\u00f5ivad olla \u00fchendatud, kui eluj\u00f5ulisuse (liveness) ja valmisoleku (readiness) seisundite vahel ei ole erinevust.<\/p>\n<p>Lisateavet selle kohta leiate vastavast artiklist Sandeep Dineshilt, Google'i arendajate kaitsjalt: \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\">Kubernetesi parimad praktikad: tervisekontrollide seadistamine valmisoleku ja eluj\u00f5udmise kontrollidega<\/a><\/noindex>\u00bb.<\/p>\n<h2>7. Valige hoolikalt pildi versioon<\/h2>\n<p>\nEnamik avalikke ja privaatsed pilte kasutavad sildistamise s\u00fcsteemi, mis on sarnane kirjeldatud s\u00fcsteemiga <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-building-containers#properly_tag_your_images\">Parimad praktikad konteinerite ehitamiseks<\/a><\/noindex>. Kui pilt rakendab s\u00fcsteemi, mis on l\u00e4hedane <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\/lang\/ru\/\">semantilisele versioonimisel<\/a><\/noindex>, tuleb arvesse v\u00f5tta sildistamise spetsiifikat. N\u00e4iteks v\u00f5ib silt <code>latest<\/code> tavaliselt liikuda pildilt pildile - sellele ei saa toetuda, kui vajate ettearvatavaid ja korduvaid ehitusi ja installatsioone.<\/p>\n<p>Saate kasutada silti <code>X.Y.Z<\/code> (need on peaaegu alati muutumatud), kuid sel juhul j\u00e4lgige k\u00f5iki patche ja v\u00e4rskendusi pildi kohta. Kui kasutatava pildi silt on <code>X.Y<\/code>, on see hea keskmine variant. Valides selle, saate automaatselt k\u00f5ik patchid ja toetute samal ajal rakenduse stabiilsele versioonile.<\/p>\n<h2>P.S. t\u00f5lkijalt<\/h2>\n<p>\nLugege ka meie blogist:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/422949\/\">Uued CNCF statistikaandmed konteinerite, pilvep\u00f5histe ja Kubernetes'e kohta<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353272\/\">7 konteinerip\u00f5histe rakenduste projekteerimise p\u00f5him\u00f5tet<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/417905\/\">11 viisi (mitte) saada Kubernetes'i h\u00e4kkimise ohvriks<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Meie kogemus Kubernetesega v\u00e4ikestes projektides<\/a><\/noindex>\u00bb <i>(\u00fclevaade ja esitluse video)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">J\u00e4relevalve ja Kubernetes<\/a><\/noindex>\u00bb <i>(\u00fclevaade ja esitluse video)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/324274\/\">Kogume Docker-pilte CI\/CD jaoks kiiresti ja mugavalt koos dappiga<\/a><\/noindex>\u00bb <i>(\u00fclevaade ja esitluse video)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/322686\/\">Continuous Delivery praktikad Dockeriga<\/a><\/noindex>\u00bb <i>(\u00fclevaade ja esitluse video)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/347518\/\">Mikroteenuste hullumeelsuse surm 2018. aastal<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Allikas: <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.1.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\/et\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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 parimat praktikat konteinerite haldamiseks Google'i versioonis | ProHoster","description":"M\u00e4rkus: Originaali autor on Th\u00e9o Chamley, Google'i pilvelahenduste arhitekt.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/39016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=39016"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39016\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/29273"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=39016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=39016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=39016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}