Containers,
in concert.
Kubernetes is an open-source system for running containerized applications across a cluster. You describe the desired state. It keeps working to make reality match.
01—08 THE SYSTEM BEHIND THE SCREEN
Every app is a thousand moving parts.
Follow the systems that keep them together.
Orchestration / Kubernetes / Resilience / Observability
EST. 8 MIN READA server starts. A network connects. Storage becomes available. Orchestration makes those actions work as one.
It coordinates tasks, dependencies, and policies across cloud resources. Describe the outcome, then let an engine organize the work.
Orchestrate container workloads.
Provision infrastructure from configuration.
Automate configuration and operational tasks.
Different layers, complementary tools. The engine turns intent into coordinated actions.
Kubernetes is an open-source system for running containerized applications across a cluster. You describe the desired state. It keeps working to make reality match.
Each worker runs a kubelet to manage Pods and a container runtime to execute containers. Cluster networking connects them.
A Pod is the smallest deployable unit: one or more closely related containers that share networking and storage resources.
Service networking commonly uses kube-proxy or an alternative implementation.
A Deployment declares the image, Pod template, and replica count. It manages ReplicaSets, which maintain the requested Pods.
Change the template to roll out a new version. Change the replica count to scale. If a Pod fails, a controller creates a replacement.
Recovery still needs available capacity. Autoscaling needs metrics and configuration.
campus.example/api
Host + path routing
Stable DNS + IP
Ready backends
A Service selects backends using labels and provides a stable destination. Common types are ClusterIP, NodePort, and LoadBalancer.
Ingress routes external HTTP(S) by host and path. It needs an Ingress controller to apply those rules. The newer Gateway API supports evolving routing needs.
The Ingress API is frozen. Service and Ingress solve different layers of routing.
Create a local cluster. Deploy a web server. Give it an endpoint.
First install minikube, kubectl, and a supported container or VM driver.
# Start a local Kubernetes cluster
minikube start
# Deploy a web server
kubectl create deployment web \
--image=nginx:stable
# Expose it inside the local environment
kubectl expose deployment web \
--port=80 --type=NodePort
# Inspect and open
kubectl get pods,svc
minikube service webPods transition to v2 one at a time.
RollingUpdate and Recreate are built-in Deployment strategies. Blue/green and weighted canary releases need additional release and traffic coordination. All diagrams are illustrative.
Disaster recovery restores service after a major disruption. Start with two targets.
How long can the application be unavailable? How much recent data can you afford to lose? Those answers shape the architecture.
Acceptable data loss,
measured in time.
Target time to
restore service.
More readiness generally means faster recovery and higher running cost.
Protected copies. Rebuild when needed.
Keep core services ready. Scale up for recovery.
A smaller working stack waits to take over.
Multiple sites already serve traffic.
Map critical services and dependencies. Set RTO and RPO. Assign owners, contacts, and recovery priorities.
Maintain recoverable backups, replicated data, infrastructure definitions, and clear runbooks.
Detect the disruption, activate the plan, restore dependencies, and validate the application and its data.
Run recovery drills, measure results, improve the plan, and fail back safely when the primary is ready.
Health checks and routing policies can shift traffic away from an unavailable site. The recovery environment must already have the capacity and data it needs.
A load balancer does not restore lost data. Cross-region recovery may also use DNS or global traffic management.
Scroll through a simplified failover sequence.
Running is not the same as healthy.
Measure what users experience.
Numerical trends reveal latency, traffic, error rates, and resource saturation.
Events add detail and context to a failure, request, or system action.
Follow a request across services to locate delays and failed dependencies.
Prioritize stack support, useful signals, actionable alerts, data handling, and total cost. Connect instrumentation to diagnosis and response.
Prometheus + Grafana
Jaeger
Datadog
New Relic
THE APPLICATION LIFECYCLE
Every signal informs the next decision.
The loop keeps going.