Kubernetes: Deploy and Operate Your Applications
Kubernetes is an advanced-level course of 5 lessons (about 1 h 34 min), with 15 exercises and 15 quiz questions. Prerequisites: Docker and Deployment. The course needs a full project environment, planned for a later phase of the platform.
- Cloud and DevOps
- Advanced
- 5 lessons
- 1 h 34 min
- 15 exercises
- Full project environment (phase 2)
The course in brief
This course picks up where Docker leaves off: your images are published, and now you need to run them reliably on a cluster. You will describe your applications with Deployment, Service and Ingress manifests, inject configuration and secrets, tune resources, probes and autoscaling, then learn an effective troubleshooting method. The exercises are done on a local minikube or kind cluster.
What you will be able to do
- Explain a cluster's architecture and the principle of desired state
- Deploy and update an application with a Deployment, then roll back
- Expose an application with Services and an Ingress
- Inject configuration and secrets while knowing the limits of the Secret object
- Tune requests, limits, health probes, HorizontalPodAutoscaler and PodDisruptionBudget
- Diagnose Pending, ImagePullBackOff, CrashLoopBackOff and OOMKilled with kubectl
Syllabus: 5 lessons
- Understand the architecture of a Kubernetes cluster (control plane and nodes)
- Describe an application with a Deployment manifest and apply it declaratively
- Update an application with a rolling update and roll back
Control plane and nodesPodsDeployments and ReplicaSetsLabels and selectorsRolling update and rollback
- 02
Services and Ingress: Exposing an Application
- Make a set of pods reachable by a stable name with a Service
- Choose between ClusterIP, NodePort and LoadBalancer
- Publish an application over HTTP(S) by domain name with an Ingress
ServicesInternal DNSIngress and Ingress controllerTLS termination
- 03
Configuration, Secrets and Namespaces
- Separate configuration from the image with ConfigMaps
- Manage secrets while knowing the limits of the Secret object
- Isolate environments or teams with namespaces
- 04
Scaling and Resilience
- Declare requests and limits and understand their effect
- Configure readiness, liveness and startup probes
- Automatically adjust the number of replicas with a HorizontalPodAutoscaler and protect availability with a PodDisruptionBudget
Requests and limitsHealth probesHorizontalPodAutoscalerPodDisruptionBudget
- 05
Observability and Troubleshooting
- Methodically diagnose a failing pod with get, describe, logs and events
- Recognize and fix Pending, ImagePullBackOff, CrashLoopBackOff and OOMKilled
- Place continuous monitoring: metrics, centralized logs, alerts
Final project
Deploy a Web Application and Its API on Kubernetes
Starting from two published images (a front end and an API, for example those from the Docker course), write the manifests to deploy them on a local cluster in two namespaces, staging and production: Deployments, Services, Ingress by hostname, ConfigMap and Secret, requests and limits, probes, HorizontalPodAutoscaler and PodDisruptionBudget for the API. Demonstrate a progressive update, a rollback and the diagnosis of a deliberately induced failure.
Deliverables
- A versioned k8s/ folder with a base and staging and production overlays (Kustomize) or a Helm chart
- The output of `kubectl get deploy,svc,ingress,hpa,pdb -n production` showing all objects ready
- A README describing the deployment, secret management (no plaintext value in the repository) and the rollback procedure
- A diagnostic report of a deliberately induced failure (nonexistent image or missing variable) with the commands used
Assessment criteria
- The manifests apply without error and the Deployments reach their number of ready replicas
- Images are referenced by an immutable tag and no secret appears in plaintext in the repository
- Only the Ingress exposes the application; the API and internal dependencies stay as ClusterIP
- Requests, limits and probes are consistent and the HPA shows a measured target
- The update and rollback are demonstrated without service interruption
Frequently asked questions
Do I need to know Docker before this course?
Yes. The course starts from images that are already built and published; knowing how to write a Dockerfile and use a registry (course B4) is required.
Do I need a cloud account to practice?
No. All the exercises work on a local cluster created with minikube or kind. Differences with a managed service (GKE, EKS, AKS) are pointed out in the lessons.
Is Kubernetes essential for deploying an application?
No. For an application on a single server, Docker Compose or a managed container platform is often enough. Kubernetes becomes interesting with many services, high availability needs or a platform team.
Does the course cover Helm?
Helm and Kustomize are presented as tools for organizing manifests per environment. The course focuses on the Kubernetes objects themselves, which you need to understand before using these tools.
This course, told for your job
Say what you want to be able to do: “Kubernetes” takes its place in your path, with examples from your field. The concepts stay those of the course.