Deploying Microservices and Traditional Applications with Kubernetes

About this Event

This is a 20-hour, hands-on online training to get started with Kubernetes, understand its concepts and its architecture, and learn how to leverage it for your applications.

It puts a strong emphasis on “Cloud Native” principles and microservices architectures but is also suitable for traditional monolithic applications.

Important: Upon completion of each session, there will be a video recording available for download for a period of 48 hours.

Course Outline:

The content is broken down into many modules (each running 10 to 30 minutes long). Each module starts with a presentation of its concepts, followed by live demos in a real environment. The students are then prompted to reproduce these demos in their own environment, specially prepared for the training. This environment is set up to be usable immediately (no time wasted installing local virtual machines or setting up everyone’s computer!), and it has all the features of a typical deployment, allowing to freely go “off-script”, tinker, and experiment.

Day 1

  • Kubernetes concepts
  • Getting started with kubectl
  • Running pods and deployments
  • The Kubernetes network model
  • Service discovery and load balancing
  • Accessing pods through services
  • Service types: ClusterIP, NodePort, LoadBalancer
  • Shipping images to Kubernetes
  • Running our demo app on Kubernetes

Day 2

  • Labels and annotations
  • Viewing logs with “kubectl logs”
  • Viewing pod logs from the CLI
  • Organizing resources with Namespaces
  • Deploying with YAML manifests
  • Declarative vs imperative models
  • Techniques to write YAML manifests
  • Various ways to install Kubernetes
  • Kubernetes options for local development
  • Working with remote Kubernetes clusters
  • Securely accessing internal services

Day 3

  • Scaling up our demo app
  • Scaling with Daemon Sets
  • Rolling updates
  • Rolling back a bad deployment
  • Using healthchecks to improve availability
  • The k9s TUI
  • Development workflow with Tilt

Day 4

  • Sharing data between containers with volumes
  • When and how to use Init Containers
  • Managing application configuration
  • Exposing configuration with the downward API
  • Exposing configuration with Config Maps
  • Handling passwords and tokens safely
  • The Ingress resource
  • Isolating workloads with Network Policies

Day 5

  • Authorization with RBAC (Role-Based Access Control)
  • Working with Roles, Cluster Roles, Role Bindings, etc.
  • Setting compute resource limits
  • Defining default policies for resource usage
  • Managing cluster allocation and quotas
  • The resource metrics pipeline
  • What happens when the cluster is at, or over, capacity
  • Cluster sizing and scaling
  • Auto-scaling resources

About Jérôme Petazzoni

Jérôme was part of the team that built, scaled, and operated the dotCloud PAAS before that company became Docker. He loves to share what he knows, which led him to give hundreds of talks and demos on containers, Docker, and Kubernetes. He has trained thousands of people to deploy their apps in confidence on these platforms and continues to do so as an independent consultant. He values diversity and strives to be a good ally, or at least a decent social justice sidekick. He also collects musical instruments and can arguably play the theme of Zelda on a dozen of them.