Cloud Native 8 min read

What Makes Kubernetes Tick? Pods, ReplicationControllers, and Services Explained

The author explores Kubernetes by reading "Kubernetes in Action", uncovering why pods are the smallest deployable unit, how ReplicationControllers maintain desired replica counts, and how Services provide stable access, while emphasizing a problem‑first, think‑first approach to mastering the platform.

ITPUB
ITPUB
ITPUB
What Makes Kubernetes Tick? Pods, ReplicationControllers, and Services Explained

Why a management system is needed

Running many instances of a service manually (e.g., starting ten order‑service containers on different servers) is impractical. A management system is required that can accept a high‑level request such as “deploy 10 copies of the order service” and automatically handle scheduling, IP discovery, and load distribution.

Pod: the smallest deployable unit

Kubernetes schedules pods , which are logical hosts inside a cluster. Each pod runs one or more containers as processes and is the minimal unit that can be created, scaled, and managed.

Declarative desired state

Users express intent in configuration files (YAML, JSON, or XML) or via limited CLI flags. Kubernetes continuously reconciles the actual cluster state to match the declared desired state.

Example pod definition

apiVersion: v1
kind: Pod
metadata:
  name: order-service
  labels:
    app: order
spec:
  containers:
  - name: order
    image: myrepo/order:1.0
    ports:
    - containerPort: 8080

ReplicationController (RC) / Deployment

RC ensures that a specified number of pod replicas exist. It creates new pods when the count is low and deletes excess pods when the count is high. Modern Kubernetes typically uses Deployment , which builds on the RC concept.

Example ReplicationController

apiVersion: v1
kind: ReplicationController
metadata:
  name: order-rc
spec:
  replicas: 10
  selector:
    app: order
  template:
    metadata:
      labels:
        app: order
    spec:
      containers:
      - name: order
        image: myrepo/order:1.0
        ports:
        - containerPort: 8080

Service: stable network endpoint

Pods receive dynamic IP addresses; a Service abstracts this volatility by providing a stable virtual IP or DNS name that load‑balances traffic to all pods matching a selector.

Example Service

apiVersion: v1
kind: Service
metadata:
  name: order-service
spec:
  selector:
    app: order
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080
  type: ClusterIP

Labels and namespaces

Labels are key‑value pairs attached to objects; they enable grouping and selection (e.g., RC and Service selectors). Namespaces provide logical isolation for multi‑tenant clusters.

Stateful workloads

Stateless pods can be added or removed freely. For workloads that need persistent storage, Kubernetes offers constructs such as StatefulSet (introduced later in the book).

Key design principle

Kubernetes abstracts away server‑level details, allowing developers to focus solely on the desired state. The system continuously reconciles the actual state, separating concerns between static pod specifications (the “template”) and runtime controllers that manage pod lifecycles.

Kubernetes core components diagram
Kubernetes core components diagram
Pod concept illustration
Pod concept illustration
ReplicationController diagram
ReplicationController diagram
Service abstraction diagram
Service abstraction diagram
KubernetesDevOpsServiceContainer OrchestrationPodReplicationController
ITPUB
Written by

ITPUB

Official ITPUB account sharing technical insights, community news, and exciting events.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.