{"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\/pt\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","title":{"rendered":"As 7 melhores pr\u00e1ticas para a opera\u00e7\u00e3o de cont\u00eaineres segundo o Google","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota do tradutor.<\/b>: O autor do artigo original \u00e9 Th\u00e9o Chamley, arquiteto de solu\u00e7\u00f5es em nuvem do Google. Neste post do blog do Google Cloud, ele apresentou um resumo conciso de um guia mais detalhado da sua empresa, chamado \u201c<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Melhores Pr\u00e1ticas para Operar Cont\u00eaineres<\/a><\/noindex>\u201d. Nele, especialistas do Google reuniram as melhores pr\u00e1ticas para a opera\u00e7\u00e3o de cont\u00eaineres no contexto do uso do Google Kubernetes Engine e al\u00e9m, abordando uma ampla gama de temas: da seguran\u00e7a ao monitoramento e log. Ent\u00e3o, quais pr\u00e1ticas na utiliza\u00e7\u00e3o de cont\u00eaineres s\u00e3o consideradas mais importantes pelo Google?<\/i><\/p>\n<p><img decoding=\"async\" alt=\"As 7 melhores pr\u00e1ticas para a opera\u00e7\u00e3o de cont\u00eaineres segundo o 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\/\">Kubernetes Engine<\/a><\/noindex> <i>(um servi\u00e7o baseado em Kubernetes para executar aplica\u00e7\u00f5es em cont\u00eainer no Google Cloud \u2014 <b>nota do tradutor.<\/b>)<\/i> \u2014 uma das melhores maneiras de executar cargas de trabalho que precisam de escalabilidade. <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes\/\">Kubernetes<\/a><\/noindex> garante o funcionamento perfeito da maioria das aplica\u00e7\u00f5es, desde que estejam containerizadas. Mas se voc\u00ea quer que a aplica\u00e7\u00e3o seja f\u00e1cil de gerenciar e aproveitar todas as vantagens do Kubernetes, \u00e9 necess\u00e1rio seguir as melhores pr\u00e1ticas. Elas simplificar\u00e3o a opera\u00e7\u00e3o da aplica\u00e7\u00e3o, seu monitoramento e depura\u00e7\u00e3o, al\u00e9m de aumentar a seguran\u00e7a.<\/p>\n<p>Neste artigo, vamos percorrer a lista do que \u00e9 importante saber e fazer para o funcionamento eficaz dos cont\u00eaineres no Kubernetes. Para quem deseja se aprofundar nos detalhes, vale a pena ler o material <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Melhores Pr\u00e1ticas para Operar Cont\u00eaineres<\/a><\/noindex>, al\u00e9m de conferir nosso <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/7-best-practices-for-building-containers\">post anterior<\/a><\/noindex> sobre constru\u00e7\u00e3o de cont\u00eaineres.<\/p>\n<h2>1. Use os mecanismos nativos de cont\u00eainer para log<\/h2>\n<p>\nSe a aplica\u00e7\u00e3o est\u00e1 rodando em um cluster Kubernetes, n\u00e3o \u00e9 necess\u00e1rio muito para os logs. Um sistema de logging centralizado provavelmente j\u00e1 est\u00e1 integrado ao cluster utilizado. No caso do uso do Kubernetes Engine, isso \u00e9 gerenciado pelo <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/\">Stackdriver Logging<\/a><\/noindex>. <i>(<b>Nota do tradutor.<\/b>: E se voc\u00ea estiver usando uma instala\u00e7\u00e3o pr\u00f3pria do Kubernetes, recomendamos considerar nossa solu\u00e7\u00e3o de c\u00f3digo aberto \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/loghouse\">loghouse<\/a><\/noindex>.)<\/i> N\u00e3o complique sua vida e utilize os mecanismos nativos de log do cont\u00eainer. Escreva logs em stdout e stderr \u2014 eles ser\u00e3o automaticamente capturados, armazenados e indexados.<\/p>\n<p>Se desejado, voc\u00ea tamb\u00e9m pode escrever logs em <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/docs\/structured-logging\">formato JSON.<\/a><\/noindex>. Essa abordagem permitir\u00e1 adicionar facilmente metadados a eles. E junto com isso, haver\u00e1 a possibilidade de busca pelos logs no Stackdriver Logging usando esses metadados.<\/p>\n<h2>2. Certifique-se de que os cont\u00eaineres sejam stateless e imut\u00e1veis<\/h2>\n<p>\nPara o funcionamento adequado dos cont\u00eaineres em um cluster Kubernetes, eles devem ser stateless e imut\u00e1veis. Quando essas condi\u00e7\u00f5es s\u00e3o atendidas, o Kubernetes pode realizar seu trabalho, criando e destruindo entidades de aplica\u00e7\u00e3o quando e onde necess\u00e1rio.<\/p>\n<p><i>Stateless<\/i> significa que qualquer estado (dados persistentes de qualquer tipo) \u00e9 armazenado fora do cont\u00eainer. Para isso, dependendo das necessidades, diferentes tipos de armazenamento externo podem ser utilizados: <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/storage\/docs\">Armazenamento em Nuvem<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/stateful-apps\">Discos Persistentes<\/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> ou outros bancos de dados gerenciados. <i>(<b>Nota do tradutor.<\/b>: Para mais informa\u00e7\u00f5es, consulte tamb\u00e9m nosso artigo \u201c<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/326414\/\">Operadores para Kubernetes: como executar aplica\u00e7\u00f5es stateful<\/a><\/noindex>\u00bb.)<\/i><\/p>\n<p><i>Imut\u00e1vel<\/i> significa que o cont\u00eainer n\u00e3o ser\u00e1 modificado durante sua vida \u00fatil: nenhuma atualiza\u00e7\u00e3o, patch ou altera\u00e7\u00e3o na configura\u00e7\u00e3o. Se voc\u00ea precisar atualizar o c\u00f3digo do aplicativo ou aplicar um patch, crie uma nova imagem e fa\u00e7a o deploy dela. \u00c9 recomend\u00e1vel manter a configura\u00e7\u00e3o do cont\u00eainer (porta para escuta, op\u00e7\u00f5es do ambiente de execu\u00e7\u00e3o etc.) externa \u2014 em <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/secret\/\">Secrets<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-pod-configmap\/\">ConfigMaps<\/a><\/noindex>. Eles podem ser atualizados sem a necessidade de criar uma nova imagem de cont\u00eainer. Para a f\u00e1cil cria\u00e7\u00e3o de pipelines de constru\u00e7\u00e3o de imagens, voc\u00ea pode usar <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/cloud-build\/\">Cloud Build<\/a><\/noindex>. <i>(<b>Nota do tradutor.<\/b>: Para estes fins, utilizamos a ferramenta Open Source <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/dapp\">dapp<\/a><\/noindex>.)<\/i><\/p>\n<p><img decoding=\"async\" alt=\"As 7 melhores pr\u00e1ticas para a opera\u00e7\u00e3o de cont\u00eaineres segundo o Google\" src=\"\/wp-content\/uploads\/2019\/10\/f13a83d22e7b8d7c1e8ac6a63c35646c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Exemplo de atualiza\u00e7\u00e3o da configura\u00e7\u00e3o do Deployment no Kubernetes usando ConfigMap, montado nos pods como configura\u00e7\u00e3o<\/i><\/p>\n<h2>3. Evite cont\u00eaineres privilegiados<\/h2>\n<p>\nVoc\u00ea n\u00e3o est\u00e1 executando aplicativos como root em seus servidores, est\u00e1? Se um invasor conseguir acessar o aplicativo, ter\u00e1 permiss\u00f5es de root. As mesmas considera\u00e7\u00f5es se aplicam ao n\u00e3o executar cont\u00eaineres privilegiados. Se for necess\u00e1rio alterar as configura\u00e7\u00f5es no host, voc\u00ea pode conceder ao cont\u00eainer permiss\u00f5es espec\u00edficas. <i>capabilities<\/i> usando a op\u00e7\u00e3o <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> no Kubernetes. Se for necess\u00e1rio alterar <i>sysctls<\/i>, o Kubernetes possui <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/sysctl-cluster\/\">uma anota\u00e7\u00e3o separada<\/a><\/noindex> para isso. Em geral, tente aproveitar ao m\u00e1ximo <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">init-<\/a><\/noindex> e cont\u00eaineres sidecar para realizar essas opera\u00e7\u00f5es privilegiadas. Eles n\u00e3o precisam estar dispon\u00edveis para o tr\u00e1fego interno ou externo.<\/p>\n<p>Se voc\u00ea administrar um cluster, pode recorrer a <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/pod-security-policy\/#privileged\">Pol\u00edtica de Seguran\u00e7a de Pod<\/a><\/noindex> para restri\u00e7\u00f5es na aplica\u00e7\u00e3o de cont\u00eaineres privilegiados.<\/p>\n<h2>4. Evite executar como root<\/h2>\n<p>\nJ\u00e1 falamos sobre cont\u00eaineres privilegiados, mas seria ainda melhor se, al\u00e9m disso, voc\u00ea n\u00e3o executasse aplicativos como root dentro do cont\u00eainer. Se um invasor encontrar uma vulnerabilidade remota com a capacidade de execu\u00e7\u00e3o de c\u00f3digo em um aplicativo com permiss\u00f5es de root, e conseguir escapar do cont\u00eainer atrav\u00e9s de uma vulnerabilidade ainda desconhecida, ele ter\u00e1 acesso de root ao host.<\/p>\n<p>A melhor maneira de evitar isso \u00e9, em primeiro lugar, n\u00e3o executar nada como root. Para isso, voc\u00ea pode usar a diretiva <code>USU\u00c1RIO<\/code> em <code>Dockerfile<\/code> ou <code>runAsUser<\/code> no Kubernetes. O administrador do cluster tamb\u00e9m pode configurar um comportamento for\u00e7ado usando <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/pod-security-policies\">Pol\u00edtica de Seguran\u00e7a de Pod<\/a><\/noindex>.<\/p>\n<h2>5. Torne o aplicativo f\u00e1cil de monitorar<\/h2>\n<p>\nAssim como o registro, o monitoramento \u00e9 uma parte essencial da gest\u00e3o de aplicativos. Uma solu\u00e7\u00e3o popular para monitoramento na comunidade Kubernetes \u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex> \u2014 um sistema que automaticamente descobre pods e servi\u00e7os que precisam ser monitorados. <i>(<b>Nota do tradutor.<\/b>: Veja tamb\u00e9m nosso <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">relat\u00f3rio detalhado<\/a><\/noindex> sobre monitoramento com Prometheus e Kubernetes.)<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/monitoring\/kubernetes-engine\/\">Stackdriver<\/a><\/noindex> \u00e9 capaz de monitorar clusters Kubernetes e inclui sua pr\u00f3pria vers\u00e3o do Prometheus para monitoramento de aplicativos.<\/p>\n<p><img decoding=\"async\" alt=\"As 7 melhores pr\u00e1ticas para a opera\u00e7\u00e3o de cont\u00eaineres segundo o Google\" src=\"\/wp-content\/uploads\/2019\/10\/642b9ccc4b7a789018a4aeeb62e7cae7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>O painel de monitoramento do Kubernetes no Stackdriver<\/i><\/p>\n<p>O Prometheus espera que o aplicativo exponha m\u00e9tricas em um endpoint HTTP. Para isso, est\u00e3o dispon\u00edveis <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/docs\/instrumenting\/clientlibs\/\">bibliotecas cliente do Prometheus.<\/a><\/noindex>O mesmo formato \u00e9 utilizado por outras ferramentas como <noindex><a rel=\"nofollow\" href=\"http:\/\/opencensus.io\/\">OpenCensus<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Istio<\/a><\/noindex>.<\/p>\n<h2>6. Torne o estado de sa\u00fade do aplicativo acess\u00edvel<\/h2>\n<p>\nA gest\u00e3o do aplicativo em produ\u00e7\u00e3o ajuda sua capacidade de informar seu estado para todo o sistema. O aplicativo est\u00e1 em execu\u00e7\u00e3o? Est\u00e1 em ordem? Est\u00e1 pronto para receber tr\u00e1fego? Como est\u00e1 se comportando? A forma mais comum de abordar esse problema \u00e9 a implementa\u00e7\u00e3o de checagens de sa\u00fade <i>(health checks)<\/i>. O Kubernetes possui dois tipos delas: <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness e readiness probes<\/a><\/noindex>.<\/p>\n<p>Para o liveness probe <i>(checagem de vitalidade)<\/i> o aplicativo deve ter um endpoint HTTP que retorne a resposta \"200 OK\" se estiver funcionando e suas principais depend\u00eancias forem atendidas. Para o readiness probe <i>(checagem de prontid\u00e3o)<\/i> o aplicativo deve ter outro endpoint HTTP que retorne a resposta \"200 OK\" se o aplicativo estiver em bom estado, as etapas de inicializa\u00e7\u00e3o forem conclu\u00eddas e qualquer solicita\u00e7\u00e3o v\u00e1lida n\u00e3o retornar erro. O Kubernetes direcionar\u00e1 o tr\u00e1fego para o cont\u00eainer somente se o aplicativo estiver pronto de acordo com essas verifica\u00e7\u00f5es. Dois endpoints podem ser combinados se n\u00e3o houver diferen\u00e7a entre os estados de viv\u00eancia (liveness) e prontid\u00e3o (readiness).<\/p>\n<p>Voc\u00ea pode ler mais sobre isso no artigo correspondente de Sandeep Dinesh, Developer Advocate do Google: \"<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/kubernetes-best-practices-setting-up-health-checks-with-readiness-and-liveness-probes\">Pr\u00e1ticas recomendadas do Kubernetes: Configurando verifica\u00e7\u00f5es de sa\u00fade com sondas de prontid\u00e3o e viabilidade<\/a><\/noindex>\u00bb.<\/p>\n<h2>7. Escolha cuidadosamente a vers\u00e3o da imagem<\/h2>\n<p>\nA maioria das imagens p\u00fablicas e privadas utiliza um sistema de versionamento semelhante ao descrito em <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-building-containers#properly_tag_your_images\">Pr\u00e1ticas Recomendadas para Construir Cont\u00eaineres<\/a><\/noindex>. Se a imagem aplicar um sistema pr\u00f3ximo ao <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\/lang\/ru\/\">versionamento sem\u00e2ntico<\/a><\/noindex>, \u00e9 necess\u00e1rio considerar a especificidade da rotulagem. Por exemplo, a tag <code>latest<\/code> pode mudar frequentemente de uma imagem para outra \u2014 n\u00e3o se pode depender dela se voc\u00ea precisar de compila\u00e7\u00f5es e instala\u00e7\u00f5es previs\u00edveis e reprodut\u00edveis.<\/p>\n<p>Voc\u00ea pode usar a tag <code>X.Y.Z<\/code> ela quase sempre permanece a mesma, mas nesse caso \u00e9 importante acompanhar todos os patches e atualiza\u00e7\u00f5es da imagem. Se a imagem utilizada tiver a tag <code>X.Y<\/code>, essa \u00e9 uma boa op\u00e7\u00e3o de meio-termo. Ao escolh\u00ea-la, voc\u00ea recebe automaticamente patches e, ao mesmo tempo, se baseia em uma vers\u00e3o est\u00e1vel do aplicativo.<\/p>\n<h2>P.S. do tradutor<\/h2>\n<p>\nConfira tamb\u00e9m em nosso blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/422949\/\">Novas estat\u00edsticas da CNCF sobre cont\u00eaineres, cloud native e Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353272\/\">7 princ\u00edpios de design de aplicativos baseados em cont\u00eaineres<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/417905\/\">11 maneiras de (n\u00e3o) se tornar uma v\u00edtima de hacking no Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Nossa experi\u00eancia com Kubernetes em pequenos projetos<\/a><\/noindex>\u00bb <i>(vis\u00e3o geral e v\u00eddeo da apresenta\u00e7\u00e3o)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">Monitoramento e Kubernetes<\/a><\/noindex>\u00bb <i>(vis\u00e3o geral e v\u00eddeo da apresenta\u00e7\u00e3o)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/324274\/\">Criando imagens Docker para CI\/CD rapidamente e convenientemente com dapp<\/a><\/noindex>\u00bb <i>(vis\u00e3o geral e v\u00eddeo da apresenta\u00e7\u00e3o)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/322686\/\">Pr\u00e1ticas de Continuous Delivery com Docker<\/a><\/noindex>\u00bb <i>(vis\u00e3o geral e v\u00eddeo da apresenta\u00e7\u00e3o)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/347518\/\">A morte da loucura dos microsservi\u00e7os em 2018<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fonte: <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.3 - 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\/pt\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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 melhores pr\u00e1ticas para operar cont\u00eaineres segundo o Google | ProHoster","description":"Nota do tradutor: O autor do artigo original \u00e9 Th\u00e9o Chamley, arquiteto de solu\u00e7\u00f5es em nuvem do Google.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/39016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=39016"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/39016\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/29273"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=39016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=39016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=39016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}