A presentation at Cloud Native Rejekts in in London, UK by Marcus Noble
Kubernetes Pods may be the smallest deployable units in your clusters, but they hold hidden complexities that even seasoned users can overlook. If you think you know everything about Pods — think again!
This talk is designed to take you on a deep dive into the world of all things Pods, covering both the familiar and the obscure.
Starting with a quick overview of the basic architecture, we’ll then move into more nuanced territory — exploring topics like Pod readiness probes, lifecycle hooks, runtime classes, and the multitude of different container types that can be used. We’ll also discuss common misconceptions, gotchas that can trip you up in production, and offer some best practices suggestions along the way.
By the end of this session, you’ll have a deeper understanding and appreciation of Pods and the knowledge to leverage them expertly in your Kubernetes clusters.
The following resources were mentioned during the presentation or are useful additional information.
Most of the information about containers, initContainers, etc. and Pod Lifecycle can be found here.
All the information about how image
, imagePullPolicyand
imageSecrets` are handled and configured.
A walkthrough tutorial on how to make use of the various probes available for your containers
A walkthrough on how to make use of postStart
and preStop
lifecycle hooks
A great blog post on Readiness Gates and how / when to use them
An example of a popular application using Pod Readiness Gates
A walkthrough on how to make use of the downward API to expose Pod information as environment variables in your workloads
An old blog post now but still one of the few resources that actually goes into details about Pause Containers.
A post going into detail about what Pause Containers are and what they are used for in Kubernetes.
Introduced in v1.32 as an alpha feature
The Bitnami chart for Cilium uses PostStart to handle some iptables changes if running in ENI mode and a PreStop to handle some uninstall logic.