The smallest and most basic deployable entity in Kubernetes is a Pod. A Pod represents a single instance of a running process in your cluster. Containers may be individually managed, or they may reside within a Pod, depending on the application. Many containers may be housed together in one Pod in sophisticated implementations.
A Kubernetes pod runs on a node in your cluster and remains on its node until the process is complete, deleted, or is ‘evicted’ if starved for resources. Should a node fail, Pods running on that machine are automatically scheduled for deletion.
Each pod is designed to run just one copy of your application per cluster. If you’re new to Kubernetes, it’s generally not advised to create individual Pods directly; running initializing application would generally spawn identical pods, with no need to create a distinct pod.
Shared networking and storage resources for containers in Pods is a powerful feature in Kubernetes. The Pod's network environment, including its IP address and network ports, is shared by all of the container instances.
To configure your Kubernetes correctly from the get-go and avoid common pitfalls, a Kubernetes-specific configuration tool or IDE such as Monokle can help get you up and running quickly.