Kubernetes Rundown

What it does

Kubernetes (K8s) is a container orchestration platform that automates deploying, scaling, and managing containerized applications across clusters of machines.

Think of it as an operating system for your cluster - you tell it what you want to run (containers), and it figures out where to run them, keeps them healthy, scales them up/down, and handles networking between them.

When it’s useful

Good fit for:

  • Running multiple microservices that need to work together
  • Applications that need high availability and automatic failover
  • Services that need to scale dynamically based on load
  • Teams managing many containers across multiple servers
  • Production workloads that require zero-downtime deployments
  • Multi-environment setups (dev, staging, prod) with consistent configuration

Overkill for:

  • Simple single-server applications
  • Static websites or small projects
  • When you’re just learning Docker
  • Teams with 1-2 developers and simple deployment needs

The rule of thumb: If you’re managing more than ~5-10 containers or need features like auto-scaling, self-healing, and rolling updates, K8s starts making sense.

How people commonly use it

Typical workflow:

  1. Develop locally - Write application code, create Dockerfile
  2. Build container images - Package app into Docker images
  3. Write K8s manifests - Define what you want to run (YAML files)
  4. Deploy to cluster - Apply manifests with kubectl apply
  5. Monitor and manage - Check logs, scale services, update deployments

Common use cases:

  • Microservices architectures - Run dozens of interconnected services
  • CI/CD pipelines - Automated deployments on code changes
  • Batch jobs - Run scheduled tasks or data processing
  • Stateful applications - Databases, message queues (though trickier)
  • Multi-cloud deployments - Same setup works on AWS, GCP, Azure

Deployment patterns:

  • Rolling updates (gradually replace old versions)
  • Blue-green deployments (run two versions, switch traffic)
  • Canary releases (test new version with small % of traffic)

Essential skills for intermediate level

Core concepts you must understand:

1. Container basics

  • How Docker works (images, containers, registries)
  • Writing Dockerfiles
  • Container networking and storage basics

2. Key Kubernetes resources

  • Pods - Smallest deployable unit (one or more containers)
  • Deployments - Manage replicated applications
  • Services - Expose pods to network traffic (ClusterIP, NodePort, LoadBalancer)
  • ConfigMaps & Secrets - Configuration and sensitive data
  • Namespaces - Logical cluster divisions
  • Ingress - HTTP/HTTPS routing to services
  • Persistent Volumes - Storage that survives pod restarts

3. YAML proficiency

  • Read and write Kubernetes manifests
  • Understand the structure (apiVersion, kind, metadata, spec)
  • Debug YAML syntax errors

4. kubectl command line

  • kubectl get/describe/logs/exec/apply/delete
  • Debugging: checking pod status, viewing logs, accessing containers
  • Port forwarding for local testing

5. Networking fundamentals

  • How pods communicate with each other
  • Service discovery (DNS)
  • Load balancing basics
  • Understanding ClusterIP vs NodePort vs LoadBalancer

6. Architecture understanding

  • Control plane components (API server, scheduler, controller manager)
  • Node components (kubelet, kube-proxy)
  • How the declarative model works (desired state vs actual state)

7. Practical operations

  • Rolling updates and rollbacks
  • Scaling applications (manual and basic auto-scaling)
  • Health checks (liveness and readiness probes)
  • Resource limits (CPU/memory requests and limits)
  • Basic troubleshooting (pod crashes, image pull errors, networking issues)

Nice to have (intermediate→advanced):

  • Helm (package manager for K8s)
  • Monitoring with Prometheus/Grafana
  • Log aggregation (ELK, Loki)
  • Security basics (RBAC, network policies, pod security)
  • StatefulSets for databases
  • CI/CD integration (Jenkins, GitLab, ArgoCD)

Learning path:

  1. Start small - Run Minikube or kind locally
  2. Deploy simple apps - Static website, then basic API
  3. Learn by breaking things - Delete pods, crash containers, see what happens
  4. Read others’ manifests - Study real-world examples on GitHub
  5. Build something real - Personal project with 2-3 microservices
  6. Get certified - CKA (Certified Kubernetes Administrator) forces hands-on learning

The key is that K8s has a steep learning curve, but once concepts click, it’s incredibly powerful. Most people need 2-3 months of regular use to feel comfortable.