I'm learning Kubernetes and want to check whether my mental model is accurate. My current understanding is that Kubernetes manages containerized applications by maintaining a declared desired state. A typical request path might be Internet → Ingress → Service → Pod → application container, while Pods are scheduled onto Nodes.
A Pod is the smallest deployable unit and can contain one or more containers, although most applications commonly use one main container per Pod. A Deployment defines the desired number and configuration of Pods and helps keep that state running. If a Pod fails, Kubernetes replaces it. Nodes are machines or virtual machines that run Pods, and each Node has a kubelet that starts and monitors workloads while reporting status to the control plane.
A Service provides a stable network endpoint for a changing set of Pods selected by labels. Ingress exposes HTTP or HTTPS routes into the cluster and can direct paths such as /auth or /api to different Services. Metrics Server gathers CPU and memory data from kubelets and makes it available to components such as the Horizontal Pod Autoscaler.
For scaling, my understanding is: traffic increases → Pods consume more resources → kubelets provide usage data → Metrics Server makes the metrics available → the HPA compares them with its target → the HPA changes the desired replica count → the Deployment and its ReplicaSet create or remove Pods → the scheduler places new Pods on suitable Nodes.
Kubernetes does not automatically scale application replicas unless the necessary metrics collection and an HPA have been configured. Are there any important corrections or missing details in this explanation, especially around Deployments, ReplicaSets, Services, Ingress, and the scaling flow?
4 Answers
Your Service and Ingress descriptions are good as a baseline. A Service provides stable discovery and load balancing for selected backend Pods, while an Ingress is an HTTP/HTTPS routing resource implemented by an Ingress Controller. The exact network path can vary by controller and cloud integration; in some setups, an external load balancer may target Pod IPs directly rather than forwarding to a Service in the exact way shown.
The biggest mental-model improvement is to think in terms of declared desired state. You describe how many replicas and what configuration you want, and Kubernetes controllers continually work to make the actual state match it. A Service is also separate from a Deployment: it selects any matching Pods by labels and doesn’t inherently belong to one particular Deployment. In some designs, a Service could even select Pods created by multiple workloads.
That distinction helps a lot. I was treating the Deployment and Service as one application-level object, but they really have separate responsibilities.
The autoscaling sequence is broadly right, with a couple of nuances. Metrics Server supplies resource metrics, but it doesn’t itself scale anything. The HPA changes the workload’s desired replica count, and the Deployment/ReplicaSet creates or removes Pods. CPU and memory targets are only one option; HPAs can also use custom or external metrics. Also, adding Pods does not automatically add Node capacity—if the cluster lacks room, a separate node autoscaler may be needed.
That last distinction is important: HPA scales Pods, while a node autoscaler can add machines when there isn’t enough capacity to schedule them.
The Deployment-to-Pod relationship is slightly indirect. A Deployment normally creates and manages a ReplicaSet, and the ReplicaSet maintains the requested number of Pods. The scheduler then chooses a suitable Node for each unscheduled Pod. This layered design also lets Deployments perform rolling updates by creating a new ReplicaSet and gradually replacing the old one.
Thanks—that makes the control flow clearer: Deployment manages the rollout, ReplicaSet maintains the replica count, and the scheduler places the Pods.

So the Internet → Ingress → Service → Pod diagram is a useful conceptual path, but not a guaranteed packet-by-packet route for every implementation.