intermediate · go
Kubernetes: From Container to Production
Learn Kubernetes by following a single containerized service from its first cluster deployment through networking, configuration, storage, security, scaling, and production operations. The curriculum connects core Kubernetes resources to the practical reasoning required to run reliable workloads.
What you could build
- Deploy a containerized URL shortener with rolling updates and health checks.
- Run a multi-service event dashboard with Kubernetes networking and configuration.
- Operate a scheduled data-processing service with Jobs, CronJobs, and persistent storage.
- Create a horizontally scaled image-processing API with autoscaling and resource limits.
- Deploy a Go-based web service with observability, secrets management, and controlled releases.
You pick the project at the start — these are examples, not a fixed list.
What you'll be able to do
- Trace how a container image becomes a replicated, observable, and reachable workload through Pods, Deployments, Services, and Kubernetes cluster components.
- Diagnose why a workload is or is not receiving traffic by analyzing selectors, ports, EndpointSlices, readiness, DNS, routing, Ingress, and NetworkPolicies.
- Choose and explain appropriate resource requests, limits, health probes, storage resources, autoscaling rules, disruption controls, and security settings for a workload.
- Use kubectl output, metrics, logs, events, rollout history, and ephemeral containers to investigate workload behavior and support safe operational changes.
- Explain how RBAC, ServiceAccounts, security contexts, Pod Security Admission, image digests, audit logs, backups, and upgrade planning contribute to production reliability and security.
Who this is for
This course is for developers, platform engineers, and operations practitioners who understand basic containers and want to reason about Kubernetes workloads from initial deployment through production operations. It fits learners who want practical command-line fluency with Kubernetes resources, networking, storage, security, scaling, troubleshooting, and upgrades without assuming prior Kubernetes experience.
What you should already know
- Basic familiarity with the command line, including running commands, reading output, and editing text or YAML files.
- A working understanding of containers, including images, running containers, ports, and basic image tags.
- Basic networking concepts such as IP addresses, ports, DNS, and HTTP.
- Basic awareness of application configuration and persistent data, including environment variables and files.
How a lesson actually goes
Written from this course's first lesson to show the format — not a recording of a real session.
Course content
marks each module's capstone lesson.
01From Container to Cluster8 lessons
Establish the foundational relationship between container images and Kubernetes resources. Learners will progress from understanding what runs in a container to reasoning about pods, cluster structure, Kubernetes API interactions, deployments, and service access.
Course Introduction
Welcome and orientation: overview of the path from a containerized service to production operations, the major Kubernetes concepts covered, and how the modules build on one another.
Container Images
Container images provide the immutable package Kubernetes schedules and runs. This lesson distinguishes image contents, tags, and content-addressable digests.
Kubernetes Clusters
A Kubernetes cluster combines a control plane that manages desired state with worker nodes that provide execution capacity. Learners will identify the distinct responsibilities of these cluster roles.
Pods
A pod groups one or more tightly coupled containers that share networking and storage context. This lesson focuses on pod identity, lifecycle, and the boundary Kubernetes schedules.
kubectl
kubectl is the command-line client for communicating with the Kubernetes API. Learners will reason about resource inspection and how command output reflects cluster state.
Deployments
A Deployment expresses the desired state for a replicated, replaceable workload and coordinates ReplicaSets and pods to approach that state. This lesson covers reconciliation, scaling intent, and revision-based updates.
Services
A Service decouples clients from pod replacement and changing pod IP addresses by selecting matching pods behind a stable endpoint. Learners will connect label selection with basic in-cluster reachability.
Container-to-Cluster Synthesis
This capstone assesses the complete foundational flow from image identification through pod scheduling, Deployment reconciliation, kubectl inspection, and Service access. Learners must reason about how each resource contributes to the resulting running workload.
02Workload Foundations10 lessons
Build a practical mental model for how Kubernetes allocates resources, places pods, manages container failures, evaluates health, and shuts workloads down safely.
Resource Requests
Resource requests tell Kubernetes how much CPU and memory a pod needs to be placed on a node. The scheduler uses these values when determining whether a node has sufficient allocatable capacity.
Resource Limits
Resource limits define an upper bound for a container's CPU and memory consumption. CPU overuse is throttled, while memory overuse can cause the container to be terminated by the operating system.
Quality of Service Classes
Kubernetes assigns pods to QoS classes according to the relationship between their CPU and memory requests and limits. These classes influence how pods are prioritized when a node experiences resource pressure.
Pod Scheduling
The scheduler evaluates eligible nodes and assigns a pending pod to one that can satisfy its requirements. Resource requests are central to this decision because they represent capacity that must be available before placement.
Restart Policies
A pod restart policy governs container restarts after termination and applies to the pod's lifecycle rather than serving as a general application supervisor. Kubernetes workload controllers commonly rely on the Always policy to keep managed containers running.
Readiness Probes
A readiness probe tests whether an application can currently handle requests. When the probe fails, Kubernetes marks the pod unready so that Service routing can exclude it without necessarily restarting the container.
Liveness Probes
A liveness probe evaluates whether a running container remains healthy enough to continue. Repeated liveness failures cause Kubernetes to restart the affected container according to the pod's restart behavior.
Startup Probes
A startup probe gives a container time to initialize before liveness and readiness checks take effect. This separates startup tolerance from ongoing health detection and prevents a slow initialization sequence from being treated as a failure.
Graceful Termination
When Kubernetes removes a pod, it begins a termination sequence that allows the application to stop accepting work and finish in-flight operations. The grace period, termination signal, and eventual forceful kill determine how much time the container has to exit cleanly.
Workload Behavior Synthesis
This synthesis evaluates the complete workload lifecycle from resource admission and node placement through startup, traffic readiness, failure recovery, and graceful shutdown. Learners must reason about the observable consequences of configuration choices across these connected mechanisms.
03Service Networking11 lessons
Build a practical model of how Kubernetes connects clients to healthy pods inside and outside the cluster. Learners will trace service selection, backend representation, virtual IP routing, discovery, external exposure, HTTP entry points, and traffic restrictions.
Service Selectors
A Service selector matches pod labels to define the set of eligible backends. Learners will distinguish the stable Service identity from the changing pods selected behind it.
Service Ports
The Service port is the port exposed by the Service, while targetPort identifies the port on selected pods. This mapping lets clients use a stable port even when container ports differ.
EndpointSlices
Kubernetes represents Service backends as EndpointSlices containing endpoint addresses and readiness information. These objects provide an efficient, scalable view of which pod endpoints are available.
ClusterIP Services
A ClusterIP gives a Service a virtual IP reachable from within the cluster. Traffic sent to that address is directed toward eligible backend endpoints rather than a single fixed pod.
Service Discovery
Kubernetes DNS publishes records for Services so workloads can connect using stable names instead of hard-coded virtual IPs. Learners will reason about how namespace-aware names support service-to-service communication.
Service Routing
Kubernetes networking components translate traffic sent to a Service address into traffic directed at backend pod endpoints. Learners will connect Service rules, EndpointSlices, and node-level forwarding behavior.
NodePort Services
A NodePort assigns a port reachable on cluster nodes and forwards incoming traffic to the Service's backend endpoints. This provides external reachability without requiring a cloud load balancer.
LoadBalancer Services
A LoadBalancer Service integrates Kubernetes with an environment that can provision an external load balancer. The external address forwards traffic into the Service's node or pod routing path.
Ingress
Ingress defines host- and path-based HTTP or HTTPS routing, while an Ingress controller implements those rules. Learners will distinguish the request-routing layer of Ingress from the backend connectivity provided by Services.
NetworkPolicies
NetworkPolicies select pods and define permitted ingress or egress traffic based on sources, destinations, namespaces, and ports. Their effect depends on a network plugin that enforces the policy.
Service Networking Synthesis
Learners will reason from a client request to its destination pod, identifying how Kubernetes selects backends, resolves names, forwards traffic, exposes services externally, applies HTTP routing, and permits or blocks communication.
04Configuration and Storage10 lessons
Learn how Kubernetes separates configuration and sensitive data from container images, then provide workloads with temporary or persistent storage. The module traces configuration injection, secret handling, volume attachment, persistent volume claims, storage provisioning, access modes, and storage lifecycle decisions.
ConfigMaps
A ConfigMap holds configuration values separately from a container image so that workloads can be configured through Kubernetes resources. Its data is not intended for confidential information.
ConfigMap Consumption
Pods can receive ConfigMap values as environment variables or as files in a mounted volume. The chosen consumption method affects how applications observe and respond to configuration changes.
Secrets
A Secret is a Kubernetes resource intended for values such as credentials, tokens, and keys. Secret objects provide a structured way to reference sensitive data, but safe handling also depends on cluster storage and access controls.
Secret Consumption
Kubernetes can expose selected Secret values to containers as environment variables or files. Referencing only the required keys limits the configuration made available to a workload.
Volumes
A volume is mounted into one or more containers in a pod and provides a filesystem location for data. Volume lifetime and durability depend on the volume type and its backing storage.
PersistentVolumeClaims
A PersistentVolumeClaim requests storage with properties such as capacity and access mode without requiring the workload to identify a particular storage device. Pods reference the claim when they need persistent data.
PersistentVolumes
A PersistentVolume describes storage capacity and capabilities that can be used by claims. It abstracts the underlying storage implementation from the pods that consume it.
StorageClasses
A StorageClass defines a category of storage and identifies the provisioner and parameters used to create it. Claims that name a StorageClass can trigger storage allocation without a pre-created PersistentVolume.
Storage Access Modes
Access modes describe how a volume may be mounted, such as by a single node or by multiple nodes for reading. They express compatibility requirements rather than guaranteeing application-level coordination or file locking.
Configuration and Storage Synthesis
This synthesis evaluates the complete reasoning chain from configuration resources and secret references to pod volume mounts, claims, volumes, storage classes, and access modes. Learners determine whether the selected resources provide the required data visibility, confidentiality boundaries, durability, and sharing behavior.
05Reliability and Security10 lessons
Develop a production-oriented understanding of how Kubernetes protects workloads, limits disruption, distributes replicas, scales capacity, and controls access. Learners will connect availability mechanisms with identity, authorization, pod hardening, admission enforcement, and trusted image use.
Pod Disruption Budgets
A PodDisruptionBudget expresses how many replicas of a selected workload must remain available during voluntary disruptions such as node maintenance. Learners distinguish voluntary disruptions from failures that Kubernetes cannot prevent with a disruption budget.
Topology Spread Constraints
Topology spread constraints guide the scheduler toward balanced placement across domains such as zones or nodes. Learners interpret how topology keys, maximum skew, and unsatisfiable placement behavior affect availability.
Horizontal Pod Autoscaling
A HorizontalPodAutoscaler periodically compares a workload's observed metrics with a target and changes the desired replica count within configured bounds. Learners distinguish scaling decisions from node capacity and container resource limits.
Resource Quotas
A ResourceQuota places aggregate limits on namespace resources such as CPU, memory, object counts, and storage claims. Learners reason about how quotas constrain admission and why individual workloads may need resource requests or limits for quota accounting.
Role-Based Access Control
Role-Based Access Control determines whether an identity may perform a verb on a resource within a scope. Learners distinguish Roles from ClusterRoles and bindings from permission definitions when evaluating an authorization decision.
Service Accounts
A ServiceAccount provides a workload identity that can be associated with permissions through RBAC. Learners trace how a pod receives its selected ServiceAccount and distinguish workload identity from the identity of a human using kubectl.
Security Contexts
Security contexts configure execution properties such as the user and group identity, privilege escalation, Linux capabilities, filesystem writability, and seccomp behavior. Learners distinguish settings applied at pod scope from those applied to an individual container.
Pod Security Admission
Pod Security Admission evaluates pod specifications against the Privileged, Baseline, and Restricted Pod Security Standards. Learners distinguish enforcement, warning, and audit behavior and reason about how namespace labels affect admission.
Image Provenance
Image provenance connects an image reference to a specific, verifiable artifact and to policies that control which images may run. Learners distinguish mutable tags from immutable digests and explain how admission checks can enforce image trust requirements.
Reliability and Security Synthesis
This synthesis evaluates production behavior across failure domains, voluntary disruption, changing demand, namespace resource limits, API access, runtime privileges, admission enforcement, and image trust. Learners identify interactions and trade-offs rather than treating reliability and security controls as isolated settings.
06Production Operations10 lessons
Develop the operational skills required to observe, diagnose, maintain, and recover Kubernetes workloads and clusters. Learners will connect metrics, logs, events, debugging tools, rollout controls, node maintenance, audit records, backups, and upgrade practices into a disciplined approach to production operations.
Metrics
Metrics provide quantitative signals about CPU, memory, pod counts, request rates, and other aspects of cluster and workload behavior. Learners distinguish observed usage from configured requests, limits, and replica targets.
Container Logs
Container logs expose output produced by running and terminated containers. Learners reason about current versus previous-container logs, multi-container pods, and the limitations of logs as an operational signal.
Kubernetes Events
Kubernetes events record notable changes and failures involving resources such as pods, nodes, and controllers. Learners use event reasons and messages to distinguish scheduling, image, probe, and attachment problems.
Ephemeral Containers
Ephemeral containers add a temporary debugging process to an existing pod without restarting its application containers. Learners identify when this approach is useful and how its execution context differs from that of regular containers.
Rollout Management
Rollout management provides visibility into Deployment revisions and their progress toward the desired state. Learners reason about detecting stalled updates, selecting a previous revision, and restoring a known workload version.
Node Draining
Cordoning prevents new scheduling on a node, while draining evicts eligible pods so they can be recreated elsewhere. Learners connect eviction behavior with PodDisruptionBudgets, unmanaged pods, and workloads that cannot be safely relocated.
Audit Logging
Audit logging records requests made to the Kubernetes API, including the actor, resource, action, and outcome. Learners interpret how audit policy levels balance investigative detail with storage and privacy considerations.
Cluster Backups
Cluster backups preserve critical Kubernetes objects and, when applicable, the data held by persistent volumes. Learners distinguish recoverable control-plane state from application data and reason about backup consistency, retention, and restoration testing.
Cluster Upgrades
Cluster upgrades change control-plane and node components while workloads continue to require compatible APIs and runtime behavior. Learners reason about version skew, deprecated APIs, sequencing, disruption, and validation after an upgrade.
Operations Synthesis
Production operations require correlating multiple signals and choosing interventions that preserve availability, security, and recoverability. Learners synthesize metrics, logs, events, debugging techniques, rollout controls, node maintenance, audit records, backups, and upgrade practices into a defensible operational response.
Questions
Do I need prior Kubernetes experience?
No. The course begins with container images, clusters, Pods, kubectl, Deployments, and Services, then builds toward production operations. You should already understand basic containers and command-line use.
Is this course focused only on writing Kubernetes YAML?
No. YAML and resources are part of the course, but the emphasis is on reasoning about observed behavior: scheduling, readiness, traffic routing, storage, permissions, scaling, disruptions, rollouts, and recovery.
What networking topics are covered?
You will follow traffic from Service selectors and port mappings through EndpointSlices, ClusterIP discovery, routing, NodePort and LoadBalancer exposure, Ingress rules, and NetworkPolicies.
Does the course cover production security?
Yes. It covers RBAC, ServiceAccounts, security contexts, Pod Security Admission, image digests and provenance, resource quotas, audit logging, and the way these controls work together.
Will I learn how to troubleshoot a failing workload?
Yes. The operations module uses metrics, container logs, events, ephemeral containers, rollout controls, node draining, audit logs, backups, and upgrade planning to analyze production incidents and choose appropriate responses.
How much of the course is devoted to storage and stateful workloads?
A full module covers ConfigMaps, Secrets, volumes, PersistentVolumeClaims, PersistentVolumes, StorageClasses, and access modes, including how to distinguish ephemeral storage from persistent storage.
The first lesson is ten minutes away.
Free while codeset is early. You choose what you're building before the first lesson starts, and the course is taught around it.