Learning Kubernetes #
This website is a structured learning portal designed to accompany engineers in understanding the Kubernetes ecosystem in depth. This portal doesn’t only discuss basic theory, but also presents best practices and production architecture documentation ready to be implemented in the real world. This home page serves as the main compass guiding our learning journey across all available documentation material.
This documentation is arranged progressively, sequentially, and modularly. With this approach, the material presented can be optimally used both by beginners just migrating from traditional application architectures, and by experienced engineers needing deep technical references to optimize reliability, security, and cost efficiency for large-scale clusters in production environments.
Why Must We Master Kubernetes? #
In the modern software engineering era, the demand to release new features quickly without sacrificing system stability has driven a massive infrastructure paradigm shift. We have passed the era where applications were deployed directly on bare metal servers, moved to the virtualization era with Virtual Machines (VMs), and finally adopted containerization technology using Docker or other container runtimes.
Containers solve portability problems by wrapping applications along with all their dependencies into one independent unit. However, when the number of containers grows from dozens to hundreds or thousands in production environments, new challenges emerge:
- How do we distribute these containers across dozens of server machines efficiently?
- How do we ensure dead containers automatically come back to life (self-healing)?
- How do we update application versions without causing downtime for users?
- How do we manage CPU, memory, storage capacity allocations, and network communication between containers?
This is where Kubernetes (often abbreviated as K8s) comes in as the de facto industry standard for container orchestration. By mastering Kubernetes, we don’t only learn to use a tool, but also adopt a declarative infrastructure management methodology, where we define the desired system state and let Kubernetes automatically work to achieve and maintain that state.
Although it offers a very powerful solution, Kubernetes is known to have a fairly steep learning curve. This documentation is specially designed to break down that complexity so it’s easier to digest without reducing the depth of technical material needed at the production level.
This Portal’s Writing & Learning Philosophy #
In composing every article on this portal, we firmly hold three main writing philosophies that distinguish this documentation from ordinary technical guides:
1. Why Before How #
We believe understanding the background of a problem is far more important than merely copying terminal commands or YAML manifests. Before discussing how to write a Deployment manifest or configure an Ingress, every article first explains what architectural problem we’re solving, what the consequences are if that problem is ignored, and why the declarative Kubernetes solution is the most elegant approach.
2. Anti-Pattern-Based Approach #
Showing the wrong way in the real world often gives a much stronger learning effect than only showing documentation of the correct way. Therefore, in almost every chapter, we juxtapose Anti-Pattern examples (common but dangerous configuration mistakes in production) with Best Practice solutions. This pattern helps us detect mistakes in existing clusters and prevent them from recurring later.
3. Comprehensive and Modular #
Every article is written with an in-depth discussion target (at least 15,000 characters) so the discussed topic is thorough and not left hanging. Although deep, the writing structure is designed modularly. We don’t have to read the entire portal from start to finish at once; we can go directly to specific chapters to use as quick reference guides when facing real problems in daily work.
Learning Roadmap #
For easy navigation, the learning flow on this portal has been mapped into a logical, progressive structure. The flow diagram below shows the recommended learning domain order, from the most basic concepts to advanced production management strategies:
flowchart TD
subgraph Fase_1["Phase 1: Conceptual Foundation"]
direction TB
A["Basic (Weight 10)"] --> B["Concept (Weight 20)"]
B --> C["Architecture (Weight 30)"]
end
subgraph Fase_2["Phase 2: Workload & Storage Implementation"]
direction TB
D["Workload & Scheduling (Weight 40)"] --> E["Storage (Weight 50)"]
end
subgraph Fase_3["Phase 3: Networking & Configuration"]
direction TB
F["Networking (Weight 60)"] --> G["Configuration & Secret (Weight 70)"]
end
subgraph Fase_4["Phase 4: Release & Security"]
direction TB
H["Deployment Strategy (Weight 80)"] --> I["Security (Weight 90)"]
end
subgraph Fase_5["Phase 5: Large-Scale Production Operations"]
direction TB
J["Observability (Weight 100)"] --> K["Ecosystem & Tooling (Weight 110)"]
K --> L["Production Strategy (Weight 120)"]
end
Fase_1 --> Fase_2
Fase_2 --> Fase_3
Fase_3 --> Fase_4
Fase_4 --> Fase_5
style Fase_1 stroke:#0288d1,stroke-width:2px
style Fase_2 stroke:#388e3c,stroke-width:2px
style Fase_3 stroke:#f57c00,stroke-width:2px
style Fase_4 stroke:#d32f2f,stroke-width:2px
style Fase_5 stroke:#7b1fa2,stroke-width:2pxLearning Guides by Persona #
Responsibilities around Kubernetes infrastructure differ depending on our job roles. To save time, use the learning route guides customized to the specific needs of our professional roles below:
🧑💻 Software Engineer Route (Application Developer) #
As application developers, our main focus is how to write “cloud-native friendly” code, wrap it into containers, and deploy it safely without disturbing overall system stability.
- Main Focus:
- Workload & Scheduling to understand the Pod lifecycle, how resource request/limit works, and the difference between Deployments and StatefulSets.
- Configuration & Secret to separate configuration from application code using ConfigMaps and secure credentials with Secrets.
- Deployment Strategy to understand application release mechanisms without downtime (like Rolling Updates or Canary) and database migration handling.
- Observability (Health Check Chapter) to correctly implement Liveness, Readiness, and Startup probes in our applications.
🧑🔧 DevOps & Platform Engineer Route #
If we’re responsible for designing, building, and maintaining an organization’s internal platform, we must understand every detail of Kubernetes internal mechanisms to ensure infrastructure reliability, scalability, and cost efficiency.
- Main Focus:
- Architecture to master the internal interaction of Control Plane and Worker Node components.
- Networking & Storage as the two most important pillars in distributed infrastructure management.
- Security to secure cluster access via RBAC, restrict container access rights via Pod Security Standards, and restrict traffic with Network Policies.
- Observability to build centralized monitoring infrastructure (Prometheus, Grafana, Jaeger, Loki).
- Production Strategy to automatically manage resource capacity through autoscaling and design Disaster Recovery strategies.
🧑🏫 Tech Lead, Architect, & Engineering Manager Route #
Technical leadership roles require high-level understanding of architecture, trade-offs between solutions, cost estimation, and organizational feasibility before adopting a technology.
- Main Focus:
- Basic (When Needed & Alternatives Chapters) to evaluate whether our team is truly ready for and needs Kubernetes, and compare it with simpler options like managed container services.
- Ecosystem & Tooling (Managed Kubernetes Chapter) to understand the feature, pricing, and operational differences between GKE, EKS, and AKS.
- Production Strategy (Cost Optimization & HA Chapters) to analyze cloud infrastructure budget efficiency strategies without sacrificing Service Level Agreements (SLAs).
Exploring the 12 Main Domains: Curriculum & Book Details #
1. Basic #
This section lays the first stone in understanding container orchestration technology. We will learn the history of infrastructure development from the bare-metal era to microservices, analyze the real problems that gave birth to Kubernetes, compare it with alternative solutions (like Nomad or Docker Swarm), and most importantly: use a decision framework to determine when our system is ready to migrate to Kubernetes.
List of learning material:
- What is Kubernetes? — An introduction to Kubernetes as a container orchestrator — what it does, why it was created, the main components involved, and the big picture of how it works.
- Problems It Solves — The real problems that drove Kubernetes’s birth — container operations at scale, manual deployments, failures without automatic recovery, and modern infrastructure complexity.
- Kubernetes Alternatives — A comparison of Kubernetes with container orchestration alternatives — Docker Swarm, Nomad, ECS, and managed platforms — along with a decision tree for choosing the right one according to scale and needs.
- When Is It Needed? — A guide for deciding when Kubernetes is worth it and when it isn’t — signs of organizational readiness, signals that infrastructure is starting to have problems, and when simpler alternatives are more appropriate.
2. Concept #
Before touching complicated YAML manifests, we must have a correct mental model of how Kubernetes works conceptually. This chapter explores basic concepts in Kubernetes, from cluster definitions, node roles, the basic anatomy of Pods as the smallest compute unit, to a deep understanding of declarative concepts and the infrastructure collaboration contract between developer teams and operations teams.
List of learning material:
- Cluster — The cluster concept in Kubernetes — what a cluster is, its constituent components, how control planes and worker nodes interact, and cluster deployment patterns for various scenarios.
- Node — The Node concept in Kubernetes — the difference between control plane nodes and worker nodes, components running on each node, how Kubernetes monitors node conditions, and node management in clusters.
- Pod — The Pod concept in Kubernetes — the smallest deployment unit, Pod anatomy, lifecycle, single vs multi-container patterns, and why Pods aren’t containers themselves.
- Configuration — The configuration concept in Kubernetes — declarative vs imperative approaches, how Kubernetes stores and applies configuration, ConfigMaps, Secrets, and the principle of separating configuration from code.
- Infrastructure Contract — The infrastructure contract concept in Kubernetes — how developers and platform teams share responsibility, resource requests & limits as resource contracts, health checks as availability contracts, and labels as identity contracts.
3. Architecture #
This chapter is an architecture dissection room to see the guts and internal mechanisms of the Kubernetes system. We will explore in detail the important components in the Control Plane (like the API Server, Scheduler, Controller Manager, and the Etcd consistency database) as well as the components in the Worker Node (kubelet, kube-proxy, and container runtime). Understanding these internal workflows is crucial for doing advanced problem diagnosis.
List of learning material:
- Overview — A comprehensive overview of Kubernetes architecture — how control planes and worker nodes work together, the request flow from kubectl to running containers, and the design principles underlying the entire system.
- Control Plane — Deep anatomy of the Kubernetes control plane — the role of each component, how the API Server processes requests, how the Controller Manager runs reconciliation loops, and control plane high availability design.
- Worker Node — Deep anatomy of the Kubernetes worker node — how the kubelet works, kube-proxy’s role in networking, the container runtime interface, and how worker nodes interact with the control plane.
- API Server — How the kube-apiserver works in depth — the request pipeline, authentication and authorization mechanisms, admission controllers, the watch mechanism, and interaction patterns developers and operators need to understand.
- Scheduler — How the kube-scheduler works in depth — the filtering and scoring process, factors influencing scheduling decisions, node affinity and taint/toleration, and advanced scheduling patterns for production needs.
- Controller Manager — How the kube-controller-manager works in depth — reconciliation loop patterns, the main controllers running inside it, leader election for HA, and how to write custom controllers for specific needs.
- Etcd & Cluster Consistency — Etcd’s role as the source of truth for Kubernetes clusters — how Raft consensus works, eventual vs strong consistency models, backup and restore strategies, and Etcd’s implications for cluster performance and availability.
4. Workload & Scheduling #
Here we start practicing how to run applications in Kubernetes. The discussion covers container lifecycles, init container and sidecar pattern usage, to replication controllers like ReplicaSets, Deployments, StatefulSets, DaemonSets, and Jobs. We will also discuss in depth how the scheduler decides workload placement based on resource requests/limits allocations and Quality of Service (QoS) classes.
List of learning material:
- Pod Anatomy — Complete Kubernetes Pod anatomy — manifest structure, metadata and labels, container specs, resource requests and limits, volumes, restart policies, and important fields often overlooked.
- Single & Multi Container — When to use single-container Pods vs multi-container Pods — trade-offs, valid patterns, how containers share network and storage in one Pod, and common mistakes in deciding Pod boundaries.
- Init Container — Init containers in Kubernetes — how they work, differences from regular containers, appropriate use cases like dependency checks and database migrations, and robust init container writing patterns.
- Sidecar Pattern — The sidecar pattern in Kubernetes — concepts, concrete use cases like service meshes and log shipping, how sidecars share network and storage with main containers, and when sidecars are appropriate and when they aren’t.
- ReplicaSet — ReplicaSets in Kubernetes — how they maintain Pod replica counts, their relationship with Deployments, selectors and Pod ownership, and when direct ReplicaSet interaction is needed.
- Deployment — Deployments in Kubernetes — manifest structure, RollingUpdate and Recreate strategies, how to update and rollback, scaling, and correct Deployment operational patterns for stateless applications in production.
- StatefulSet — StatefulSets in Kubernetes — differences from Deployments, stable Pod identities, ordered deployment and scaling, per-Pod PersistentVolumeClaim usage, and when StatefulSets are appropriate for stateful applications.
- DaemonSet — DaemonSets in Kubernetes — how they work, use cases for node-level agents like log collectors and monitoring, update strategies, toleration usage for DaemonSets on all nodes including control planes, and when DaemonSets are appropriate.
- Job & CronJob — Jobs and CronJobs in Kubernetes — differences from Deployments, completions and parallelism configuration, failure handling and backoff, CronJobs for scheduled tasks, and correct patterns for batch processing in Kubernetes.
- Scheduler Workflow — The end-to-end Kubernetes scheduler workflow — from Pod creation to running on nodes, scheduling queues, filtering and scoring pipelines, binding, and how to diagnose scheduling problems in production.
- Resource Request & Limit — Resource requests and limits in Kubernetes — semantic differences and their implications for scheduling and runtime, how to determine appropriate values, LimitRanges for cluster defaults, ResourceQuotas for namespace limits, and anti-patterns to avoid.
- QoS Class — Quality of Service classes in Kubernetes — the three classes Guaranteed, Burstable, and BestEffort, how QoS is automatically determined from resource requests and limits, eviction order when nodes run out of resources, and design implications for production.
5. Storage #
Managing persistent data in distributed systems is one of the biggest challenges in Kubernetes. This chapter thoroughly explores the difference between ephemeral and persistent storage. We will learn volume lifecycles, the relationship between PersistentVolumes (PVs), PersistentVolumeClaims (PVCs), and StorageClasses, as well as dive into best practices for running databases on top of Kubernetes along with their backup and restore strategies.
List of learning material:
- Ephemeral vs Persistent Storage — The fundamental difference between ephemeral and persistent storage in Kubernetes — when data can be lost, when it must survive, the volume types available, and how to choose the right approach for each workload type.
- Volume — Volumes in Kubernetes — the volume types available, how to define and mount volumes in Pods, the difference between node-based and cloud-based volumes, and common volume usage patterns in production.
- Storage Problem in Distributed Systems — The unique storage challenges in distributed systems — data consistency when Pods move nodes, shared vs per-instance storage, split-brain in distributed databases, and why storage is the most complex part of running stateful workloads in Kubernetes.
- PersistentVolume — PersistentVolumes in Kubernetes — what PVs are, how to define PVs manually (static provisioning), important fields like capacity and accessModes, reclaim policies, and PV lifecycles from Available to Released.
- PersistentVolumeClaim — PersistentVolumeClaims in Kubernetes — how developers request storage without knowing infrastructure details, the PVC-to-PV binding process, using PVCs in Pods, and how to diagnose PVCs stuck in Pending.
- StorageClass — StorageClasses in Kubernetes — their role as dynamic provisioning templates, provisioner parameters, reclaim policies, volume binding modes, and how to define StorageClasses for various storage backends in cloud and on-premise.
- Databases in Kubernetes — Considerations for running databases in Kubernetes — when it makes sense, when it doesn’t, StatefulSet patterns for databases, operator patterns for database management, and self-managed vs managed database service comparisons.
- StatefulSet + PVC — The StatefulSet and PVC combination in Kubernetes — how volumeClaimTemplates work, PVC lifecycles when StatefulSets are scaled and deleted, data migration patterns, and troubleshooting common StatefulSet problems with persistent storage.
- Backup & Restore — Storage backup and restore strategies in Kubernetes — backing up PVCs with Volume Snapshots, application-level vs storage-level backups, tools like Velero for cluster backups, and reliable restore procedures in production.
- Dynamic Provisioning — Dynamic provisioning in Kubernetes — how StorageClasses and CSI drivers work together to automatically create PVs, the complete flow from PVCs to available volumes, and dynamic provisioning configuration and troubleshooting in cloud and on-premise.
- Storage Anti-Patterns — Storage anti-patterns in Kubernetes — common mistakes in managing persistent storage that can cause data loss, performance degradation, or operational problems in production, along with the right solutions for each case.
- Storage Performance — Storage performance considerations in Kubernetes — important storage metrics (IOPS, throughput, latency), StorageClass influence on performance, how to measure storage performance, and recommendations for different workloads.
6. Networking #
Networking in Kubernetes is designed with the principle “every Pod gets its own IP address”. We will deeply dissect this flat network model, learn Pod-to-Pod communication across nodes, the Service abstraction for internal cluster load balancing, name resolution using DNS (CoreDNS), and traffic routing from outside the cluster using Ingress. This chapter also discusses cluster network security using Network Policies.
List of learning material:
- Kubernetes Network Model — The Kubernetes network model — the four fundamental rules forming the foundation of all networking, flat networks between Pods, how Pod IPs are allocated, and why this model differs from traditional Docker networking.
- Pod-to-Pod Communication — How Pods communicate with each other in Kubernetes — communication within one node, cross-node communication, the CNI’s role in packet routing, and why Pod IPs aren’t enough for reliable communication.
- Service — Services in Kubernetes — a stable network abstraction on top of Pods, four Service types (ClusterIP, NodePort, LoadBalancer, ExternalName), how selectors and Endpoints work, and when to use which type.
- DNS & Service Discovery — DNS and service discovery in Kubernetes — how CoreDNS works, DNS name formats for Services and Pods, how applications find other services, FQDN vs short names, and troubleshooting DNS problems in clusters.
- Ingress — Ingress in Kubernetes — rule-based HTTP/HTTPS routing to Services, path-based and host-based routing, TLS termination, Ingress controller choices, and how Ingress replaces many LoadBalancer Services.
- Network Policy — Network Policies in Kubernetes — how to control Pod-to-Pod traffic with label-based firewall rules, ingress and egress rule patterns, default-deny policies for zero-trust networking, and limitations to be aware of.
- Load Balancing & kube-proxy — How load balancing works in Kubernetes — kube-proxy’s role in implementing Services, iptables vs ipvs modes, load balancing algorithms, session affinity, and performance trade-offs for large clusters.
- CNI Plugin — CNI (Container Network Interface) plugins in Kubernetes — how CNI works, popular plugin comparisons (Calico, Cilium, Flannel), when to choose which, and performance and feature considerations for production clusters.
- Service Mesh — Service meshes in Kubernetes — sidecar proxy concepts, features provided (mTLS, observability, traffic management), Istio vs Linkerd vs Cilium comparisons, when service meshes are worth it, and overhead that must be accounted for.
- Ingress Controller Comparison — An in-depth comparison of popular Ingress Controllers — NGINX, Traefik, HAProxy, AWS ALB, GCE, and Istio Gateway — with selection guides based on performance needs, cloud, and required features.
- Network Troubleshooting — A Kubernetes network troubleshooting guide — systematic methodology for diagnosing connectivity problems, required debug toolkits, the most common problem scenarios and how to fix them.
- Networking Anti-Patterns — Networking anti-patterns in Kubernetes — common mistakes in Service, Ingress, NetworkPolicy, and inter-service communication configurations that cause availability, performance, or security problems in production.
7. Configuration & Secret #
Good applications never combine program code with configuration values or database credentials. This chapter teaches how to implement clean configuration separation using ConfigMaps for non-sensitive data and Secrets for confidential data. We will also learn configuration injection patterns, integration with External Secret Managers (like HashiCorp Vault), and techniques for reloading configuration without restarting containers (hot reload).
List of learning material:
- ConfigMap — ConfigMaps in Kubernetes — how to store non-sensitive configuration, use them as environment variables and volumes, automatic updates when ConfigMaps change, and their limitations and best usage patterns.
- Secret — Secrets in Kubernetes — differences from ConfigMaps, Secret types, how to store and use them safely, encryption at rest, often-ignored security risks, and best practices for managing Secrets in production.
- Environment Variable Pattern — Environment variable usage patterns in Kubernetes — when env vars are appropriate, how to inject from ConfigMaps and Secrets, the Downward API for Pod metadata, env var limitations, and when configuration files are better.
- Secret Management Best Practice — Best practices for managing Secrets in Kubernetes — encryption at rest, RBAC for Secrets, external secret managers (Vault, AWS Secrets Manager), automatic rotation, audit logs, and secure GitOps patterns for Secrets.
- External Secret Manager — Kubernetes integration with external secret managers — HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager, Azure Key Vault, how the External Secrets Operator works, and guides for choosing the right solution.
- ConfigMap vs Secret — A practical guide for choosing between ConfigMaps and Secrets — decision frameworks based on data types, exposure risks, encryption needs, and anti-patterns that often make configurations insecure or hard to maintain.
- Configuration Hot Reload — Configuration hot reload in Kubernetes — how to update ConfigMaps without Pod restarts, inotify mechanisms for file change detection, sidecar config watcher patterns, SIGHUP signals for reloads, and when Pod restarts are safer than hot reloads.
- Multi-Environment Configuration — Managing configurations in multiple environments (dev, staging, production) in Kubernetes — namespace isolation patterns, Kustomize for configuration overlays, Helm values per environment, and strategies to avoid configuration drift.
- Configuration Anti-Patterns — Configuration anti-patterns in Kubernetes — common mistakes in managing ConfigMaps, Secrets, and environment variables that cause security, operational, or maintainability problems in production.
8. Deployment Strategy #
The application version update process must not cause service interruptions for end users. We will explore various release strategies in detail, from the built-in Rolling Update, Blue/Green for instant rollbacks, to Canary Deployments for gradually testing new features. This chapter also discusses safe database schema migration handling and GitOps-based deployment automation concepts.
List of learning material:
- Deployment Strategy Overview — A comprehensive overview of deployment strategies in Kubernetes — trade-offs between risk, downtime, complexity, and rollback speed of each approach, plus frameworks for choosing the right strategy for different situations.
- Rolling Update — Rolling Updates in Kubernetes — maxSurge and maxUnavailable configuration, how Deployment controllers manage transitions between versions, correct zero-downtime strategies, automatic and manual rollbacks, and diagnosing problems during rolling updates.
- Blue/Green Deployment — Blue/Green deployments in Kubernetes — two parallel environments for instant rollbacks, implementation with Service selector switching, Ingress usage for traffic shifting, resource cost considerations, and when Blue/Green is worth using.
- Canary Deployment — Canary deployments in Kubernetes — gradual releases to user subsets, implementation with Pod replicas and Ingress weights, metric-driven progressive delivery, automated rollbacks based on error rates, and integration with Flagger or Argo Rollouts.
- Recreate — The Recreate strategy in Kubernetes — when deployment downtime is actually safer than zero-downtime, configuration and behavior, scenarios requiring Recreate like database migrations and incompatible changes, and how to minimize downtime windows.
- Database Migration Strategy — Safe database migration strategies in Kubernetes — expand-contract patterns for zero-downtime migrations, correct deployment order, backward-compatible migrations, tooling (Flyway, Liquibase), and scenarios requiring maintenance windows.
- Rollback Strategy — Rollback strategies in Kubernetes — Deployment rollbacks with kubectl, health check-based automatic rollbacks, rollback considerations when databases have already been migrated, revisionHistoryLimit, and fast rollback patterns for various incident situations.
- GitOps — GitOps in Kubernetes — Git as the single source of truth for cluster state, how pull-based deployments work, ArgoCD vs Flux comparisons, automatic sync and manual approval patterns, and integration with existing CI/CD pipelines.
- Deployment Anti-Patterns — Deployment anti-patterns in Kubernetes — common mistakes in rolling update strategies, image tag management, readiness probes, database migrations, and GitOps that cause downtime, data loss, or hard-to-rollback deployments.
9. Security #
Cluster security must be applied in layers (defense-in-depth). This chapter discusses how to restrict cluster and application user access rights through Role-Based Access Control (RBAC), apply Pod Security Standards, secure container image supply chains, monitor system activity through Audit Logging, and do cluster security hardening based on the CIS Benchmark industry standard.
List of learning material:
- RBAC — Role-Based Access Control in Kubernetes — Subject, Role, and RoleBinding concepts, Role vs ClusterRole differences, how to design minimal permissions, ServiceAccounts for Pods, and auditing given access.
- Pod Security — Pod security in Kubernetes — SecurityContext for containers and Pods, Pod Security Standards (Privileged/Baseline/Restricted), how to prevent privilege escalation, runAsNonRoot, read-only filesystems, and dropping capabilities.
- Network Security — Network security in Kubernetes — zero-trust networks with NetworkPolicies, namespace isolation, inter-Pod traffic encryption with mTLS, preventing cloud provider metadata access, and Ingress hardening against common attacks.
- Supply Chain Security — Container supply chain security in Kubernetes — image scanning for vulnerabilities, image signing with Cosign, admission controllers for image policy enforcement, Software Bills of Materials (SBOMs), and safe registry practices.
- Audit Logging — Audit logging in Kubernetes — how to enable and configure API Server audit policies, audit levels (None/Metadata/Request/RequestResponse), anomaly detection from logs, SIEM integration, and incident investigation scenarios using audit logs.
- Cluster Hardening — Kubernetes cluster hardening — securing the API Server, etcd, kubelet, and nodes, disabling unnecessary features, recommended admission controllers, update and patch management, and the CIS Kubernetes Benchmark checklist.
- Security Anti-Patterns — Security anti-patterns in Kubernetes — the most common and most dangerous configuration mistakes, from too-permissive RBAC, containers running as root, to improperly managed Secrets and clusters that aren’t updated.
10. Observability #
We can’t manage what we can’t measure. This chapter provides full visibility into what’s happening inside our cluster and applications. The discussion covers centralized log aggregation, performance metric collection using Prometheus, interactive data visualization with Grafana, cross-service transaction request flow tracking (distributed tracing), and designing effective alerting systems to avoid alert fatigue.
List of learning material:
- Logging — Logging in Kubernetes — cluster logging architecture, structured logging with JSON, sidecar log collectors, the EFK and Loki stacks, log aggregation from many Pods, and best practices for log management in production.
- Metrics and Prometheus — Metrics in Kubernetes with Prometheus — scraping architecture, metric types (Counter/Gauge/Histogram/Summary), kube-state-metrics, node-exporter, application instrumentation, basic PromQL, and recording rules for efficient queries.
- Alerting — Alerting in Kubernetes — designing actionable alerts, PrometheusRules for alerting rules, Alertmanager configuration for routing and silencing, Slack and PagerDuty integration, avoiding alert fatigue, and SLO-based alerting.
- Distributed Tracing — Distributed tracing in Kubernetes — trace and span concepts, OpenTelemetry as the instrumentation standard, Jaeger and Tempo as backends, context propagation between services, sampling strategies, and using traces to debug latency in microservices.
- Grafana Dashboard — Grafana Dashboards in Kubernetes — building informative dashboards, Four Golden Signals visualization, Kubernetes cluster overview dashboards, variables and templates for reusable dashboards, and dashboard-as-code strategies with provisioning.
- Health Check — Health checks in Kubernetes — three probe types (liveness, readiness, startup), how each works, when to use which, implementing proper /health endpoints, and avoiding cascade failures from misconfigured health checks.
- Observability Anti-Patterns — Observability anti-patterns in Kubernetes — common mistakes in logging, metrics, alerting, and health checks that make debugging harder, turn alerts into noise, and make incidents take longer to detect and resolve.
11. Ecosystem & Tooling #
The Cloud Native Computing Foundation (CNCF) ecosystem is very broad and dynamic. This chapter discusses supporting tools that ease daily cluster operations. We will learn application package management using Helm, template-free manifest customization using Kustomize, productivity tips using the kubectl CLI, local cluster application development tools (Minikube/Kind/Skaffold), and leveraging the Operator Pattern to automatically manage complex stateful application lifecycles.
List of learning material:
- Helm — Helm — the package manager for Kubernetes, chart structure, templating with values, install/upgrade/rollback lifecycles, dependency management between charts, and best practices for writing maintainable Helm charts.
- Kustomize — Kustomize — the built-in kubectl overlay-based configuration management, base and overlays structure, strategic and JSON6902 patches, ConfigMap and Secret generators, transformers for namespaces and labels, and when to choose Kustomize vs Helm.
- kubectl Tips — kubectl tips and tricks for productivity — shortcuts, output formatting with jsonpath and jq, port-forward and exec for debugging, kubectl plugins via krew, multi-cluster configuration with kubeconfig, and useful aliases.
- Local Development Tools — Tools for local Kubernetes development — comparisons of Minikube, Kind, k3d, and Docker Desktop, Telepresence for debugging services in real clusters, Skaffold for fast inner development loops, and DevSpace as an alternative.
- Operator Pattern — The Operator Pattern in Kubernetes — custom controller and CRD concepts, why Operators are needed for stateful applications, how reconciliation loops work, popular Operator examples (Prometheus, Cert-Manager, Strimzi), and when to write your own Operators.
- Managed Kubernetes — Managed Kubernetes in the cloud — GKE, EKS, and AKS comparisons, what providers manage vs what is still your responsibility, each platform’s specific features, cost and lock-in considerations, and best practices for production clusters in the cloud.
- Ecosystem & Tooling Anti-Patterns — Anti-patterns in using Kubernetes tools — overly complicated Helm charts, Kustomize ending up as duplication, manual kubectl to production, over-engineered toolchains, and other common mistakes slowing teams down and adding complexity without value.
12. Production Strategy #
This closing material gathers all conceptual knowledge to be applied in real large-scale production environments. Topics discussed include optimal cluster resource allocation, automatic autoscaling implementation at the Pod level (HPA/VPA/KEDA) and node level (Cluster Autoscaler), high availability architecture design, cloud infrastructure budget optimization, Disaster Recovery plans, and cluster isolation strategies for many teams (multi-tenancy).
List of learning material:
- Resource Management — Resource management in production Kubernetes — proper requests and limits, LimitRanges for namespace defaults, ResourceQuotas for inter-team isolation, how to determine realistic values from observation, and the impact of wrong configurations on scheduling and stability.
- Autoscaling — Autoscaling in Kubernetes — HPA for scaling Pods based on CPU/memory/custom metrics, VPA for right-sizing resource requests, KEDA for event-based scaling, Cluster Autoscaler for node scaling, and combination strategies for truly elastic systems.
- High Availability — High Availability in production Kubernetes — multi-replica with Pod anti-affinity, spreading Pods across several availability zones, Pod Disruption Budgets to protect availability during maintenance, topologySpreadConstraints, and strategies for HA control planes.
- Cost Optimization — Cost optimization in cloud Kubernetes — identifying resource waste, Spot/Preemptible nodes for tolerant workloads, right-sizing with VPA, scaling to zero for non-production, namespace cost allocation, and sustainable cluster cost management practices.
- Disaster Recovery — Disaster recovery for Kubernetes clusters — etcd and PersistentVolume backups, Velero for whole-namespace backups, multi-cluster and failover strategies, realistic RTO and RPO, and executable recovery runbooks for incidents.
- Multi-Tenancy — Kubernetes multi-tenancy — inter-team isolation via namespaces, soft vs hard multi-tenancy, using ResourceQuotas and NetworkPolicies for isolation, vCluster for stronger isolation, Hierarchical Namespaces for large organization structures, and when to use separate clusters.
- Production Anti-Patterns — Anti-patterns in production Kubernetes — the resource configuration, autoscaling, high availability, and operational mistakes that most often cause incidents, uncontrolled costs, and systems that are hard to recover when failures occur.
How to Use This Portal & Source Code #
Every tutorial article on this website comes with YAML manifest examples, configuration scripts, and architecture diagrams designed to be immediately tryable and deployable.
Best Practices in Using the Material #
- Use a Local Cluster for Experiments: Before applying any configuration to company dev/staging clusters, get used to trying it first in our local environment using Kind or Minikube. This minimizes the risk of manifest syntax errors that could have bad impacts.
- Practice Every Example Hands-On: Don’t just read — run each YAML manifest and command in your own terminal. Errors you hit yourself stick better than theory you only read.
- Use “Previous” & “Next” Navigation: At the end of every article page, there are quick navigation buttons. This navigation is designed so we can read the material sequentially according to the structured curriculum.
Summary #
- Structured Guide — Consists of 12 main domains logically ordered from concept foundations to high-level production architecture.
- Production-Oriented — Article writing focuses on solving real problems, industry best practices, and juxtaposing anti-pattern concepts vs correct solutions.
- Modular & Flexible — We can read the material linearly from the start to learn comprehensively, or jump directly to specific chapters as solution references when incidents occur.
- Mermaid Visualizations — Every complex concept explanation is accompanied by Mermaid diagram-based architecture visualizations to speed up understanding of system workflows.
- Tailored Journey — Choose learning focuses based on your current professional role: Software Developer, DevOps Engineer, or Tech Lead & Architect.
Next: What is Kubernetes? →