{"id":26792,"date":"2024-03-28T10:30:33","date_gmt":"2024-03-28T09:30:33","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=26792"},"modified":"2024-04-03T16:52:07","modified_gmt":"2024-04-03T14:52:07","slug":"due-container-in-un-singolo-pod","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/","title":{"rendered":"Due container in un singolo pod"},"content":{"rendered":"\n<p>Chiariamo subito tutti i dubbi : \u00e8 sbagliato avere pi\u00f9 di un container in un singolo Pod. Ci sono diverse ragioni dietro a questa affermazione e ne menzioner\u00f2 solo alcune. In ogni caso, il modo in cui Kubernetes \u00e8 stato progettato ci porta al fatto che avere solo un container per Pod ci offre molta pi\u00f9 flessibilit\u00e0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-due-container-una-cattiva-idea\">Due container: una cattiva idea<\/h2>\n\n\n\n<p>Abbiamo un&#8217;applicazione, composta da vari microservizi. La distribuiamo utilizzando i Deployments. In uno di questi <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/controllers\/deployment\/\" target=\"_blank\" aria-label=\"Deployments (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Deployments<\/a>, scegliamo di avere 2 dei nostri microservizi, diciamo il Microservizio A e il Microservizio B. Le prime versioni di entrambi i microservizi sono etichettate come v1.0. Il tempo passa e sviluppiamo una seconda versione del Microservizio A, etichettata come v2.0. La distribuiamo, e il Deployment ora ha v2.0 per il Microservizio A e v1.0 per il Microservizio B. Nel frattempo, il team del Microservizio B ha lavorato per apportare alcuni miglioramenti minori, e possiamo distribuire il Microservizio B v1.1. Aggiorniamo il nostro Deployment e ora abbiamo una situazione con il Microservizio A v2.0 e il Microservizio B v1.1. Aggiorniamo il nostro Deployment e ora abbiamo la situazione mostrata di seguito.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/image-16-1024x744.png\" alt=\"container pod kubernetes pattern\" class=\"wp-image-26796\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/image-16-1024x744.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/image-16-300x218.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/image-16-768x558.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/image-16-1536x1116.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/image-16.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Mentre usiamo l&#8217;applicazione, alcuni dei nostri utenti hanno segnalato alcuni bug gravi. Analizziamo il problema e notiamo che dobbiamo fare rollback del Microservizio A alla v2.0. Andiamo al nostro Deployment e&#8230; Oh, fermi tutti ! Non possiamo fare rollback senza perdere i miglioramenti del Microservizio B. Dobbiamo quindi distribuire una nuova versione del nostro Deployment, contenente MicroservizioA:v1.0 e MicroservizioB:v1.1, invece di eseguire un rollback. Questo decisamente non \u00e8 il modo in cui i Deployments dovrebbero essere utilizzati.<\/p>\n\n\n\n<p>Solo alcuni esempi in pi\u00f9:<\/p>\n\n\n\n<p><strong>Scalabilit\u00e0<\/strong>: immagina ci sia un <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/horizontal-pod-autoscale\/\" target=\"_blank\" aria-label=\"Horizontal Pod Autoscaler (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Horizontal Pod Autoscaler<\/a> in azione. Sappiamo che l&#8217;autoscaler aggiunger\u00e0 nuove repliche quando il consumo di CPU di un container raggiunge una certa soglia. Se ci sono pi\u00f9 container nello stesso Pod, l&#8217;autoscaler creer\u00e0 nuovi Pod&nbsp; che per\u00f2 contengono anche quei container che non hanno bisogno di scalare creando un eccessivo&nbsp; consumo di risorse;<\/p>\n\n\n\n<p><strong>Scheduling<\/strong>: basta considerare la Pod Affinity. La regola va elaborata&nbsp; a livello di Pod, quindi influisce su ogni container che si trova all&#8217;interno. Oppure considera che lo Scheduler cercher\u00e0 di ottimizzare il consumo di risorse: avere pi\u00f9 container, che consumano pi\u00f9 risorse, sar\u00e0 il risultato di uno scheduling poco ottimizzato.<\/p>\n\n\n\n<p>\u00c8 quindi sempre sbagliato avere pi\u00f9 di un solo container all&#8217;interno di un Pod? Beh, ci sono alcuni casi in cui \u00e8 piuttosto conveniente utilizzare alcuni container companion, che aiuteranno l\u2019application container&nbsp; a fare il suo lavoro. Ci\u00f2 che \u00e8 importante \u00e8 avere un solo application container.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/masterclass.codemotion.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1-1024x576.png\" alt=\"Codemotion Masterclass\" class=\"wp-image-26613\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1-1024x576.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1-300x169.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1-768x432.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1-1536x864.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1-896x504.png 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1-400x225.png 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/BANNER-MAGAZINE-1.png 1921w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-quando-e-giusto-i-pattern-sidecar-adapter-e-ambassador\">Quando \u00e8 giusto: i pattern Sidecar, Adapter e Ambassador<\/h2>\n\n\n\n<p>Avendo capito che dovremmo avere solo un application container&nbsp; in un singolo Pod, \u00e8 naturale immaginare quando \u00e8 giusto avere pi\u00f9 di un container: quando gli altri container servono il container principale. In che modo? Beh, il modo in cui sono funzionali all\u2019 application container&nbsp; ci dice quale design pattern stiamo usando, e ne abbiamo 3: Sidecar, Adapter e Ambassador. Da un punto di vista dei container non c&#8217;\u00e8 differenza: abbiamo solo un container companion che esegue operazioni invece di farle fare all\u2019application container. <\/p>\n\n\n\n<p><strong>Questo \u00e8 molto conveniente:<\/strong><\/p>\n\n\n\n<p>L\u2019application container&nbsp; non dovr\u00e0 fare cose che non sono legate alle problematiche che risolve, garantendo una buona separazione delle responsabilit\u00e0; abbiamo una modularit\u00e0 che ci permette di cambiare facilmente il container companion senza dover cambiare quello dell&#8217;applicazione. I container sono accoppiati in modo lasso e molto manutenibili; avere un insieme di container companion riduce il tempo di sviluppo: possiamo riutilizzare molti companion quando dobbiamo affrontare gli stessi problemi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pattern-sidecar\">Pattern Sidecar<\/h2>\n\n\n\n<p>Pensa a tutti quei casi in cui \u00e8 necessario aggiungere funzionalit\u00e0 essenziali, come il logging, il monitoraggio, la memorizzazione nella cache. Potremmo migliorare la nostra applicazione, aggiungendo codice per implementare queste funzionalit\u00e0, oppure possiamo semplicemente scrivere il nostro codice in un container companion. L&#8217;oggetto companion aggiunger\u00e0 logging, monitoraggio, memorizzazione nella cache e funzionalit\u00e0 simili, agendo al posto della nostra applicazione, raccogliendo log e metriche, o memorizzando nella cache dati usati frequentemente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pattern-adapter\">Pattern Adapter<\/h2>\n\n\n\n<p>Similmente al pattern di Design Adapter dei GoF, il pattern Adapter permette di utilizzare un container companion per agire come un oggetto che traduce le comunicazioni tra l\u2019 application container&nbsp; e il mondo esterno. Possiamo usarlo quando, ad esempio, dobbiamo comunicare con API esterne che utilizzano strutture dati diverse. Immagina di avere molte di queste API esterne, e un adapter pu\u00f2 tradurre tutte le strutture dati in quella utilizzata dalla nostra applicazione. Lo stesso vale se usiamo un broker di messaggi per scambiare messaggi: l&#8217;adapter tradurr\u00e0 i messaggi in modo che l&#8217;applicazione possa elaborarli usando solo una struttura. Ogni volta che hai bisogno di colmare lacune di comunicazione con sistemi esterni, un adapter \u00e8 la scelta perfetta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pattern-ambassador\">Pattern Ambassador<\/h2>\n\n\n\n<p>Un container ambassador agisce come intermediario, gestendo le richieste esterne e inoltrandole all\u2019 application container . Possiamo usarlo, ad esempio, per far rispettare policy di autenticazione e autorizzazione prima di passare le richieste all&#8217;applicazione. Ancora, possiamo fare da proxy alla connessione tra l&#8217;applicazione e un database remoto, fornendo un canale sicuro senza costringere l\u2019application container&nbsp; a occuparsi della sicurezza, semplificandone l&#8217;implementazione. Il pattern ambassador promuove un maggiore controllo e agilit\u00e0. Ti permette di implementare misure di sicurezza, ottimizzare il flusso di traffico e gestire le istanze dell&#8217;applicazione senza modificare l\u2019application container .<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><a href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/microservizi-cosa-sono\/\" target=\"_blank\" aria-label=\"Articolo consigliato: cosa sono i design pattern orientati ai microservizi? (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\"><em><strong>Articolo consigliato: cosa sono i design pattern orientati ai microservizi?<\/strong><\/em><\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-impostazione-del-pod-initcontainer\">Impostazione del Pod: InitContainer<\/h2>\n\n\n\n<p>Ci sono casi in cui il companion di cui abbiamo bisogno dovrebbe solo preparare il Pod, inizializzandolo per l&#8217;applicazione. Ad esempio, potremmo dover clonare un repository git nel Volume montato localmente, perch\u00e9 l&#8217;applicazione utilizzer\u00e0 i file scaricati. Potremmo dover generare dinamicamente un file di configurazione. O potremmo dover registrare l&#8217;intero Pod con un server remoto dall&#8217;API downward. In questi casi, Kubernetes ci offre un&#8217;opzione potente: gli InitContainers.<\/p>\n\n\n\n<p>Gli InitContainers sono container che vengono eseguiti fino al completamento durante l&#8217;inizializzazione del Pod. Possiamo definirne tanti, e ognuno di loro deve essere eseguito fino al completamento prima che l\u2019application container parta. Kubelet li eseguir\u00e0 sequenzialmente, uno dopo l&#8217;altro, nell&#8217;ordine in cui li definiamo. Sono ovviamente diversi da un sidecar o un ambassador, poich\u00e9 non saranno un companion. Imposteranno solo il Pod per l&#8217;applicazione e si fermeranno.<\/p>\n\n\n\n<p>&#8220;Possiamo vedere un esempio della definizione di un InitContainer qui sotto. Si noti che SERVICE_INITIALIZATION e DB_INITIALIZATION sono dei segnaposto per un comando generico che eseguir\u00e0 alcune inizializzazioni.&#8221;<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">apiVersion<\/span>: <span class=\"hljs-selector-tag\">v1<\/span>\n<span class=\"hljs-selector-tag\">kind<\/span>: <span class=\"hljs-selector-tag\">Pod<\/span>\n<span class=\"hljs-selector-tag\">metadata<\/span>:\n  <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">myapp<\/span>\n<span class=\"hljs-selector-tag\">spec<\/span>:\n  <span class=\"hljs-selector-tag\">containers<\/span>:\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">myapp-container<\/span>\n    <span class=\"hljs-selector-tag\">image<\/span>: <span class=\"hljs-selector-tag\">myapp-image<\/span>\n  <span class=\"hljs-selector-tag\">initContainers<\/span>:\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">init-myservice<\/span>\n    <span class=\"hljs-selector-tag\">image<\/span>: <span class=\"hljs-selector-tag\">busybox<\/span><span class=\"hljs-selector-pseudo\">:1.28<\/span>\n    <span class=\"hljs-selector-tag\">command<\/span>: <span class=\"hljs-selector-attr\">&#91;<span class=\"hljs-string\">'sh'<\/span>, <span class=\"hljs-string\">'-C'<\/span>, <span class=\"hljs-string\">'SERVICE_INITIALIZATION'<\/span>]<\/span>\n  <span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">init-myservice<\/span>\n    <span class=\"hljs-selector-tag\">image<\/span>: <span class=\"hljs-selector-tag\">busybox<\/span><span class=\"hljs-selector-pseudo\">:1.28<\/span>\n    <span class=\"hljs-selector-tag\">command<\/span>: <span class=\"hljs-selector-attr\">&#91;<span class=\"hljs-string\">'sh'<\/span>, <span class=\"hljs-string\">'-C'<\/span>, <span class=\"hljs-string\">'DB_INITIALIZATION'<\/span>]<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusione\">Conclusione<\/h2>\n\n\n\n<p>I pattern Sidecar, Adapter e Ambassador, insieme agli InitContainers, sono approcci molto utili per tutti quei lavori che, altrimenti, richiederebbero cambiamenti all\u2019 application container. Forniscono supporto al container principale e devono essere distribuiti come container secondari. Quale pattern useremo dipende dal tipo di lavoro che il container companion far\u00e0. Inoltre, in questo modo abbiamo container altamente riutilizzabili per diversi casi d&#8217;uso.<\/p>\n\n\n\n<p>Ricorda solo di non mettere pi\u00f9 di un container di applicazione nello stesso Pod: avere un companion \u00e8 sempre utile, ma non vogliamo mettere due piedi nella stessa scarpa.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chiariamo subito tutti i dubbi : \u00e8 sbagliato avere pi\u00f9 di un container in un singolo Pod. Ci sono diverse ragioni dietro a questa affermazione e ne menzioner\u00f2 solo alcune. In ogni caso, il modo in cui Kubernetes \u00e8 stato progettato ci porta al fatto che avere solo un container per Pod ci offre molta&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\">Read more<\/a><\/p>\n","protected":false},"author":247,"featured_media":21223,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10297],"tags":[],"collections":[11708],"class_list":{"0":"post-26792","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-cloud-manager","8":"collections-dalla-community","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Due container in un singolo pod - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"\u00c8 accettabile avere pi\u00f9 di un contenitore in un singolo pod? Ebbene, ci sono alcuni casi in cui lo \u00e8, e vediamoli in questo articolo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Due container in un singolo pod\" \/>\n<meta property=\"og:description\" content=\"\u00c8 accettabile avere pi\u00f9 di un contenitore in un singolo pod? Ebbene, ci sono alcuni casi in cui lo \u00e8, e vediamoli in questo articolo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-28T09:30:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-03T14:52:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"gregoriopalama\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@gregoriopalama\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gregoriopalama\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\"},\"author\":{\"name\":\"gregoriopalama\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/346a4ef48c9a5d866a20bba8aa2b14ce\"},\"headline\":\"Due container in un singolo pod\",\"datePublished\":\"2024-03-28T09:30:33+00:00\",\"dateModified\":\"2024-04-03T14:52:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\"},\"wordCount\":1148,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg\",\"articleSection\":[\"Cloud Manager\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\",\"name\":\"Due container in un singolo pod - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg\",\"datePublished\":\"2024-03-28T09:30:33+00:00\",\"dateModified\":\"2024-04-03T14:52:07+00:00\",\"description\":\"\u00c8 accettabile avere pi\u00f9 di un contenitore in un singolo pod? Ebbene, ci sono alcuni casi in cui lo \u00e8, e vediamoli in questo articolo.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg\",\"width\":1024,\"height\":1024,\"caption\":\"microservices digital transformation. From monolith to microservices concept.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Cloud Manager\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Due container in un singolo pod\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/346a4ef48c9a5d866a20bba8aa2b14ce\",\"name\":\"gregoriopalama\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/palama-100x100.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/palama-100x100.png\",\"caption\":\"gregoriopalama\"},\"description\":\"I have been working in the IT industry for over 15 years. I currently deal with DevOps issues, Cloud Engineering, Cloud Native and everything that revolves around containerization and serverless at Lutech. I am Google Cloud Innovator Champion on the topic of modern architecture. I manage GDG Pescara together with other developers, I love sharing my knowledge and trying to do it in a fun way.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/gregorio-palam\/\",\"https:\/\/x.com\/gregoriopalama\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/gregoriopalama\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Due container in un singolo pod - Codemotion Magazine","description":"\u00c8 accettabile avere pi\u00f9 di un contenitore in un singolo pod? Ebbene, ci sono alcuni casi in cui lo \u00e8, e vediamoli in questo articolo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/","og_locale":"en_US","og_type":"article","og_title":"Due container in un singolo pod","og_description":"\u00c8 accettabile avere pi\u00f9 di un contenitore in un singolo pod? Ebbene, ci sono alcuni casi in cui lo \u00e8, e vediamoli in questo articolo.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-03-28T09:30:33+00:00","article_modified_time":"2024-04-03T14:52:07+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg","type":"image\/jpeg"}],"author":"gregoriopalama","twitter_card":"summary_large_image","twitter_creator":"@gregoriopalama","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"gregoriopalama","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/"},"author":{"name":"gregoriopalama","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/346a4ef48c9a5d866a20bba8aa2b14ce"},"headline":"Due container in un singolo pod","datePublished":"2024-03-28T09:30:33+00:00","dateModified":"2024-04-03T14:52:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/"},"wordCount":1148,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg","articleSection":["Cloud Manager"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/","name":"Due container in un singolo pod - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg","datePublished":"2024-03-28T09:30:33+00:00","dateModified":"2024-04-03T14:52:07+00:00","description":"\u00c8 accettabile avere pi\u00f9 di un contenitore in un singolo pod? Ebbene, ci sono alcuni casi in cui lo \u00e8, e vediamoli in questo articolo.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg","width":1024,"height":1024,"caption":"microservices digital transformation. From monolith to microservices concept."},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/due-container-in-un-singolo-pod\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/"},{"@type":"ListItem","position":3,"name":"Cloud Manager","item":"https:\/\/www.codemotion.com\/magazine\/it\/devops-it\/cloud-manager\/"},{"@type":"ListItem","position":4,"name":"Due container in un singolo pod"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/346a4ef48c9a5d866a20bba8aa2b14ce","name":"gregoriopalama","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/palama-100x100.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/03\/palama-100x100.png","caption":"gregoriopalama"},"description":"I have been working in the IT industry for over 15 years. I currently deal with DevOps issues, Cloud Engineering, Cloud Native and everything that revolves around containerization and serverless at Lutech. I am Google Cloud Innovator Champion on the topic of modern architecture. I manage GDG Pescara together with other developers, I love sharing my knowledge and trying to do it in a fun way.","sameAs":["https:\/\/www.linkedin.com\/in\/gregorio-palam\/","https:\/\/x.com\/gregoriopalama"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/gregoriopalama\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-600x600.jpg","author_info":{"display_name":"gregoriopalama","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/gregoriopalama\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg",1024,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-300x300.jpg",300,300,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-768x768.jpg",768,768,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg",1024,1024,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg",1024,1024,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg",1024,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized.jpg",100,100,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/06\/microservices-digital-transformation-optimized-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"gregoriopalama","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/gregoriopalama\/"},"uagb_comment_info":0,"uagb_excerpt":"Chiariamo subito tutti i dubbi : \u00e8 sbagliato avere pi\u00f9 di un container in un singolo Pod. Ci sono diverse ragioni dietro a questa affermazione e ne menzioner\u00f2 solo alcune. In ogni caso, il modo in cui Kubernetes \u00e8 stato progettato ci porta al fatto che avere solo un container per Pod ci offre molta&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/247"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=26792"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26792\/revisions"}],"predecessor-version":[{"id":26912,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26792\/revisions\/26912"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/21223"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=26792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=26792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=26792"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=26792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}