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

  1. 02

    Services and Ingress: Exposing an Application

    18 min
    • 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

  2. 03

    Configuration, Secrets and Namespaces

    18 min
    • Separate configuration from the image with ConfigMaps
    • Manage secrets while knowing the limits of the Secret object
    • Isolate environments or teams with namespaces

    ConfigMapsSecretsNamespacesMounted files

  3. 04

    Scaling and Resilience

    20 min
    • 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

  4. 05

    Observability and Troubleshooting

    20 min
    • 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

    Troubleshooting methodLogsEventsMetrics and monitoring

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.

The preview is free, and you can take the courses one at a time without paying. The path only contains lessons from the catalogue.