A pod is the vehicle for running containers in Kubernetes. A pod consists of:
Resources are shared amongst containers in the pod. Containers within a pod also share an IP address and port space, and can find each other via localhost, or interprocess communications (such as semaphores).
Pods are used any time you need a container to be run. However, they are rarely created by a user, and are instead automatically created by controllers such as jobs, replication controllers, deployments, daemon set. The following table describes the strategy each controller uses to create pods.
Controller | Usage Strategy |
---|---|
Deployment | For running pods as a continuous and healthy application |
Replication Controller | Used for the same purpose as Deployments (superseded Replication Controllers) |
Jobs | For running pods “to completion” (which are then shut down) |
Daemon Set | Mainly for performing operations on any nodes that match given parameters |
Do not use pods directly. Pods should always be managed by a controller.
To retrieve the status of a pod, run the following command:
kubectl get pod <name>
Return Value | Description |
---|---|
READY |
Describes the number of containers that are ready to recieve traffic. |
STATUS |
A value from the PodPhase enum describing the current status of the pod. Can be Running , Pending , Succeeded , Failed , and Unknown . |
TODO: Link to refpage for kubectl get pod
To get a full description of a pod, including past events, run the following command:
kubectl describe pod <name>
TODO: Link to refpage for kubectl describe pod
Value | Description |
---|---|
Deployment | For running pods as a continuous and healthy application |
Replication Controller | Used for the same purpose as Deployments (superseded Replication Controllers) |
Jobs | For running pods “to completion” (which are then shut down) |
Daemon Set | Mainly for performing operations on any nodes that match given parameters |
Pods are defined when configuring the controller of your choice. In controller specifications,
the parts that define the contents of the pod are inside the template:
section.
YAML EXAMPLE HERE