On this page3 sections
An image is the package; a container is the process you start from it. That distinction explains much of what containers make easier. You can move the same built application between environments, while Kubernetes works to place its instances and keep the requested number running. The result still depends on the environment the process finds when it starts.
Consider a hypothetical report service whose readiness endpoint succeeds while its background worker cannot reach durable storage. Requests enter, but their jobs never finish. Following that service from image to process to completed work shows both what containers make easier and why a running instance is only one milestone.
From an image to a working process
An image packages the application and its filesystem; a container is the running process using that package, with isolation supplied by the host. It is easy to blur the two because the same image can start many containers. Each running instance still depends on its actual environment: the host kernel, mounted storage, configuration and accessible services. Unlike a virtual machine with its own kernel, the container relies on the host kernel, while the application remains responsible for signals, failures and persistent state.
A registry stores images so machines can retrieve the chosen artifact. An image name can include a tag, while a digest identifies particular image content. The image supplies the packaged filesystem and application; deployment configuration supplies such things as startup settings, mounted storage and resource limits. Keeping those roles separate helps explain why an unchanged image can behave differently after a configuration change.
For the report worker, the next questions live outside the package. Can it reach durable storage? Which data survives if the process is replaced? What happens to a job accepted just before it stops? The image helps you start the same program again. Those answers tell you whether starting it again finishes the work.
An orchestrator manages the declared configuration across machines. Kubernetes runs containers in Pods, groups of one or more containers scheduled together with shared networking and storage resources. A ReplicaSet maintains the requested number of matching Pods; a Deployment manages those ReplicaSets as application versions roll out. The controller repeatedly compares the running system with the desired configuration and attempts to bring them into agreement. The Deployment documentation explains the model and its rollout controls. That reconciliation gives the service an operating mechanism, but its checks still need to match the work being served.
Readiness, liveness and startup answer different questions
A process can be alive without being able to serve a useful request. Readiness should express whether the instance can receive traffic; liveness should identify a condition for which restarting it is appropriate. If every instance is waiting on the same slow dependency, restarting them all does not automatically improve the dependency. A failing readiness check removes the instance from normal traffic; a failing liveness check can trigger a restart. Choose the condition each check observes with that consequence in mind.
Startup adds another timing question. A slow initialization can be interrupted repeatedly if liveness testing begins before the application is prepared to answer. Kubernetes startup probes delay liveness and readiness probing until startup succeeds. Base that allowance on observed startup behavior, and also exercise genuine initialization failure. The window should permit expected preparation without leaving an irrecoverable instance unnoticed indefinitely.
Deployed resource settings can explain why an application behaves differently from a laptop test. Requests influence scheduling; limits constrain consumption according to the resource and runtime behavior. For example, CPU limits can lead to throttling, while exceeding a memory limit can lead to an out-of-memory termination. Kubernetes’s resource guidance explains those different enforcement mechanisms. Inspect the deployed conditions rather than assuming successful local startup established the same operating envelope.
Replacing the worker does not rewind what it touched. A file may already exist in durable storage, a job may still be queued and the same dependency may still be unavailable. If every fresh worker waits for one failed storage service, more replacements simply arrive at the same closed door.
A ready endpoint with a blocked background worker
For this worker, compare the successful readiness result with an unfinished job. Inspect the deployed resources and storage access alongside what the probe actually tests. A probe that never exercises durable storage cannot show whether that job will finish. Follow one accepted request through completion as well, so the platform status can be compared with the outcome the customer needs.
Once a version receives traffic, compare its latency and correctness with the previous version. A canary comparison can inform a deliberate rollback decision where the application permits it. Migration and stored-data compatibility still determine whether that rollback is a usable option.
With a managed platform, the service owner may have no direct control of the storage component. A documented completion signal and a reachable support route can still make the failure diagnosable. The owner needs enough visibility to identify the unfinished stage and get it investigated, rather than access to every underlying machine.
Read diagram description
The stages point to different evidence: scheduling, image retrieval, startup and readiness. A completed rollout still needs user-facing checks. Startup probes can give slow initialization its own allowance. Diagram labels: Pod scheduled?: Placement and resource constraints; Image fetched?: Registry, identity and image reference; Container started?: Configuration, dependencies and startup behavior; Ready for traffic?: Readiness evidence and dependency behavior; User operation succeeds?: Latency, correctness and asynchronous completion.
Follow the report until someone can download it. The scheduling, image and rollout states explain how far the platform got; storage access and application behavior explain why the job did or did not finish. Containers become easier to reason about when those are parts of one story, rather than a green process status standing in for the result.
Sources & context
Sources linked in this article. Read alongside the author’s analysis; a citation does not independently verify a publisher’s claims.
- Deployment documentationkubernetes.io
- startup probes delay liveness and readiness probing until startup succeedskubernetes.io
