{"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\/es\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","title":{"rendered":"7 mejores pr\u00e1cticas para operar contenedores seg\u00fan Google","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota de traducci\u00f3n.<\/b>: Autor del art\u00edculo original \u2014 Th\u00e9o Chamley, arquitecto de soluciones en la nube de Google. En esta publicaci\u00f3n del blog de Google Cloud, present\u00f3 un breve resumen de una gu\u00eda m\u00e1s detallada de su empresa, llamada \u201c<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Mejores Pr\u00e1cticas para Operar Contenedores<\/a><\/noindex>\u201d. En ella, los especialistas de Google recopilaron las mejores pr\u00e1cticas para la explotaci\u00f3n de contenedores en el contexto del uso de Google Kubernetes Engine y m\u00e1s, abarcando una amplia gama de temas: desde la seguridad hasta la monitorizaci\u00f3n y el registro. Entonces, \u00bfcu\u00e1les son las pr\u00e1cticas m\u00e1s importantes para el trabajo con contenedores seg\u00fan Google?<\/i><\/p>\n<p><img decoding=\"async\" alt=\"7 mejores pr\u00e1cticas para operar contenedores seg\u00fan 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>(servicio basado en Kubernetes para ejecutar aplicaciones containerizadas en Google Cloud \u2014 <b>nota del traductor.<\/b>)<\/i> \u2014 es una de las mejores maneras de ejecutar cargas de trabajo que requieren escalabilidad. <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes\/\">Kubernetes<\/a><\/noindex> Garantizar\u00e1 el funcionamiento sin problemas de la mayor\u00eda de las aplicaciones, siempre que est\u00e9n containerizadas. Pero si desea que la aplicaci\u00f3n sea f\u00e1cil de gestionar y aprovechar todas las ventajas de Kubernetes, es necesario seguir las mejores pr\u00e1cticas. Estas simplificar\u00e1n la explotaci\u00f3n de la aplicaci\u00f3n, su monitoreo y depuraci\u00f3n, as\u00ed como aumentar\u00e1n la seguridad.<\/p>\n<p>En este art\u00edculo, revisaremos una lista de lo que debe saber y hacer para el funcionamiento efectivo de los contenedores en Kubernetes. Quienes deseen profundizar en los detalles deber\u00edan leer el material <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-operating-containers\">Mejores Pr\u00e1cticas para Operar Contenedores<\/a><\/noindex>, as\u00ed como prestar atenci\u00f3n a nuestro <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/7-best-practices-for-building-containers\">post anterior<\/a><\/noindex> sobre la construcci\u00f3n de contenedores.<\/p>\n<h2>1. Utilice los mecanismos nativos de los contenedores para el registro<\/h2>\n<p>\nSi la aplicaci\u00f3n se ejecuta en un cl\u00faster de Kubernetes, no se necesita mucho para los registros. Un sistema de registro centralizado probablemente ya est\u00e1 integrado en el cl\u00faster que se est\u00e1 utilizando. En el caso de usar Kubernetes Engine, esto es responsabilidad de <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/\">Stackdriver Logging<\/a><\/noindex>. <i>(<b>Nota de traducci\u00f3n.<\/b>: Y si utiliza su propia instalaci\u00f3n de Kubernetes, le recomendamos que considere nuestra soluci\u00f3n de c\u00f3digo abierto \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/loghouse\">loghouse<\/a><\/noindex>.)<\/i> No se complica la vida y utilice los mecanismos nativos de registro de los contenedores. Escriba registros en stdout y stderr: ser\u00e1n capturados, almacenados e indexados autom\u00e1ticamente.<\/p>\n<p>Si lo desea, tambi\u00e9n puede escribir registros en <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/logging\/docs\/structured-logging\">formato JSON<\/a><\/noindex>. Este enfoque permitir\u00e1 agregar f\u00e1cilmente metadatos a ellos. Junto con estos, surgir\u00e1 la posibilidad de b\u00fasqueda en los registros en Stackdriver Logging utilizando esos metadatos.<\/p>\n<h2>2. Aseg\u00farese de que los contenedores sean stateless e inmutables<\/h2>\n<p>\nPara que los contenedores funcionen correctamente en un cl\u00faster de Kubernetes, deben ser stateless e immutable. Cuando se cumplen estas condiciones, Kubernetes puede realizar su trabajo creando y destruyendo entidades de la aplicaci\u00f3n cuando y donde sea necesario.<\/p>\n<p><i>Stateless<\/i> significa que cualquier estado (datos permanentes de cualquier tipo) se almacena fuera del contenedor. Para ello, dependiendo de las necesidades, se pueden utilizar diferentes tipos de almacenamiento externo: <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/storage\/docs\">Almacenamiento en la Nube<\/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> o otras bases de datos gestionadas. <i>(<b>Nota de traducci\u00f3n.<\/b>: Para m\u00e1s informaci\u00f3n, consulte tambi\u00e9n nuestro art\u00edculo \"<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/326414\/\">Operadores para Kubernetes: c\u00f3mo ejecutar aplicaciones con estado<\/a><\/noindex>\u00bb.)<\/i><\/p>\n<p><i>Immutable<\/i> significa que el contenedor no se modificar\u00e1 durante su vida \u00fatil: no habr\u00e1 actualizaciones, parches ni cambios en la configuraci\u00f3n. Si necesita actualizar el c\u00f3digo de la aplicaci\u00f3n o aplicar un parche, cree una nueva imagen y despliegue esta. Se recomienda extraer la configuraci\u00f3n del contenedor (puerto de escucha, opciones del entorno de ejecuci\u00f3n, etc.) hacia <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/secret\/\">Secrets<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-pod-configmap\/\">ConfigMaps<\/a><\/noindex>. Se pueden actualizar sin necesidad de construir una nueva imagen de contenedor. Para crear pipelines de construcci\u00f3n de im\u00e1genes de manera sencilla, se puede utilizar <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/cloud-build\/\">Cloud Build<\/a><\/noindex>. <i>(<b>Nota de traducci\u00f3n.<\/b>: Para estos fines, utilizamos la herramienta de c\u00f3digo abierto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/dapp\">dapp<\/a><\/noindex>.)<\/i><\/p>\n<p><img decoding=\"async\" alt=\"7 mejores pr\u00e1cticas para operar contenedores seg\u00fan Google\" src=\"\/wp-content\/uploads\/2019\/10\/f13a83d22e7b8d7c1e8ac6a63c35646c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ejemplo de actualizaci\u00f3n de la configuraci\u00f3n de Deployment en Kubernetes utilizando ConfigMap, montado en los pods como configuraci\u00f3n<\/i><\/p>\n<h2>3. Evite contenedores privilegiados<\/h2>\n<p>\nNo est\u00e1is ejecutando aplicaciones como root en vuestros servidores, \u00bfverdad? Si un atacante logra infiltrarse en la aplicaci\u00f3n, tendr\u00e1 acceso con privilegios de root. Las mismas consideraciones se aplican a no ejecutar contenedores con privilegios. Si es necesario modificar la configuraci\u00f3n en el host, se le puede otorgar al contenedor permisos espec\u00edficos. <i>capabilities<\/i> mediante la opci\u00f3n <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> en Kubernetes. Si es necesario modificar <i>sysctls<\/i>, Kubernetes tiene <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/sysctl-cluster\/\">una anotaci\u00f3n especial<\/a><\/noindex> para ello. En general, trate de utilizar al m\u00e1ximo <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/init-containers\/\">init-<\/a><\/noindex> y contenedores sidecar para realizar estas operaciones privilegiadas. No necesitan estar disponibles para el tr\u00e1fico interno o externo.<\/p>\n<p>Si usted es el administrador del cl\u00faster, puede utilizar <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/policy\/pod-security-policy\/#privileged\">Pol\u00edtica de Seguridad de Pods<\/a><\/noindex> para restricciones en la aplicaci\u00f3n de contenedores privilegiados.<\/p>\n<h2>4. Evite ejecutar como root<\/h2>\n<p>\nYa se ha hablado sobre los contenedores privilegiados, pero ser\u00eda a\u00fan mejor si, adem\u00e1s de eso, no ejecut\u00e1is aplicaciones como root dentro del contenedor. Si un atacante encuentra una vulnerabilidad remota con capacidad de ejecuci\u00f3n de c\u00f3digo en una aplicaci\u00f3n con privilegios de root, y luego puede salir fuera del contenedor a trav\u00e9s de una vulnerabilidad a\u00fan no descubierta, obtendr\u00e1 acceso root en el host.<\/p>\n<p>La mejor forma de evitar esto es, ante todo, no ejecutar nada como root. Para ello, se puede utilizar la directiva. <code>USER<\/code> en <code>Dockerfile<\/code> o <code>runAsUser<\/code> en Kubernetes. El administrador del cl\u00faster tambi\u00e9n puede configurar un comportamiento forzado usando <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/kubernetes-engine\/docs\/how-to\/pod-security-policies\">Pol\u00edtica de Seguridad de Pods<\/a><\/noindex>.<\/p>\n<h2>5. Haga que la aplicaci\u00f3n sea f\u00e1cil de monitorear<\/h2>\n<p>\nAl igual que el registro, el monitoreo es una parte integral de la gesti\u00f3n de aplicaciones. Una soluci\u00f3n popular para el monitoreo en la comunidad de Kubernetes es <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex> \u2014 un sistema que detecta autom\u00e1ticamente los pods y servicios que requieren monitoreo. <i>(<b>Nota de traducci\u00f3n.<\/b>: Consulte tambi\u00e9n nuestro <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">informe detallado<\/a><\/noindex> sobre monitoreo con Prometheus y Kubernetes.)<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/monitoring\/kubernetes-engine\/\">Stackdriver<\/a><\/noindex> puede monitorear cl\u00fasteres de Kubernetes e incluye su propia versi\u00f3n de Prometheus para el monitoreo de aplicaciones.<\/p>\n<p><img decoding=\"async\" alt=\"7 mejores pr\u00e1cticas para operar contenedores seg\u00fan Google\" src=\"\/wp-content\/uploads\/2019\/10\/642b9ccc4b7a789018a4aeeb62e7cae7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>El panel de monitoreo de Kubernetes en Stackdriver<\/i><\/p>\n<p>Prometheus espera que la aplicaci\u00f3n exponga m\u00e9tricas en un endpoint HTTP. Para esto, est\u00e1n disponibles <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/docs\/instrumenting\/clientlibs\/\">bibliotecas de cliente de Prometheus<\/a><\/noindex>. El mismo formato es utilizado por otras herramientas como <noindex><a rel=\"nofollow\" href=\"http:\/\/opencensus.io\/\">OpenCensus<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Istio<\/a><\/noindex>.<\/p>\n<h2>6. Haga accesible el estado de salud de la aplicaci\u00f3n<\/h2>\n<p>\nLa gesti\u00f3n de aplicaciones en producci\u00f3n se ve ayudada por su capacidad para informar sobre su estado a todo el sistema. \u00bfEst\u00e1 la aplicaci\u00f3n en ejecuci\u00f3n? \u00bfEst\u00e1 en buen estado? \u00bfEst\u00e1 lista para recibir tr\u00e1fico? \u00bfC\u00f3mo se comporta? La forma m\u00e1s com\u00fan de abordar este problema es implementar verificaciones de salud <i>(health checks)<\/i>. Kubernetes tiene dos tipos de ellas: <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness y readiness probes<\/a><\/noindex>.<\/p>\n<p>Para liveness probe <i>(verificaci\u00f3n de viabilidad)<\/i> la aplicaci\u00f3n debe tener un endpoint HTTP que devuelva una respuesta \u201c200 OK\u201d si est\u00e1 funcionando y sus principales dependencias est\u00e1n satisfechas. Para readiness probe <i>(verificaci\u00f3n de preparaci\u00f3n para el servicio)<\/i> La aplicaci\u00f3n debe tener otro endpoint HTTP que devuelva una respuesta \"200 OK\" si la aplicaci\u00f3n est\u00e1 en buen estado, se han completado los pasos de inicializaci\u00f3n y cualquier solicitud correcta no conduce a un error. Kubernetes dirigir\u00e1 el tr\u00e1fico al contenedor solo si la aplicaci\u00f3n est\u00e1 lista seg\u00fan estas comprobaciones. Dos endpoints pueden combinarse si no existe diferencia entre los estados de viabilidad (liveness) y preparaci\u00f3n (readiness).<\/p>\n<p>Puedes leer m\u00e1s al respecto en el art\u00edculo correspondiente de Sandeep Dinesh, Defensor de Desarrolladores en Google: \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/kubernetes-best-practices-setting-up-health-checks-with-readiness-and-liveness-probes\">Mejores pr\u00e1cticas de Kubernetes: Configuraci\u00f3n de comprobaciones de salud con sondas de preparaci\u00f3n y viabilidad<\/a><\/noindex>\u00bb.<\/p>\n<h2>7. Elige cuidadosamente la versi\u00f3n de la imagen<\/h2>\n<p>\nLa mayor\u00eda de las im\u00e1genes p\u00fablicas y privadas utilizan un sistema de etiquetado similar al descrito en <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/solutions\/best-practices-for-building-containers#properly_tag_your_images\">Mejores Pr\u00e1cticas para Construir Contenedores<\/a><\/noindex>. Si la imagen aplica un sistema cercano a <noindex><a rel=\"nofollow\" href=\"https:\/\/semver.org\/lang\/ru\/\">versionado sem\u00e1ntico<\/a><\/noindex>, es necesario considerar las particularidades del etiquetado. Por ejemplo, la etiqueta <code>latest<\/code> puede moverse con frecuencia de una imagen a otra \u2014 no se puede confiar en ella si necesitas construcciones e instalaciones predecibles y reproducibles.<\/p>\n<p>Puedes utilizar la etiqueta <code>X.Y.Z<\/code> (casi siempre son invariables), sin embargo, en ese caso, debes rastrear todos los parches y actualizaciones de la imagen. Si la imagen que utilizas tiene la etiqueta <code>X.Y<\/code>, es una buena opci\u00f3n intermedia. Al elegirla, obtienes autom\u00e1ticamente los parches y al mismo tiempo te basas en una versi\u00f3n estable de la aplicaci\u00f3n.<\/p>\n<h2>P.D. del traductor<\/h2>\n<p>\nTambi\u00e9n puedes leer en nuestro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/422949\/\">N nuevas estad\u00edsticas de CNCF sobre contenedores, nativos de la nube y Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/353272\/\">7 principios de dise\u00f1o de aplicaciones basadas en contenedores<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/417905\/\">11 maneras de (no) convertirse en v\u00edctima de un ataque en Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Nuestra experiencia con Kubernetes en proyectos peque\u00f1os<\/a><\/noindex>\u00bb <i>(resumen y video de la presentaci\u00f3n)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">Monitoreo y Kubernetes<\/a><\/noindex>\u00bb <i>(resumen y video de la presentaci\u00f3n)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/324274\/\">Creamos im\u00e1genes de Docker para CI\/CD r\u00e1pida y c\u00f3modamente con dapp<\/a><\/noindex>\u00bb <i>(resumen y video de la presentaci\u00f3n)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/322686\/\">Pr\u00e1cticas de entrega continua con Docker<\/a><\/noindex>\u00bb <i>(resumen y video de la presentaci\u00f3n)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/347518\/\">La muerte de la locura de los microservicios en 2018<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fuente: <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\/es\/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=\"es_ES\" \/>\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\/es\/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\udd47Las 7 mejores pr\u00e1cticas para la operaci\u00f3n de contenedores seg\u00fan Google | ProHoster","description":"Nota de traducci\u00f3n: El autor del art\u00edculo original es Th\u00e9o Chamley, arquitecto de soluciones en la nube de Google.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/7-luchshih-praktik-po-ekspluatatsii-kontejnerov-po-versii-google","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/39016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=39016"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/39016\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/29273"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=39016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=39016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=39016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}