Kubernetes Pod and Container Concepts

From NovaOrdis Knowledge Base
Revision as of 18:29, 24 September 2021 by Ovidiu (talk | contribs) (→‎Overview)
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 - when an application has more pods, the pods are called replicas. 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