Kubernetes
Kubernetes (abbreviato K8s) è un sistema open-source di orchestrazione e gestione di container.[1] Inizialmente sviluppato da Google, adesso è mantenuto da Cloud Native Computing Foundation. Funziona con molti sistemi di containerizzazione, compreso Docker.
Kubernetes software | |
---|---|
![]() | |
![]() | |
Genere | |
Sviluppatore | Google e Cloud Native Computing Foundation |
Ultima versione | 1.33.0 (23 aprile 2025) |
Sistema operativo | |
Linguaggio | Go |
Licenza | licenza Apache 2.0 (licenza libera) |
Sito web | kubernetes.io |
Architettura
Kubernetes è un software formato da più componenti software disposti secondo il pattern orchestrator. Tale pattern distingue, nella terminologia Kubernetes, tra partecipanti master e nodi, che si coordinano per l'esecuzione dei container sui server che vanno a formare un cluster controllato da Kubernetes. La comunicazione di rete tra master e nodi avviene in quello che viene chiamato control plane.
Master
Il master è l'attore centrale di un cluster in quanto a lui fanno riferimento tutti gli altri nodi per coordinarsi nell'esecuzione dei container. Il master si occupa solo della funzione di orchestrare i nodi e non di eseguire container applicativi.
Essendo centrale al funzionamento del cluster, spesso il master viene replicato su più server in modo da garantire un'alta disponibilità del servizio.
Nodo
Il nodo di un cluster Kubernetes è generalmente identificabile uno ad uno con un singolo server del cluster. Spesso quindi ci si riferisce ad un gruppo di nodi direttamente con "cluster Kubernetes".
Struttura
Pods
Il più semplice elemento in Kubernetes è il pod. Il pod aggiunge un più alto livello di astrazione raggruppando i container. All'interno di un pod i container condividono le risorse, mentre il pod si occupa di astrarre rete e storage al fine di poter spostare più facilmente un container all'interno del cluster. Ogni pod in Kubernetes ha il proprio Indirizzo IP dentro il cluster, questo permette alle applicazioni di usare diverse porte senza rischiare conflitti.[2] Un pod può definire un volume, una sorta di disco locale o disco di rete e metterlo a disposizione a tutti i container all'interno del pod.[3] I pod possono essere gestiti manualmente tramite le API di Kubernetes o tramite i controller.
Label
Kubernetes permette di aggiungere informazioni di tipo key-value chiamate "labels" a qualunque elemento all'interno del sistema, come ad esempio pod e nodi.
Services
Un service Kubernetes è un insieme di pod che lavorano assieme, come uno strato di una applicazione multi-tier. Il set di pod che costituiscono un servizio sono definiti mediante label e selector. Di default un service è esposto all'interno di un cluster, ma può essere esposto anche all'esterno del cluster.[4]
Note
- ^ github.com, https://github.com/kubernetes/kubernetes/ .
- ^ dasblinkenlichten.com, http://www.dasblinkenlichten.com/kubernetes-101-networking/ .
- ^ medium.com, https://medium.com/fabric8-io/kubernetes-for-developers-2a9c7202fcd3#.b6u76jxar .
- ^ dasblinkenlichten.com, http://www.dasblinkenlichten.com/kubernetes-101-external-access-into-the-cluster/ .
Altri progetti
- Wikimedia Commons contiene immagini o altri file su Kubernetes
Collegamenti esterni
- (EN) Sito ufficiale, su kubernetes.io.
- (EN) Blog ufficiale, su kubernetes.io.
- (EN) Kubernetes, su GitHub.
- Repository sorgenti di Kubernetes, su github.com.
- Sito di segnalazione bug, su github.com.
Controllo di autorità | GND (DE) 1153019000 |
---|