{"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 verifiche di liveness in Kubernetes possono essere pericolose","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota di traduzione.<\/b>: L'ingegnere principale di Zalando, Henning Jacobs, ha notato pi\u00f9 volte che gli utenti di Kubernetes hanno problemi a comprendere lo scopo delle probe di liveness (e readiness) e il loro corretto utilizzo. Pertanto, ha raccolto i suoi pensieri in questa nota concisa, che diventer\u00e0 parte della documentazione K8s nel tempo.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Le verifiche di liveness in Kubernetes possono essere pericolose\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe verifiche di stato, note in Kubernetes come <i>liveness probes<\/i> <i>(cio\u00e8, letteralmente, \"test di vitalit\u00e0\" \u2014 nota del traduttore)<\/i>, possono essere piuttosto pericolose. Consiglio di evitarle quando possibile: le uniche eccezioni sono i casi in cui sono veramente necessarie e si \u00e8 completamente consapevoli della specificit\u00e0 e delle conseguenze del loro utilizzo. In questo articolo si parler\u00e0 delle verifiche di liveness e readiness e si dir\u00e0 in quali casi <i>\u00e8 opportuno<\/i> e non vale la pena utilizzarle.<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, inclusi 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 verifiche di liveness in Kubernetes possono essere pericolose\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Una <code>livenessProbe<\/code> impostata in modo errato pu\u00f2 aggravare le situazioni di alta carico (disattivazione a valanga + avvio potenzialmente lungo del contenitore\/applicazione) e portare ad altre conseguenze negative come il crollo 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> sulla limitazione del numero di richieste nella combo K3s+ACME)<\/i>. \u00c8 ancora peggio quando la liveness probe \u00e8 combinata con il controllo della salute delle dipendenze (health check), che \u00e8 rappresentato da un database esterno: <b>un singolo malfunzionamento del database riavvier\u00e0 tutti i tuoi contenitori<\/b>!<\/p>\n<p>Il messaggio principale <i>\"Non utilizzare le liveness probes\"<\/i> in questo caso aiuta poco, quindi vediamo a cosa servono le verifiche di readiness e liveness. <\/p>\n<p><i>Nota: la maggior parte del test sottostante \u00e8 stata originariamente inclusa nella documentazione interna per gli sviluppatori di Zalando.<\/i><\/p>\n<h2>Le verifiche di Readiness e Liveness<\/h2>\n<p>\nKubernetes fornisce due meccanismi importanti, 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>. Essi eseguono periodicamente un'azione, ad esempio inviano una richiesta HTTP, aprono una connessione TCP o eseguono un comando nel contenitore, 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. Uno degli usi di questo meccanismo \u00e8 monitorare quali pod sono utilizzati come backend per i servizi Kubernetes (e in particolare per l'Ingress).<\/p>\n<p><b>Le sonde di liveness<\/b> aiutano Kubernetes a capire quando \u00e8 il momento di riavviare il contenitore. Ad esempio, un controllo di questo tipo pu\u00f2 intercettare un deadlock, quando un'applicazione 'si blocca' in un punto. Riavviare il contenitore in questo stato aiuta a far ripartire l'applicazione da un punto morto, nonostante gli errori, ma pu\u00f2 anche portare a fallimenti a cascata (vedi sotto).<\/p>\n<p>Se provi a distribuire un aggiornamento dell'applicazione che non supera i controlli di liveness\/readiness, la distribuzione 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> tramite HTTP con impostazioni predefinite (<i>intervallo<\/i>: 10 secondi, <i>timeout<\/i>: 1 secondo, <i>soglia di successo<\/i>: 1, <i>soglia di errore<\/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>verifichi la prontezza della porta effettiva del server web<\/b>:\n<ul>\n<li> utilizzando porte per esigenze amministrative, denominate 'admin' o 'management' (ad esempio, 9090), per <code>readinessProbe<\/code>, assicurati che l'endpoint restituisca OK solo se la porta HTTP principale (tipo 8080) \u00e8 pronta a ricevere traffico*;\n<p><i>* Sono a conoscenza di almeno un caso in Zalando in cui ci\u00f2 non \u00e8 avvenuto, ovvero <code>readinessProbe<\/code> ha controllato la porta 'management', ma il server non \u00e8 mai partito a causa di problemi di caricamento della cache.<\/i><\/li>\n<li> applicare la readiness probe su una porta separata pu\u00f2 portare a una situazione in cui il carico sulla porta principale non viene riflesso nel health check (cio\u00e8 il pool di thread sul server \u00e8 pieno, ma l'health check continua a mostrare che va tutto 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 farlo \u00e8 chiamare il server HTTP solo dopo che l'inizializzazione \u00e8 completata (ad esempio, la migrazione del DB con <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> ecc.); quindi anzich\u00e9 modificare lo stato dell'health check, semplicemente non avviare il server web fino al termine della migrazione del database*.\n<p><i>* \u00c8 anche possibile eseguire migrazioni del database da init-container esterni al pod. Rimango un sostenitore delle applicazioni autonome, cio\u00e8 quelle in cui il container dell'applicazione, senza coordinamento esterno, sa come portare il database nello stato desiderato.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> Usa <code>httpGet<\/code> per le verifiche di readiness tramite tipici endpoint di health check (ad esempio, <code>\/health<\/code>).<\/li>\n<li> <b>Familiarizzate con 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 salute 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, il readiness probe pu\u00f2 essere utilizzato per il preriscaldamento\/caricamento della cache e restituire il codice di stato 503 finch\u00e9 il contenitore non \u00e8 \u00abpronto\u00bb:\n<ul>\n<li> consiglio anche di prendere visione del 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 parlato in russo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">qui<\/a><\/noindex> \u2014 nota del traduttore.)<\/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 database) durante i test di readiness\/liveness \u2014 questo potrebbe causare fallimenti a cascata:\n<ul>\n<li> come esempio consideriamo un servizio stateful REST con 10 pod che dipendono da un unico database Postgres: quando il controllo dipende da una connessione funzionante al database, tutti e 10 i pod possono andare in crash se c'\u00e8 un ritardo nella rete\/sul lato del database \u2014 di solito tutto ci\u00f2 finisce peggio di quanto potrebbe;<\/li>\n<li> si noti che Spring Data controlla la connessione al database per impostazione predefinita*;\n<p><i>* Questo \u00e8 il comportamento predefinito di Spring Data Redis (almeno lo era quando ho controllato l'ultima volta), il che ha portato a un 'disastroso' guasto: quando Redis \u00e8 stato temporaneamente inaccessibile, tutti i pod 'sono crollati'.<\/i><\/li>\n<li> \u00abesterno\u00bb in questo senso pu\u00f2 anche significare altri pod della stessa applicazione, cio\u00e8 idealmente la verifica non dovrebbe dipendere dallo stato di altri pod dello stesso cluster per prevenire crash a cascata:\n<ul>\n<li> i risultati possono variare per le applicazioni con stato distribuito (ad esempio, caching in-memory nei pod).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>Non utilizzare il liveness probe<\/b> per i pod (eccetto nei casi in cui sono veramente necessari e sei pienamente consapevole delle specifiche e delle conseguenze del loro utilizzo):\n<ul>\n<li> la liveness probe pu\u00f2 contribuire al ripristino di container \"bloccati\", ma poich\u00e9 hai il pieno controllo sulla tua applicazione, in teoria non dovrebbero verificarsi cose come processi \"bloccati\" e deadlock: l'alternativa migliore \u00e8 un arresto controllato dell'applicazione e il suo ripristino a uno stato stabile precedente;<\/li>\n<li> un liveness probe fallito porter\u00e0 al riavvio del contenitore, potenzialmente aggravando le conseguenze degli errori legati al caricamento: il riavvio del contenitore comporter\u00e0 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 che anche questi vadano in errore, ecc.;<\/li>\n<li> i liveness probe abbinati a una dipendenza esterna costituiscono la peggiore delle combinazioni possibili, causando fallimenti a cascata: un piccolo ritardo lato DB porter\u00e0 al riavvio di tutti i tuoi contenitori!<\/li>\n<\/ul>\n<\/li>\n<li> I parametri dei liveness e readiness probe <b>devono essere diversi<\/b>:\n<ul>\n<li> puoi utilizzare la liveness probe con lo stesso health check, ma con una soglia di attivazione pi\u00f9 alta (<code>failureThreshold<\/code>), ad esempio, assegnare uno stato <i>not-ready<\/i> dopo 3 tentativi e considerare che il liveness probe sia fallito dopo 10 tentativi;<\/li>\n<\/ul>\n<\/li>\n<li> <b>Non utilizzare controlli exec<\/b>, poich\u00e9 presentano problemi noti che portano alla comparsa di processi zombie:\n<ul>\n<li> dettagli: vedere <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">la presentazione degli specialisti 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> Utilizza i readiness probes per determinare quando un pod \u00e8 pronto per ricevere traffico.<\/li>\n<li> Utilizza i liveness probes solo quando sono realmente necessari.<\/li>\n<li> Un uso errato dei readiness\/liveness probes pu\u00f2 portare a una diminuzione 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 verifiche di liveness in Kubernetes possono essere pericolose\" 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: Configura 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 Colpirti con il Piede Sbagliato<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">NRE Labs Outage Post-Mortem<\/a><\/noindex> (parla anche di livenessProbe).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Aggiornamento n. 1 del 29-09-2019<\/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>: nota aggiunta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">EJ mi ha ricordato<\/a><\/noindex> su PDB: uno dei problemi delle liveness probe \u00e8 la mancanza 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 guasti parallelamente che un'applicazione pu\u00f2 subire, tuttavia i controlli non considerano il PDB. Idealmente, possiamo istruire K8s: \u00abRiavvia un pod se il suo controllo fallisce, ma non riavviarli tutti, per non peggiorare ulteriormente la situazione\u00bb.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan ha formulato benissimo<\/a><\/noindex>: \u00abUtilizza il liveness probing quando sei sicuro che <b>la cosa migliore da fare sia 'uccidere' l'applicazione<\/b>\u00bb (anche in questo caso, non esagerare).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"Le verifiche di liveness in Kubernetes possono essere pericolose\" 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\">Per quanto riguarda la lettura della documentazione prima dell'uso<\/a><\/noindex>: ho creato una richiesta corrispondente (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">richiesta di funzione<\/a><\/noindex>) per integrare la documentazione sui liveness probes.<\/p>\n<h2>P.S. dal traduttore<\/h2>\n<p>\nLeggi anche nel nostro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: 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 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\/it\/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=\"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.\" \/>\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\udd47I liveness probes in Kubernetes possono essere pericolosi | ProHoster","description":"Nota del traduttore: Il Senior Engineer di Zalando, Henning Jacobs, ha notato pi\u00f9 volte che gli utenti di Kubernetes hanno problemi a comprendere lo scopo dei liveness (e readiness) probes e il loro corretto utilizzo.","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.","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}