Mentre leggi dalla sua pagina Github :
Kubernetes è un sistema open source per la gestione di applicazioni containerizzate su più host, fornendo meccanismi di base per la distribuzione, la manutenzione e il ridimensionamento delle applicazioni.
Kubernetes è:
lean: lightweight, simple, accessible
portable: public, private, hybrid, multi cloud
extensible: modular, pluggable, hookable, composable
self-healing: auto-placement, auto-restart, auto-replication
Kubernetes si basa su un decennio e mezzo di esperienza in Google nella gestione di carichi di lavoro di produzione su larga scala, combinati con le migliori idee e pratiche della comunità.
Per me Kubernetes è uno strumento di orchestrazione container di Google. Grazie al suo design è possibile implementare la compatibilità con qualsiasi motore contenitore, ma penso che ora sia limitato a Docker. Ci sono alcuni concetti importanti nella sua architettura:
Kubernetes funziona con i seguenti concetti:
I cluster sono le risorse di calcolo su cui sono costruiti i contenitori. Kubernetes può funzionare ovunque! Consulta le Guide introduttive per istruzioni su una varietà di servizi.
I pod sono un gruppo raggruppato di contenitori Docker con volumi condivisi. Sono le unità dispiegabili più piccole che possono essere create, programmate e gestite con Kubernetes. I pod possono essere creati singolarmente, ma è consigliabile utilizzare un controller di replica anche se si crea un singolo pod. Maggiori informazioni sui baccelli.
I controller di replica gestiscono il ciclo di vita dei pod. Assicurano che un determinato numero di pod sia in esecuzione in qualsiasi momento, creando o uccidendo i pod come richiesto. Ulteriori informazioni sui controller di replica.
I servizi forniscono un nome e un indirizzo singoli e stabili per un set di pod. Agiscono come bilanciatori di carico di base. Maggiori informazioni sui servizi.
Le etichette vengono utilizzate per organizzare e selezionare gruppi di oggetti in base a coppie chiave: valore. Maggiori informazioni sulle etichette.
Quindi, hai un gruppo di macchine che formano un cluster in cui vengono eseguiti i contenitori. Puoi anche definire un gruppo di container che forniscono un servizio, in modo analogo a come fai con altri strumenti come fig (es: webapp pod può essere un server rails e un database postgres). Hai anche altri strumenti per garantire che un certo numero di container / pod di un servizio sia in esecuzione contemporaneamente, un archivio di valori-chiave, una sorta di bilanciamento del carico integrato ...
Se sai qualcosa sul coreos, è una soluzione molto simile ma di Google. Algo Kubernetes ha una buona integrazione con Google Cloud Engine.