{"id":38965,"date":"2019-10-31T22:27:03","date_gmt":"2019-10-31T19:27:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/liveness-probes-v-kubernetes-mogut-byt-opasny\/"},"modified":"2019-10-31T22:27:03","modified_gmt":"2019-10-31T19:27:03","slug":"liveness-probes-v-kubernetes-mogut-byt-opasny","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","title":{"rendered":"Las verificaciones de disponibilidad en Kubernetes pueden ser peligrosas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota de traducci\u00f3n.<\/b>: El ingeniero jefe de la compa\u00f1\u00eda Zalando, Henning Jacobs, ha notado repetidamente que los usuarios de Kubernetes enfrentan problemas para entender el prop\u00f3sito de los liveness (y readiness) probes y su correcta aplicaci\u00f3n. Por ello, ha recopilado sus pensamientos en esta concisa nota, que con el tiempo se convertir\u00e1 en parte de la documentaci\u00f3n de K8s.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Las verificaciones de disponibilidad en Kubernetes pueden ser peligrosas\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLas verificaciones de estado, conocidas en Kubernetes como <i>liveness probes<\/i> <i>(es decir, literalmente, \u201cpruebas de viabilidad\u201d - nota del traductor)<\/i>, pueden ser bastante peligrosas. Recomiendo evitarlas siempre que sea posible; las \u00fanicas excepciones son aquellos casos en que realmente son necesarias y usted comprende completamente la especificidad y las consecuencias de su uso. En esta publicaci\u00f3n se tratar\u00e1 sobre las verificaciones de liveness y readiness, as\u00ed como se explicar\u00e1 cu\u00e1ndo <i>debe<\/i> y no debe aplicarlas.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Mi colega Sandor comparti\u00f3 recientemente en Twitter los errores m\u00e1s comunes que encuentra, incluyendo aquellos relacionados con el uso de probes de readiness\/liveness:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175377157343907840\"><img decoding=\"async\" alt=\"Las verificaciones de disponibilidad en Kubernetes pueden ser peligrosas\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Una <code>livenessProbe<\/code> mal configurada puede empeorar situaciones de alta carga (una ca\u00edda en cascada + un posible inicio prolongado del contenedor\/aplicaci\u00f3n) y llevar a otras consecuencias negativas, como la ca\u00edda de dependencias. <i>(ver tambi\u00e9n <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/posts\/k3s-outage-traefik-acme-lets-encrypt-local-path.html\">mi reciente art\u00edculo<\/a><\/noindex> sobre la limitaci\u00f3n del n\u00famero de solicitudes en la combinaci\u00f3n K3s+ACME)<\/i>. Peor a\u00fan, cuando el liveness probe se combina con un chequeo de salud de dependencia (health check), que en este caso ser\u00eda una base de datos externa: <b>una \u00fanica falla en la base de datos reiniciar\u00e1 todos sus contenedores.<\/b>!<\/p>\n<p>El mensaje general <i>\u201cNo use liveness probes\u201d<\/i> en este caso ayuda poco, as\u00ed que examinemos para qu\u00e9 se utilizan las verificaciones de readiness y liveness. <\/p>\n<p><i>Nota: La mayor parte de la prueba a continuaci\u00f3n fue inicialmente incluida en la documentaci\u00f3n interna para desarrolladores de Zalando.<\/i><\/p>\n<h2>Verificaciones de Readiness y Liveness<\/h2>\n<p>\nKubernetes ofrece dos mecanismos importantes, llamados <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness probes y readiness probes<\/a><\/noindex>. Estos realizan peri\u00f3dicamente alguna acci\u00f3n, como enviar una solicitud HTTP, abrir una conexi\u00f3n TCP o ejecutar un comando en el contenedor, para confirmar que la aplicaci\u00f3n est\u00e1 funcionando correctamente.<\/p>\n<p>Kubernetes utiliza <b>readiness probes<\/b>, para entender cu\u00e1ndo el contenedor est\u00e1 listo para recibir tr\u00e1fico. Un Pod se considera listo para funcionar si todos sus contenedores est\u00e1n listos. Una de las aplicaciones de este mecanismo es controlar cu\u00e1les pods se utilizan como backend para los servicios de Kubernetes (y especialmente Ingress).<\/p>\n<p><b>Sondeos de liveness<\/b> ayudan a Kubernetes a entender cu\u00e1ndo es el momento de reiniciar un contenedor. Por ejemplo, esta verificaci\u00f3n permite interceptar un bloqueo, cuando una aplicaci\u00f3n 'se queda atascada' en un lugar. Reiniciar el contenedor en tal estado ayuda a mover la aplicaci\u00f3n desde un punto muerto, a pesar de los errores, pero tambi\u00e9n puede llevar a fallos en cascada (ver m\u00e1s abajo).<\/p>\n<p>Si intentas desplegar una actualizaci\u00f3n de la aplicaci\u00f3n que falla en las verificaciones de liveness\/readiness, su implementaci\u00f3n se detendr\u00e1, ya que Kubernetes esperar\u00e1 el estado <code>Listo<\/code> de todos los pods.<\/p>\n<h2>Ejemplo<\/h2>\n<p>\nAqu\u00ed hay un ejemplo de un sondeo de readiness que verifica la ruta <code>\/health<\/code> a trav\u00e9s de HTTP con configuraciones por defecto (<i>intervalo<\/i>: 10 segundos, <i>timeout<\/i>: 1 segundo, <i>umbral de \u00e9xito<\/i>: 1, <i>umbral de fallo<\/i>: 3):<\/p>\n<pre><code class=\"plaintext\"># \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u0449\u0435\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f deployment'\u0430\/\u0441\u0442\u0435\u043a\u0430\npodTemplate:\n  spec:\n    containers:\n    - name: my-container\n      # ...\n      readinessProbe:\n        httpGet:\n          path: \/health\n          port: 8080<\/code><\/pre>\n<p><\/p>\n<h2>Recomendaciones<\/h2>\n<p><\/p>\n<ol>\n<li> Para microservicios con un endpoint HTTP (REST, etc.) <b>siempre define un sondeo de readiness<\/b>, que verifica si la aplicaci\u00f3n (pod) est\u00e1 lista para recibir tr\u00e1fico.<\/li>\n<li> Aseg\u00farate de que el sondeo de readiness <b>cubra la disponibilidad del puerto real del servidor web<\/b>:\n<ul>\n<li> usando puertos para necesidades administrativas, llamados 'admin' o 'management' (por ejemplo, 9090), para <code>readinessProbe<\/code>, aseg\u00farate de que el endpoint devuelva OK solo si el puerto HTTP principal (como el 8080) est\u00e1 listo para recibir tr\u00e1fico*;\n<p><i>* Conozco al menos un caso en Zalando donde esto no ocurri\u00f3, es decir, <code>readinessProbe<\/code> verific\u00f3 el puerto de 'management', pero el servidor no comenz\u00f3 a funcionar debido a problemas con la carga de la cach\u00e9.<\/i><\/li>\n<li> colocar un readiness probe en un puerto separado puede resultar en que la sobrecarga en el puerto principal no se refleje en el health check (es decir, el pool de hilos en el servidor est\u00e1 lleno, pero el health check sigue mostrando que todo est\u00e1 bien).<\/li>\n<\/ul>\n<\/li>\n<li> Aseg\u00farate de que <b>el sondeo de readiness incluya la inicializaci\u00f3n\/migraci\u00f3n de la base de datos<\/b>;\n<ul>\n<li> la forma m\u00e1s sencilla de lograrlo es acceder al servidor HTTP solo despu\u00e9s de que se haya completado la inicializaci\u00f3n (por ejemplo, migraci\u00f3n de base de datos con <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> etc.); es decir, en lugar de cambiar el estado del health check, simplemente no inicie el servidor web hasta que finalice la migraci\u00f3n de la base de datos*.\n<p><i>* Tambi\u00e9n se pueden ejecutar migraciones de base de datos desde init-containers fuera del pod. Sigo siendo un defensor de las aplicaciones aut\u00f3nomas (self-contained), es decir, aquellas en las que el contenedor de la aplicaci\u00f3n sabe c\u00f3mo llevar la base de datos al estado adecuado sin coordinaci\u00f3n externa.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> desde cualquier lugar del mundo. Es la soluci\u00f3n ideal para crear una oficina en la nube, donde todos los programas y datos de los empleados est\u00e1n en un entorno seguro <code>httpGet<\/code> para las verificaciones de readiness a trav\u00e9s de los endpoints t\u00edpicos de los health check (por ejemplo, <code>\/health<\/code>).<\/li>\n<li> <b>Inf\u00f3rmese sobre los par\u00e1metros de las comprobaciones configurados por defecto<\/b> (<code>interval: 10s<\/code>, <code>timeout: 1s<\/code>, <code>successThreshold: 1<\/code>, <code>failureThreshold: 3<\/code>):\n<ul>\n<li> los par\u00e1metros por defecto significan que el pod estar\u00e1 <i>not-ready<\/i> aproximadamente despu\u00e9s de 30 segundos (3 comprobaciones de salud fallidas).<\/li>\n<\/ul>\n<\/li>\n<li> Utilice un puerto separado para \u00abadmin\u00bb o \u00abmanagement\u00bb, si la pila tecnol\u00f3gica (por ejemplo, Java\/Spring) lo permite, para separar la gesti\u00f3n de la \u00absalud\u00bb y m\u00e9tricas del tr\u00e1fico habitual:\n<ul>\n<li> pero no olvide el punto 2.<\/li>\n<\/ul>\n<\/li>\n<li> Si es necesario, la readiness probe se puede utilizar para calentar\/cargar la cach\u00e9 y devolver un c\u00f3digo de estado 503 mientras el contenedor no est\u00e9 \u00abcalentado\u00bb:\n<ul>\n<li> tambi\u00e9n recomiendo familiarizarse con la nueva verificaci\u00f3n <code>startupProbe<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/sysdig.com\/blog\/whats-new-kubernetes-1-16\/\">introducida en la versi\u00f3n 1.16<\/a><\/noindex> <i>(escribimos sobre ella en ruso) <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">aqu\u00ed<\/a><\/noindex> \u2014 nota del traductor)<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Advertencias<\/h2>\n<p><\/p>\n<ol>\n<li> <b>No conf\u00ede en las dependencias externas<\/b> (como los almacenes de datos) al ejecutar pruebas de readiness\/liveness, ya que esto puede llevar a fallos en cascada:\n<ul>\n<li> tomemos como ejemplo un servicio stateful REST con 10 pods que dependen de una sola base de datos Postgres: cuando la verificaci\u00f3n depende de una conexi\u00f3n a la base de datos que est\u00e9 operativa, todos los 10 pods pueden fallar si hay un retraso en la red\/o en la base de datos \u2014 normalmente, todo esto termina peor de lo que podr\u00eda haber sido;<\/li>\n<li> tenga en cuenta que Spring Data por defecto verifica la conexi\u00f3n con la BD*;\n<p><i>* Este es el comportamiento predeterminado de Spring Data Redis (al menos, lo era la \u00faltima vez que lo comprob\u00e9), lo que llev\u00f3 a un fallo 'catastr\u00f3fico': cuando Redis estuvo indisponible por un corto per\u00edodo, todos los pods 'fallaron'.<\/i><\/li>\n<li> \"externo\" en este sentido tambi\u00e9n puede significar otros pods de la misma aplicaci\u00f3n, es decir, idealmente la verificaci\u00f3n no deber\u00eda depender del estado de otros pods del mismo cl\u00faster para evitar fallos en cascada:\n<ul>\n<li> los resultados pueden variar para aplicaciones con estado distribuido (por ejemplo, almacenamiento en cach\u00e9 en memoria en los pods).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>No use liveness probe<\/b> para los pods (excluyendo casos en los que realmente son necesarios y se comprende completamente la especificidad y las consecuencias de su uso):\n<ul>\n<li> la sonda de liveness puede ayudar a recuperar contenedores \"colgados\", pero, dado que usted tiene control total sobre su aplicaci\u00f3n, cosas como procesos \"colgados\" y deadlocks, idealmente, no deber\u00edan ocurrir: la mejor alternativa es hacer que la aplicaci\u00f3n se caiga intencionadamente y volver a su estado estable anterior;<\/li>\n<li> un liveness probe fallido llevar\u00e1 a un reinicio del contenedor, potencialmente agravando las consecuencias de errores relacionados con la carga: el reinicio del contenedor provocar\u00e1 inactividad (al menos, durante el tiempo de inicio de la aplicaci\u00f3n, digamos, m\u00e1s de 30 segundos), causando nuevos errores, aumentando la carga en otros contenedores y aumentando la probabilidad de que fallen, etc.;<\/li>\n<li> las liveness checks combinadas con una dependencia externa son la peor de las combinaciones posibles, amenazando con fallos en cascada: \u00a1un peque\u00f1o retraso del lado de la base de datos llevar\u00e1 al reinicio de todos sus contenedores!<\/li>\n<\/ul>\n<\/li>\n<li> Los par\u00e1metros de las liveness y readiness checks <b>deben ser diferentes<\/b>:\n<ul>\n<li> se puede utilizar la sonda de liveness con el mismo chequeo de salud, pero con un umbral de activaci\u00f3n m\u00e1s alto (<code>failureThreshold<\/code>), por ejemplo, asignar el estado <i>not-ready<\/i> despu\u00e9s de 3 intentos y considerar que el liveness probe ha fallado despu\u00e9s de 10 intentos;<\/li>\n<\/ul>\n<\/li>\n<li> <b>No use verificaciones exec<\/b>, ya que est\u00e1n asociadas con problemas conocidos que conducen a la aparici\u00f3n de procesos hu\u00e9rfanos:\n<ul>\n<li> detalles: ver <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">la presentaci\u00f3n de los especialistas de Datadog<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Curr\u00edculum<\/h2>\n<p><\/p>\n<ul>\n<li> Utilice readiness probes para determinar cu\u00e1ndo el pod est\u00e1 listo para recibir tr\u00e1fico.<\/li>\n<li> Utilice liveness probes solo cuando realmente sean necesarios.<\/li>\n<li> El uso incorrecto de readiness\/liveness probes puede llevar a una disminuci\u00f3n de la disponibilidad y fallos en cascada.<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175655221382529025\"><img decoding=\"async\" alt=\"Las verificaciones de disponibilidad en Kubernetes pueden ser peligrosas\" src=\"\/wp-content\/uploads\/2019\/10\/8c212c41d6e69cd515a85d2b6100aaed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Material adicional sobre el tema<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">Documentos de Kubernetes: Configurar Liveness y Readiness Probes<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.colinbreck.com\/kubernetes-liveness-and-readiness-probes-revisited-how-to-avoid-shooting-yourself-in-the-other-foot\/\">Kubernetes Liveness y Readiness Probes Revisitados: C\u00f3mo evitar dispararse en el pie<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">Informe de fallos de NRE Labs<\/a><\/noindex> (tambi\u00e9n habla sobre livenessProbe).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Actualizaci\u00f3n #1 del 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BarrWill1\/status\/1178144162526453760\">Sobre init-containers para la migraci\u00f3n de bases de datos<\/a><\/noindex>: se agreg\u00f3 una nota al pie.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">EJ me record\u00f3<\/a><\/noindex> sobre PDB: uno de los problemas de las comprobaciones de liveness es la falta de coordinaci\u00f3n entre los pods. En Kubernetes hay <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">Pod Disruption Budgets (PDB)<\/a><\/noindex> para limitar el n\u00famero de fallos paralelos que una aplicaci\u00f3n puede experimentar, pero las verificaciones no tienen en cuenta PDB. Idealmente, podemos ordenar a K8s: \u00abReinicia un pod si su verificaci\u00f3n falla, pero no los reinicies todos para no empeorar la situaci\u00f3n\u00bb.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan lo expres\u00f3 muy bien<\/a><\/noindex>: \u00abUtiliza sondas de liveness cuando sepas con certeza que <b>lo mejor que se puede hacer es \u201cmatar\u201d la aplicaci\u00f3n<\/b>\u00bb (una vez m\u00e1s, no hay que exagerar).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"Las verificaciones de disponibilidad en Kubernetes pueden ser peligrosas\" src=\"\/wp-content\/uploads\/2019\/10\/524122a63bd4acd950bf9fc8aeeb45be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Actualizaci\u00f3n n\u00ba 2 del 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Guillaume_Swiss\/status\/1178258781152563200\">Respecto a leer la documentaci\u00f3n antes de usar<\/a><\/noindex>: cre\u00e9 una solicitud pertinente (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">feature request<\/a><\/noindex>) para a\u00f1adir documentaci\u00f3n sobre las sondas de liveness.<\/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\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: la vida de un pod<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">7 mejores pr\u00e1cticas para operar contenedores seg\u00fan Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353272\/\">7 principios de dise\u00f1o de aplicaciones basadas en contenedores<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/470958\/\">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.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u0435\u043c\u0443 \u043e\u043d \u0441\u043e\u0431\u0440\u0430\u043b \u0441\u0432\u043e\u0438 \u043c\u044b\u0441\u043b\u0438 \u0432 \u044d\u0442\u0443 \u0451\u043c\u043a\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 K8s. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0432 Kubernetes \u043a\u0430\u043a liveness probes (\u0442.\u0435., \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29232,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38965","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 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f.\" \/>\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\/liveness-probes-v-kubernetes-mogut-byt-opasny\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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\udd47Liveness probes \u0432 Kubernetes \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny\" \/>\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:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:03+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 sondas de liveness en Kubernetes pueden ser peligrosas | ProHoster","description":"Nota del traductor: El ingeniero l\u00edder de Zalando, Henning Jacobs, ha notado en varias ocasiones problemas de los usuarios de Kubernetes en la comprensi\u00f3n del prop\u00f3sito de las sondas de liveness (y readiness) y su correcta aplicaci\u00f3n.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","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\udd47Liveness probes \u0432 Kubernetes \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u044b | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","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:03+00:00","article:modified_time":"2019-10-31T19:27:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38965","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:10:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:59:27","updated":"2026-01-24 00:10:22","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\/38965","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=38965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/38965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/29232"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=38965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=38965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=38965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}