Een 'Pod' in een Kubernetes-cluster is het kleinste en simpelste object dat gedeployed kan worden. Een pod bevat één of meer containers (bijvoorbeeld Docker containers). Containers in een pod delen dezelfde storage en netwerk resources, bijvoorbeeld IP-adressen en netwerkpoorten. Een pod bevat daarnaast een specificatie van hoe de containers uitgevoerd moeten worden.
Een pod is als het ware een self-contained en geïsoleerde 'logical host' die alle vereisten bevat om een specifieke applicatie uit te voeren.
Pods zijn bedoeld om applicaties in enkelvoud uit te voeren. Er draaien dus niet meerdere instances van je applicatie binnen één pod. In plaats daarvan worden er meerdere identieke pods (ook wel 'replica's' genoemd) aangemaakt om je applicatie meerdere keren uit te voeren. Dit is ook hoe je je setup als het ware opschaalt qua capaciteit.
Een set van gerepliceerde pods worden aangemaakt en beheerd door een controller, bijvoorbeeld een 'Deployment'. Controllers beheren de levenscyclus van pods en kunnen de horizontale schaalbaarheid aanpassen. Met andere woorden: de controller kan het aantal pods naar behoefte aanpassen en doet dit ook met enige regelmaat. Pods zijn namelijk niet bedoeld om te blijven bestaan en worden regelmatig vervangen, bijvoorbeeld tijdens het doorvoeren van een update. Als een pod om wat voor reden dan ook faalt, komt die ook niet terug, maar wordt de pod verwijderd en vervangen door een nieuwe.
Pods worden uitgevoerd op nodes binnen je cluster. Eenmaal aangemaakt blijft een pod op een node aanwezig tot de pod verwijderd wordt om welke reden dan ook, bijvoorbeeld als een node geen resources (bijv. RAM) meer tot zijn beschikking heeft of de node crashed.