Contents

Infrastructure & Operations › Kubernetes & Orchestration

Kubernetes

The dominant container orchestration platform.

Also known as: K8s, k8s, Kubernetes orchestration, kube

Kubernetes (K8s) is the dominant platform for running containers at scale. You tell it what you want (“run 3 copies of this container, keep them healthy, expose them on this address”), and it continuously works to make reality match, placing containers on machines, restarting failures, scaling and rolling out updates.

It’s declarative: you describe the desired state in YAML, and Kubernetes’ controllers reconcile the cluster to it.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels: { app: web }
  template:
    metadata:
      labels: { app: web }
    spec:
      containers:
        - name: web
          image: registry.example.com/shop:3f9c2a1
          ports: [{ containerPort: 8000 }]
          resources:
            requests: { cpu: "250m", memory: "256Mi" }
            limits: { memory: "512Mi" }
kubectl apply -f deployment.yaml
kubectl get pods

The main building blocks

ConceptWhat it is
PodThe smallest unit: one or more containers that run together
DeploymentKeeps N copies of a pod running and handles rolling updates
ServiceA stable address and load balancing for a set of pods
IngressRoutes external HTTP traffic to services
ConfigMap and SecretConfiguration and sensitive values for pods
NamespaceA way to separate teams or environments in a cluster
ProbesHealth checks that decide when a pod is ready or needs restarting
Requests and limitsCPU and memory the pod needs and may use

The control plane makes decisions, and nodes (machines) run the pods.

What it gives you

Self-healing, automatic scaling (HPA), rolling updates and rollbacks, service discovery, and a common API across clouds and on-premises.

What it costs

  • A steep learning curve and a large surface of concepts and YAML.
  • Operational complexity: networking, upgrades, security, observability. Most teams use a managed service rather than running it themselves.
  • Overkill for small systems. A single service on a simple platform may need far less (do you need Kubernetes?).

For developers, the practical skills are: reading and writing deployment manifests, kubectl basics, understanding probes and resource limits, and debugging a pod that won’t start (for example CrashLoopBackOff).