{"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\/it\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","title":{"rendered":"Le liveness probes in Kubernetes possono essere pericolosi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota del traduttore.<\/b>: Henning Jacobs, chief engineer at Zalando, ha notato pi\u00f9 volte che gli utenti di Kubernetes hanno difficolt\u00e0 a comprendere lo scopo dei liveness (e readiness) probes e il loro corretto utilizzo. Pertanto, ha raccolto i suoi pensieri in questa concisa nota, che nel tempo diventer\u00e0 parte della documentazione di K8s.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Le liveness probes in Kubernetes possono essere pericolosi\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI controlli dello stato, conosciuti in Kubernetes come <i>liveness probes<\/i> <i>(ossia, letteralmente, \"test di vitalit\u00e0\" \u2014 nota del traduttore)<\/i>, possono essere molto pericolosi. Ti consiglio di evitarli se possibile: le eccezioni sono solo i casi in cui sono davvero necessari e sei pienamente consapevole delle specificit\u00e0 e delle conseguenze del loro utilizzo. In questo documento si parler\u00e0 dei liveness e readiness probes, e si spiegher\u00e0 in quali casi <i>\u00e8 consigliabile<\/i> e non \u00e8 consigliabile applicarli.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Il mio collega Sandor ha recentemente condiviso su Twitter gli errori pi\u00f9 comuni che incontra, compresi quelli legati all'uso delle readiness\/liveness probes:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175377157343907840\"><img decoding=\"async\" alt=\"Le liveness probes in Kubernetes possono essere pericolosi\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Configurazione errata <code>livenessProbe<\/code> pu\u00f2 esacerbare le situazioni di carico elevato (spegnimenti a valanga + riavvio potenzialmente lungo del container\/applicazione) e portare ad altre conseguenze negative come il fallimento delle dipendenze <i>(vedi anche <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/posts\/k3s-outage-traefik-acme-lets-encrypt-local-path.html\">il mio recente articolo<\/a><\/noindex> sul limite del numero di richieste nella combinazione K3s+ACME)<\/i>. Peggio ancora, quando la liveness probe \u00e8 combinata con il controllo della salute delle dipendenze (health check), rappresentata da un database esterno: <b>un singolo guasto del database riavvier\u00e0 tutti i tuoi container<\/b>!<\/p>\n<p>Messaggio generale <i>\"Non utilizzare i liveness probes\"<\/i> in questo caso non aiuta molto, quindi consideriamo a cosa servono i readiness e liveness check. <\/p>\n<p><i>Nota: la maggior parte del test fornito di seguito era originariamente inclusa nella documentazione interna per gli sviluppatori di Zalando.<\/i><\/p>\n<h2>Controlli Readiness e Liveness<\/h2>\n<p>\nKubernetes fornisce due importanti meccanismi chiamati <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness probes e readiness probes<\/a><\/noindex>. Eseguono periodicamente un'azione \u2014 ad esempio, inviare una richiesta HTTP, aprire una connessione TCP o eseguire un comando nel container \u2014 per confermare che l'applicazione funzioni correttamente.<\/p>\n<p>Kubernetes utilizza <b>readiness probes<\/b>, per capire quando il container \u00e8 pronto a ricevere traffico. Un Pod \u00e8 considerato pronto quando tutti i suoi container sono pronti. Un'applicazione di questo meccanismo \u00e8 per monitorare quali Pod sono utilizzati come backend per i servizi Kubernetes (e in particolare per l'Ingress).<\/p>\n<p><b>Liveness probes<\/b> aiutano Kubernetes a capire quando \u00e8 il momento di riavviare il contenitore. Ad esempio, una tale verifica pu\u00f2 intercettare un deadlock, quando l'applicazione 'si blocca' in un punto. Riavviare il contenitore in questo stato aiuta a sbloccare l'applicazione, nonostante gli errori, ma pu\u00f2 anche portare a guasti a cascata (vedi sotto).<\/p>\n<p>Se cerchi di distribuire un aggiornamento dell'applicazione che fallisce i controlli di liveness\/readiness, il rilascio si fermer\u00e0 poich\u00e9 Kubernetes attender\u00e0 lo stato <code>Pronto<\/code> da tutti i Pod.<\/p>\n<h2>Esempio<\/h2>\n<p>\nEcco un esempio di readiness probe che controlla il percorso <code>\/health<\/code> via HTTP con impostazioni predefinite (<i>interval<\/i>: 10 secondi, <i>timeout<\/i>: 1 secondo, <i>success threshold<\/i>: 1, <i>failure threshold<\/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>Raccomandazioni<\/h2>\n<p><\/p>\n<ol>\n<li> Per i microservizi con endpoint HTTP (REST, ecc.) <b>definisci sempre una readiness probe<\/b>, che verifica se l'applicazione (pod) \u00e8 pronta a ricevere traffico.<\/li>\n<li> Assicurati che la readiness probe <b>copre la disponibilit\u00e0 della porta effettiva del server web<\/b>:\n<ul>\n<li> utilizzando porte per esigenze amministrative, denominate \u00abadmin\u00bb o \u00abmanagement\u00bb (ad esempio, 9090), per <code>readinessProbe<\/code>, assicurati che l'endpoint restituisca OK solo se la porta HTTP principale (come 8080) \u00e8 pronta per ricevere traffico*;\n<p><i>* Sono a conoscenza di almeno un caso in Zalando in cui ci\u00f2 non \u00e8 accaduto, cio\u00e8 <code>readinessProbe<\/code> ho controllato la porta \u00abmanagement\u00bb, ma il server stesso non \u00e8 partito a causa di problemi di caricamento della cache.<\/i><\/li>\n<li> associare la readiness probe a una porta separata pu\u00f2 comportare che il sovraccarico sulla porta principale non venga riflesso nell'health check (cio\u00e8 il pool di thread sul server \u00e8 pieno, ma l'health check continua a mostrare che tutto va bene).<\/li>\n<\/ul>\n<\/li>\n<li> Assicurati che <b>la readiness probe includa l'inizializzazione\/migrazione del database<\/b>;\n<ul>\n<li> il modo pi\u00f9 semplice per ottenerlo \u00e8 contattare il server HTTP solo dopo il completamento dell'inizializzazione (ad esempio, la migrazione del DB con <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> ecc.); cio\u00e8 invece di cambiare lo stato dell'health check, non avviare semplicemente il server web fino al completamento della migrazione del DB*.\n<p><i>* \u00c8 possibile anche avviare le migrazioni del database dai container di init all'esterno del pod. Rimango un grande sostenitore delle applicazioni autonome, ovvero quelle in cui il container dell'applicazione sa, senza coordinazione esterna, come portare il database allo stato desiderato.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> Usa <code>httpGet<\/code> per i controlli di readiness tramite tipici endpoint dei health check (ad esempio, <code>\/health<\/code>).<\/li>\n<li> <b>Comprendere i parametri di controllo predefiniti<\/b> (<code>interval: 10s<\/code>, <code>timeout: 1s<\/code>, <code>successThreshold: 1<\/code>, <code>failureThreshold: 3<\/code>):\n<ul>\n<li> i parametri predefiniti significano che il pod diventer\u00e0 <i>not-ready<\/i> dopo circa 30 secondi (3 controlli di funzionalit\u00e0 non riusciti).<\/li>\n<\/ul>\n<\/li>\n<li> Utilizzare una porta separata per \u00abadmin\u00bb o \u00abmanagement\u00bb, se il stack tecnologico (ad esempio, Java\/Spring) lo consente, per separare la gestione della \u00absalute\u00bb e delle metriche dal traffico normale:\n<ul>\n<li> ma non dimenticate il punto 2.<\/li>\n<\/ul>\n<\/li>\n<li> Se necessario, la readiness probe pu\u00f2 essere utilizzata per riscaldare\/caricare la cache restituendo un codice di stato 503, finch\u00e9 il container non \u00e8 \u00abriscaldato\u00bb:\n<ul>\n<li> consiglio anche di dare un'occhiata al nuovo controllo <code>startupProbe<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/sysdig.com\/blog\/whats-new-kubernetes-1-16\/\">introdotto nella versione 1.16<\/a><\/noindex> <i>(ne abbiamo scritto in russo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">qui<\/a><\/noindex> \u2014 nota di traduzione)<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Avvertenze<\/h2>\n<p><\/p>\n<ol>\n<li> <b>Non fare affidamento su dipendenze esterne<\/b> (come i repository di dati) durante i test di readiness\/liveness \u2014 questo pu\u00f2 portare a guasti a cascata:\n<ul>\n<li> prendiamo come esempio un servizio stateful REST con 10 pod che dipendono da un'unica database Postgres: quando il controllo dipende da una connessione funzionante al DB, tutti e 10 i pod possono cadere se c'\u00e8 un ritardo nella rete\/da parte del DB \u2014 di solito tutto questo finisce peggio di quanto potrebbe;<\/li>\n<li> si noti che Spring Data controlla la connessione con il DB per impostazione predefinita*;\n<p><i>* Questo \u00e8 il comportamento predefinito di Spring Data Redis (almeno era cos\u00ec quando ho controllato l'ultima volta), che ha portato a un fallimento \"catastrofico\": quando Redis \u00e8 stato momentaneamente non disponibile, tutti i pod sono \"caduti\".<\/i><\/li>\n<li> \u00abesterno\u00bb in questo significato pu\u00f2 anche riferirsi ad altri pod della stessa applicazione, quindi idealmente il controllo non dovrebbe dipendere dallo stato di altri pod dello stesso cluster per prevenire cadute a cascata:\n<ul>\n<li> I risultati possono variare per applicazioni con stato distribuito (ad esempio, caching in memoria nei pod).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>Non utilizzare il liveness probe<\/b> Per i pod (eccetto i casi in cui sono realmente necessari e siete pienamente consapevoli delle specificit\u00e0 e delle conseguenze del loro utilizzo):\n<ul>\n<li> Il liveness probe pu\u00f2 aiutare nel recupero di container \"bloccati\", ma dato che avete il pieno controllo sulla vostra applicazione, situazioni come i processi \"bloccati\" e i deadlock non dovrebbero verificarsi, idealmente: una migliore alternativa \u00e8 il crash intenzionale dell'applicazione e il suo ritorno a uno stato sostenibile precedente;<\/li>\n<li> un liveness probe non riuscito porter\u00e0 al riavvio del contenitore, il che potenzialmente esacerba le conseguenze di errori legati al caricamento: il riavvio del contenitore porter\u00e0 a un'interruzione (almeno durante il tempo di avvio dell'applicazione, diciamo, per pi\u00f9 di 30 secondi), causando nuovi errori, aumentando il carico su altri contenitori e aumentando la probabilit\u00e0 di guasti, ecc.;<\/li>\n<li> le verifiche di liveness cominate con una dipendenza esterna sono la peggiore delle combinazioni possibili, minacciando danni a cascata: un leggero ritardo da parte del database porter\u00e0 al riavvio di tutti i tuoi contenitori!<\/li>\n<\/ul>\n<\/li>\n<li> Parametri delle verifiche di liveness e readiness <b>dovrebbero essere diversi<\/b>:\n<ul>\n<li> \u00c8 possibile utilizzare il liveness probe con lo stesso health check, ma con una soglia di attivazione pi\u00f9 alta (<code>failureThreshold<\/code>), ad esempio, assegnare lo stato <i>not-ready<\/i> dopo 3 tentativi e considerare il liveness probe fallito dopo 10 tentativi;<\/li>\n<\/ul>\n<\/li>\n<li> <b>Non utilizzare controlli exec<\/b>, poich\u00e9 comportano noti problemi che portano alla creazione di processi zombie:\n<ul>\n<li> dettagli: vedi <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">la presentazione degli esperti di Datadog<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Riepilogo<\/h2>\n<p><\/p>\n<ul>\n<li> Utilizzare i readiness probes per determinare quando il pod \u00e8 pronto a ricevere traffico.<\/li>\n<li> Utilizzare i liveness probes solo quando sono realmente necessari.<\/li>\n<li> Un uso errato dei readiness\/liveness probes pu\u00f2 portare a una riduzione della disponibilit\u00e0 e a fallimenti a cascata.<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175655221382529025\"><img decoding=\"async\" alt=\"Le liveness probes in Kubernetes possono essere pericolosi\" src=\"\/wp-content\/uploads\/2019\/10\/8c212c41d6e69cd515a85d2b6100aaed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Ulteriori materiali sull'argomento<\/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\/\">Documentazione Kubernetes: Configurare Liveness e 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 e Readiness Probes Rivisitati: Come Evitare di Farsi del Male da Soli<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">Resoconto del Guasto NRE Labs<\/a><\/noindex> (parla anche di livenessProbe).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Aggiornamento n. 1 del 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BarrWill1\/status\/1178144162526453760\">Sugli init-container per la migrazione del DB<\/a><\/noindex>: aggiunta una nota.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">EJ mi ha ricordato<\/a><\/noindex> Riguardo al PDB: una delle problematiche dei liveness probe \u00e8 l'assenza di coordinazione tra i pod. In Kubernetes ci sono <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">Pod Disruption Budgets (PDB)<\/a><\/noindex> per limitare il numero di fallimenti paralleli che un'app pu\u00f2 subire, tuttavia i controlli non considerano il PDB. Idealmente, possiamo ordinare a K8s: \"Riavvia un pod se il suo controllo fallisce, ma non riavviare tutti, per non peggiorare la situazione\".<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan ha formulato molto bene<\/a><\/noindex>: \u00abUtilizza i controlli di liveness quando sei certo che <b>la cosa migliore da fare sia \u00abterminare\u00bb l'applicazione<\/b>\u00bb (anche se non esagerare).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"Le liveness probes in Kubernetes possono essere pericolosi\" src=\"\/wp-content\/uploads\/2019\/10\/524122a63bd4acd950bf9fc8aeeb45be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Aggiornamento n. 2 del 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Guillaume_Swiss\/status\/1178258781152563200\">Riguardo alla lettura della documentazione prima dell'uso<\/a><\/noindex>: ho creato una richiesta pertinente (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">feature request<\/a><\/noindex>) per aggiungere documentazione sui controlli di liveness.<\/p>\n<h2>P.S. dal traduttore<\/h2>\n<p>\nLeggete anche nel nostro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: la vita del pod<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">7 migliori pratiche per la gestione dei container secondo Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353272\/\">7 principi di progettazione delle applicazioni basate su container<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fonte: <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 4.9.10 - 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. \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,\" \/>\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\/it\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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. \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,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/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\udd47Liveness probes in Kubernetes possono essere pericolosi | ProHoster","description":"Nota: Henning Jacobs, Senior Engineer di Zalando, ha notato pi\u00f9 volte che gli utenti di Kubernetes incontrano problemi nella comprensione dello scopo dei liveness (e readiness) probes e del loro corretto utilizzo. Pertanto, ha raccolto le sue riflessioni in questa nota concisa, che nel tempo diventer\u00e0 parte della documentazione di K8s. I controlli di stato, noti in Kubernetes come liveness probes (cio\u00e8, letteralmente,","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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. \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,","og:url":"https:\/\/prohoster.info\/it\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/38965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=38965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/38965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/29232"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=38965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=38965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=38965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}