Kubernetes Pod and Container Concepts

From NovaOrdis Knowledge Base
Revision as of 18:31, 24 September 2021 by Ovidiu (talk | contribs) (→‎Pod)
Jump to navigation Jump to search

External

Internal

Overview

A pod is the fundamental, atomic compute unit created and managed by Kubernetes. An application is deployed as one or more equivalent pods. There are various strategies to partition applications to pods. A pod groups together one or more containers. There are several types of containers: application containers, init containers and ephemeral containers. Pods are deployed on worker nodes. A pod has a well-defined lifecycle with several phases, and the pod's containers can only be in one of a well-defined number of states. Kubernetes learns of what happens with a container by container probes.

Pod

A pod is a group of one or more containers Kubernetes deploys and manages a compute unit, and the specification for how to run the containers. Kubernetes will not manage compute entities with smaller granularity, such as containers or processes. The containers of a pod are atomically deployed and managed as a group. A useful mental model when thinking of a pod is that of a logical host, where all its containers share a context.

Pod Operation Atomicity

Shared Context

The containers in a pod share network resources and storage. From this perspective, a pod can be thought of as a logical host with all its processes (containers) sharing the network stack and the storage available to the host.

Pod Lifecycle

Pod Phases

Pods and Nodes

Pods and Containers

Container

TODO:

Container Types

Application Container

Init Container

Ephemeral Container

Container States

Container Probes

Summary of a relationship between container probe result and overall pod situation.

Container Lifecycle Hooks

[Next]

TO DEPLETE

Kubernetes Pod and Container Concepts TODEPLETE