top of page

Scaling up with Kubernetes

🧠 What Is Kubernetes?

Kubernetes is an open-source platform for automating deployment, scaling, and management of containerized applications.

Think of it as the orchestrator that manages all your Docker containers across many machines — making sure your app stays running, scales properly, and self-heals when something crashes.

⚙️ Core Concepts

1. Cluster

  • A Kubernetes "installation" is called a cluster.

  • A cluster = 1 Master Node + Multiple Worker Nodes

2. Nodes

  • Master Node: Controls the cluster (schedules apps, responds to events).

  • Worker Node: Runs your applications (as containers inside pods).

3. Pod

  • The smallest deployable unit in K8s.

  • A pod wraps around one or more containers (usually just one).

  • Pods share network/storage and die with the container (ephemeral).

4. Deployment

  • A Deployment describes your desired app state (e.g., 3 replicas of a pod).

  • Kubernetes ensures the actual state matches this desired state.

5. Service

  • A stable network endpoint that abstracts access to a set of pods.

  • Types: ClusterIP (internal), NodePort (exposes on node IP), LoadBalancer (cloud).

6. ConfigMap & Secret

  • ConfigMap: Inject plain-text config into your app.

  • Secret: Like ConfigMap, but for sensitive data (e.g., passwords, tokens).

7. Ingress

  • A layer-7 (HTTP) load balancer that routes traffic to your services.

  • Supports URL/path-based routing, TLS, etc.

8. Volume

  • Persistent storage (beyond the life of a pod).

  • Can be from local disk, NFS, cloud storage, etc.

🔁 How It Works (At a Glance)

  1. You define your app in a YAML file (e.g., deployment, service).

  2. You apply it to the cluster with kubectl apply -f yourfile.yaml.

  3. Kubernetes schedules the pod, monitors it, restarts it if it crashes, and scales it if needed.

📦 What Kubernetes Handles for You

  • Scheduling: Distributes pods across nodes intelligently.

  • Self-healing: Restarts failed containers, reschedules pods.

  • Scaling: Horizontal scaling of pods up/down automatically.

  • Rolling Updates: Updates apps with zero downtime.

  • Load Balancing: Internal and external traffic routing.

🛠️ Common Tools

  • kubectl: CLI to interact with the cluster.

  • Helm: Package manager for Kubernetes apps.

  • Minikube / Kind: Local K8s clusters for dev/testing.

🚀 Real World Use Cases

  • Microservices architecture

  • CI/CD pipelines

  • Auto-scaling web services

  • Hybrid-cloud deployments

📘 Learning Next

If you're getting started, learn these in order:

  1. Pods

  2. Deployments

  3. Services

  4. Volumes

  5. Ingress

  6. Helm

Comments


© 2020 by Silvia Mazzoni, Silvia's Brainery, Santa Monica, CA

bottom of page