Pod: le unità più piccole
Scopra i Pod, gli elementi costitutivi fondamentali di Kubernetes, e come definirli e gestirli.
Pod: le unità più piccole è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Che cos'è un Pod Kubernetes?
In Kubernetes, l'unità più piccola e fondamentale che può essere distribuita è un Pod. Immagini un Pod come una singola "casa" che contiene uno o più container.
I Pod sono un'astrazione dei container. Rappresentano un processo in esecuzione nel cluster e incapsulano i container dell'applicazione, le risorse di storage, un indirizzo IP di rete univoco e le opzioni che regolano il funzionamento dei container.

Pod e container: la differenza
Forse si sta chiedendo: "Perché mi serve un Pod se ho già i container?" Ecco la differenza fondamentale:
- Un container (come un container Docker) è un pacchetto che contiene un'applicazione e le relative dipendenze.
- Un Pod è l'astrazione di Kubernetes che racchiude uno o più container, fornendo loro risorse condivise e un'unica identità di rete.
Mentre un container è l'eseguibile vero e proprio, un Pod è il modo in cui Kubernetes gestisce e orchestra tali eseguibili.
Perché usare i Pod?
I Pod offrono diversi vantaggi fondamentali:
- Namespace di rete condiviso: tutti i container all'interno di un Pod condividono lo stesso indirizzo IP e le stesse porte di rete. Possono comunicare tra loro usando
localhost. - Storage condiviso: i Pod possono condividere volumi di storage, consentendo ai container dello stesso Pod di accedere a dati comuni.
- Co-localizzazione e co-scheduling: i container che devono lavorare a stretto contatto (ad esempio, un'applicazione e un agente di logging) possono essere eseguiti garantendo che si trovino sullo stesso nodo e vengano sempre pianificati insieme.
Anatomia della definizione di un Pod
I Pod vengono definiti usando file di configurazione YAML. Ecco i componenti principali che troverà:
apiVersion: specifica la versione dell'API di Kubernetes (ad esempio,v1).kind: il tipo di oggetto Kubernetes, che in questo caso èPod.metadata: contiene informazioni come ilnamee lelabelsdel Pod.spec: lo stato desiderato del Pod, inclusi icontainersda eseguire, ivolumese altre impostazioni.
Definizione di un Pod con un singolo container
La maggior parte dei Pod contiene un singolo container. È una configurazione comune per le applicazioni semplici. Ecco una definizione YAML di base per un Pod che esegue un server web Nginx:
apiVersion: v1
kind: Pod
metadata:
name: my-nginx-pod
labels:
app: webserver
spec:
containers:
- name: nginx-container
image: nginx:latest
ports:
- containerPort: 80Distribuzione del primo Pod
Per creare un Pod da un file YAML, si usa il comando kubectl apply. Questo comando indica a Kubernetes di creare o aggiornare le risorse in base alla definizione fornita.
Supponiamo di aver salvato la definizione del Pod Nginx precedente come nginx-pod.yaml. Per distribuirla, si esegue:
kubectl apply -f nginx-pod.yaml
Kubernetes pianificherà quindi l'esecuzione di questo Pod su uno dei nodi worker.
Ispezione dei Pod: get e describe
Una volta eseguito il deployment, vorrà controllare lo stato dei Pod. Ecco due comandi kubectl essenziali:
kubectl get pods: elenca tutti i Pod nel namespace corrente, mostrando nome, stato e nodo.kubectl describe pod <pod-name>: fornisce informazioni dettagliate su un Pod specifico, inclusi eventi, stato dei container e risorse assegnate.
Questi comandi sono fondamentali per il monitoraggio e la risoluzione dei problemi.
Pod multi-container: i sidecar
Sebbene i Pod con un singolo container siano comuni, alcuni scenari traggono vantaggio dai Pod multi-container. Un esempio classico è il pattern sidecar.
Un container sidecar viene eseguito insieme al container principale dell'applicazione nello stesso Pod e svolge attività ausiliarie come:
- Agenti di logging e monitoraggio
- Sincronizzazione dei dati
- Proxy del traffico di rete
I container condividono la rete e lo storage del Pod, rendendo efficiente la comunicazione.
Esempio: Pod multi-container
Ecco un esempio di Pod multi-container. Contiene un server web Nginx e un container sidecar busybox che scrive i log in un volume condiviso.
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
volumes:
- name: shared-log-volume
emptyDir: {}
containers:
- name: web-server
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- name: shared-log-volume
mountPath: /var/log/nginx
- name: log-writer
image: busybox:latest
command: ["/bin/sh", "-c", "while true; do echo 'Hello from sidecar!' >> /var/log/app.log; sleep 5; done"]
volumeMounts:
- name: shared-log-volume
mountPath: /var/log/appVerifica le conoscenze sui Pod
Quale delle seguenti affermazioni sui Pod Kubernetes è VERA?
Riepilogo: i Pod, l'unità fondamentale
Ha appena imparato a conoscere i Pod Kubernetes, i componenti fondamentali delle applicazioni in un cluster.
- I Pod incapsulano uno o più container, fornendo loro risorse condivise.
- Offrono rete e storage condivisi e garantiscono la co-localizzazione dei container correlati.
- I Pod vengono definiti usando YAML e distribuiti con
kubectl apply. kubectl get podsekubectl describe podaiutano a monitorarli.
Ora esploreremo altri comandi kubectl per interagire con il cluster!
Domande Frequenti
La lezione «Pod: le unità più piccole» è gratuita?
Sì — il testo completo di «Pod: le unità più piccole» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Pod: le unità più piccole»?
Scopra i Pod, gli elementi costitutivi fondamentali di Kubernetes, e come definirli e gestirli. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Pod: le unità più piccole»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Architettura di Kubernetes
- Pod: le unità più piccole
- Comandi essenziali di kubectl
- Namespace ed etichette per l'organizzazione