Intensive Kubernetes
Learn to deploy, scale, and operate applications in "Cloud Native" environments.
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
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
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
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