Kubernetes setzt sich aus einer Vielzahl verschiedener Objekte zusammen, welche unterschiedliche Aufgaben verantworten. Zu diesen Objekten gehören unter anderem Pods, Services, Nodes, Cluster und der API-Server.
Pods sind die kleinste Bereitstellungseinheit, welche eine oder mehrere Container enthält und gemeinsame Ressourcen teilt. Nodes sind physische oder virtuelle Maschinen in einem Kubernetes-Cluster, auf denen Pods ausgeführt werden. Ein Service ermöglicht es, eine Gruppe von Pods, die eine bestimmte Anwendung ausführen, als Netzwerkdienst bereitzustellen. Ein Cluster ist eine Gruppe von Nodes, die zusammenarbeiten, um Anwendungen bereitzustellen und zu verwalten.
Die zu den Objekten dazugehörigen Controller haben verschiedene Aufgabenbereiche und sind dafür verantwortlich, den gewünschten Zustand eines Systems zu überwachen und sicherzustellen, dass dieser Zustand erreicht und aufrechterhalten wird. Controller sind in der Regel in der Lage, gewünschte Änderungen im Cluster zu erkennen und entsprechende Maßnahmen zu ergreifen, um den Zielzustand zu erreichen. Bei Hardwareausfällen sorgt ein Controller automatisch dafür, den Zielzustand der zugehörigen Ressourcen schnellstmöglich wiederherzustellen.
Über eine zugrundeliegende, standardisierte Auszeichnungssprache wird die Beschreibung von Objekten (wie beispielsweise beliebig vielen, replizierten Pods) erheblich erleichtert. Operatoren ermöglichen es, umfangreiche Anwendungen und deren Lebenszyklus in Kubernetes zu automatisieren. Ein Operator nutzt die Kubernetes-API und -Ressourcen, um spezifische Anwendungslogik zu implementieren, die über die Standardfunktionen von Kubernetes hinausgeht.
Sämtliche Ressourcen werden über einen (hochverfügbaren) API-Server verwaltet. Dieser fungiert als Schnittstelle für die Interaktion mit dem Kubernetes-Cluster. Er ist verantwortlich für die Verarbeitung von API-Anfragen, die Verwaltung von Ressourcen und die Kommunikation zwischen verschiedenen Komponenten des Clusters.