Course Description

Recorded Live March 2020 via Zoom.

Requirements: to make the most out of this course, you need to be familiar with basic container concepts:

- You know the difference between a container and an image,

- You know how to run a container and how to build an image (with Docker or any other container engine).

You don't need to have any prior experience with Docker, Kubernetes, or to know a specific language or framework. The labs and exercises will take place on remote clusters of virtual machines, so if you want to complete the assignments, you should feel comfortable with:

- Using SSH to connect to a remote Linux machine

- Basic shell commands (navigate directories, set environment variables…)

- Using a text editor like vi, nano, or similar

Kubernetes Foundations

  • Running a micro-services application in containers

  • Kubernetes concepts

  • First contact with kubectl

  • Declarative and imperative models

  • Pods, Deployments, Batch and Cron jobs

  • Viewing container output from the CLI

  • The Kubernetes network model

  • Exposing containers with Services

  • Deploying the micro-services application on Kubernetes

Scaling and Rolling Updates

  • Deploying with YAML manifests

  • Scaling with Deployments and Replica Sets

  • Scaling with Daemon Sets

  • Load balancing traffic with labels and selectors

  • Dynamic load balancer reconfiguration

  • Rolling updates and upgrades

  • Rolling back invalid deployments

  • The role of healthchecks

  • Liveness, readiness, and startup probes

From Sample Apps to Production Use-Cases

  • Organizing resources with Namespaces

  • Controlling a Kubernetes cluster remotely

  • Accessing internal services

  • The Kubernetes dashboard

  • Exposing HTTP services with Ingress resources

  • Sharing information between containers with volumes

  • The downward API

  • Exposing configuration files with Config Maps

  • Managing sensitive data with Secrets