Kubernetes je open-sourcový systém na orchestraci kontejnerů pro automatický deployment, škálování a správu kontejnerizovaných aplikací. Původně byl navržen Googlem a nyní je spravován Cloud Native Computing Foundation. Jeho cílem je vytvořit platformu pro automatizovaný deployment, škálování a operace na aplikačních kontejnerech napříč klustry hostů. Funguje s širokou škálou kontejnerových nástrojů jako je například Docker.
Kubernetes definuje sadu stavebních kamenů, takzvaných „primitives“, které kolektivně vytváří mechanismus, který zajišťuje deployment, správu a škálování aplikací. Kubernetes je volně navázaný a rozšířitelný, aby si dokázal poradit s různou zátěží. Tuto rozšiřitelnost z velké části umožňuje Kubernetes API, které používají interní komponenty stejně jako rozšíření a kontejnery, které přes Kubernetes běží.
Základní schedulovací jednotkou Kubernetes je pod. Přidává vyšší úroveň abstrakce tím, že seskupuje kontejnerizované komponenty. Pod obsahuje jeden nebo více kontejnerů, u kterých je garantováno, že jsou na stejné lokalitě na hostitelském stroji a mohou sdílet zdroje.
Každému podu je Kubernetes přiřazena unikátní IP adresa v rámci klusteru, která umožňuje aplikaci použití portů bez rizika konfliktů. Pod může definovat objem, například u lokálního úložiště nebo síťového disku a uvolnit jej kontejnerům spadajícím do podu. Pody mohou být spravovány manuálně skrze Kubernetes API nebo může jejich správa být delegována kontroleru.
Kontroler je smyčka, která zajišťuje přechod stavu klusteru do požadovaného stavu. Toho docílí tak, že spravuje sadu podů. Jedním ze druhů kontrolerů je replikační kontroler, který spravuje replikaci a škálování tím, že spouští specifický počet kopií podu napříč klusterem. Také vytváří náhradní pody, pokud některý z uzlů selže.
Mezi další kontrolery, které jsou součástí jádra systému Kubernetes patří DaemonSet kontroler, který spouští přesně jeden pod na každém stroji (nebo podmnožině strojů) a Job kontroler, který spouští pody, které směřují k ukončení například v případě dávkových jobů. Sada podů, kterou kontroler spravuje je definovaná jejich štítky, které jsou součástí definice kontroleru.
Kubernetes služba je sada podů, které pracují společně. Tato skupina podů, které společně tvoří službu je definovaná štítkem.
Kubernetes má architekturu na bázi řídícího stroje a otroků. Komponenty je pak možné rozdělit na ty, které spravují jednotlivý uzel a ty, které jsou součástí řídícího stroje. Řídící stroj je hlavní řídící jednotka klusteru, která spravuje jeho zátěž a řídí komunikaci napříč systémem. Skládá se z různých komponent, každá z nich má vlastní procesy, které mohou běžet na jednom řídícím uzlu nebo na více.