git clone --filter=blob:none --sparse https://github.com/calmict/book_labs.git cd book_labs git sparse-checkout set kubernetes/ed1
Il viaggio parte sotto Kubernetes: osservi un processo reale attraverso le due finestre che fanno sembrare un container una macchina separata.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap01/solution ./run.sh
Dopo le due viste del capitolo 1, costruisci tu l'illusione usando soltanto gli strumenti del kernel Linux.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap02/solution ./run.sh
I namespace decidono che cosa un processo vede; ora osservi direttamente i contatori che decidono quanto può consumare.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap03/solution ./run.sh
Dopo namespaces e cgroup manca l'ultimo pezzo dell'anatomia: il filesystem. In questo laboratorio apri un'immagine, segui i riferimenti tra i suoi oggetti e misuri quanto — e in che senso — il root del container è diverso dal root dell'host: i poteri sì, l'identità no.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap04/solution ./run.sh
Hai costruito a mano i pezzi di un container; ora segui chi li assembla. Parti dal processo vivo, risali fino allo shim, interroghi containerd e infine consegni un bundle direttamente a runc.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap05/solution ./run.sh
I namespace del capitolo 2 erano stanze chiuse. Ora posi i cavi: due veth e un bridge trasformano due viste di rete isolate in una piccola rete, senza mai modificare quella dell'host.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap06/solution ./run.sh
I container ora entrano nel cluster. In questo laboratorio distingui il cervello dalle braccia e guardi il modello dichiarativo correggere un sabotaggio reale.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap07/solution ./run.sh
Il desiderio del capitolo 7 deve sopravvivere ai guasti. Qui lo ritrovi come chiave replicata e misuri la differenza tra perdere un leader e perdere la maggioranza.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap08/solution ./run.sh
Etcd custodisce la verità, ma solo l'API server può toccarla. Qui usi curl per vedere le porte che una richiesta attraversa e lo stream che notifica ogni cambiamento.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap09/solution ./run.sh
Dopo LIST e WATCH, costruisci il loop che riceve lo stato, misura lo scarto e agisce.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap10/solution ./run.sh
Il loop ora ha un compito preciso: scegliere il nodo, senza eseguire il Pod.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap11/solution ./run.sh
Dopo la scelta dello scheduler, osservi il kubelet che mantiene il Pod sano e pronto sul nodo.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap12/solution ./run.sh
> Esercizio del Capitolo 13 — La vita di un Pod: da kubectl apply al container attivo del > *Manuale di Kubernetes* (collana Calm ICT — [calmict.com](https://calmict.com)).
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap13/solution ./run.sh
> Esercizio del Capitolo 14 — Il Pod in profondità del > *Manuale di Kubernetes* (collana Calm ICT — [calmict.com](https://calmict.com)).
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap14/solution ./run.sh
> Esercizio del Capitolo 15 — ReplicaSet e Deployment del > *Manuale di Kubernetes* (collana Calm ICT — [calmict.com](https://calmict.com)).
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap15/solution ./run.sh
> Esercizio del Capitolo 16 — StatefulSet e la gestione dello stato del > *Manuale di Kubernetes* (collana Calm ICT — [calmict.com](https://calmict.com)).
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap16/solution ./run.sh
> Esercizio del Capitolo 17 — DaemonSet, Job e CronJob del > *Manuale di Kubernetes* (collana Calm ICT — [calmict.com](https://calmict.com)).
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap17/solution ./run.sh
> Esercizio del Capitolo 18 — I Servizi e la magia di kube-proxy del > *Manuale di Kubernetes* (collana Calm ICT — [calmict.com](https://calmict.com)).
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap18/solution ./run.sh
Dopo i Service del capitolo 18, il palazzo ha molti ingressi ma non sa ancora leggere il nome scritto sulla richiesta HTTP. Qui separi le regole dichiarative da chi le realizza e osservi il routing L7.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap19/solution ./run.sh
Dopo aver instradato le richieste, assegni storage senza legare l'applicazione a un disco preciso: il PVC chiede, il PV offre e il binder combina il matrimonio.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap20/solution ./run.sh
Lo storage ha separato richiesta e implementazione; ora separi autenticazione e autorizzazione. Assumi una persona con un certificato e dai a un workload un'identità propria.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap21/solution ./run.sh
RBAC ha chiuso il confine dell'API; ora chiudi i percorsi tra i workload con un contratto di rete.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap22/solution ./run.sh
Il confine di rete è chiuso; ora riduci ciò che un processo può fare attraverso il kernel condiviso con l'host.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap23/solution ./run.sh
Hai coordinato a mano gli oggetti Kubernetes; ora un chart trasforma la loro forma comune in una release versionata.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap24/solution ./run.sh
Dopo aver impacchettato la piattaforma con Helm, le dai occhi: un lettore visita i contatori e trasforma misure grezze in domande verificabili.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap25/solution ./run.sh
Hai imparato a osservare il cluster; ora consegni ad ArgoCD un libro mastro e gli chiedi di correggere ogni divergenza.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap26/solution ./run.sh
Dopo aver affidato lo stato a un revisore, affidi ogni chiamata a una scorta che applica identità, cifratura e rotta senza cambiare l'applicazione.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap27/solution ./run.sh
Il viaggio si chiude dando al portiere assunto nel capitolo 19 un'identità verificabile. In questo laboratorio costruisci una CA locale, chiedi a Cert-Manager di emettere il certificato e dimostri che Traefik serve il negozio in HTTPS senza chiavi o certificati creati a mano.
Completa i TODO nei file di partenza, poi lancia il test della soluzione:
cd kubernetes/ed1/cap28/solution ./run.sh