A Pod is the lowest compute unit in Kubernetes running one or more containers. Pods have their own cluster-private IP address, which means that containers within a Pod can all reach each other’s ports on localhost, and all pods in a cluster can see each other. However, Pods can die, whether crashing, rolling update or being removed due to downscaling, in which cases, their IP addresses change. Therefore directly accessing pods is not a reliable way to access the application. We will be looking at the objects that Kubernetes provides out of the box that are required to expose the applications over a network, and also some of the tools and practices we at Stakater use to efficiently expose kubernetes services in a scalable way.