01

Course Overview

Containers are a disruptive technology and change how applications are perceived, architected, and deployed.  Containers enable many benefits but can also be challenging to implement.  A few of the common challenges are service discovery, self-healing and autoscaling.

Through lectures and hands-on labs, this class shows attendees how to implement and use Kubernetes, a container orchestration system. Kubernetes has many built-in features that help overcome the challenges of running production containerized applications through built-in load balancing, health checks, autoscaling, service discovery, DNS, and much more!

02

Key Learning Areas

Attendees will leave with a clear understanding of Kubernetes and why it is revolutionizing container orchestration.  They will gain hands-on experience with Kubernetes concepts and operations, including how to write a Pod spec, service config, and deployment manifest.  They will also learn to use persistent storage, ConfigMaps, Role-Based Access Controls, and secrets.

03

Course Outline

Docker Review
This module starts by providing an overview of docker foundations, then gets into more details of creating and managing images using registries.

  • What is Docker
  • Datacenter evolution (monolithic to containers)
  • Container concepts
  • Docker platform

Kubernetes: Containers at Scale
This module explains why Kubernetes was created and how it solves the container scaling problem.

  • Story of Kubernetes
  • Kubernetes at Google

Use-Cases
There are many use cases where Kubernetes can be applied as an infrastructure management service.  In this module, you will learn about the following:

  • Cloud-Native Applications
  • Elastic Services
  • CI/CD Pipeline Integration
  • CI in Production at Scale
    • Case Study (Yahoo Japan)
  • Platform as a Service

Architecture
Understanding the design of Kubernetes will make you a better engineer. This module provides a high-level understanding of the Kubernetes architecture.

  • Cluster Architecture
  • Master Components
  • Node Components
  • Cluster Deployment Options

Workload Introduction
In this module, you will learn about critical components for servicing Kubernetes workloads, such as:

  • Pods
  • Application Pattern Controllers
  • ReplicaSets
  • Services

Pod Deep Dive
This module provides a detailed explanation of what Pods are, their most salient features, how they work, and how to manage them using commands.

  • What is a Pod?
  • Pod Features
  • Pod Manifest Syntax
  • Pod Command-Line Management
  • Pod Labeling
  • Pod Scheduling

Network Models
This module will teach you how to design networks to facilitate communication between pods and Kubernetes applications.

  • Network Design
  • Same Pod Communication
  • Abstraction Through Services
  • Network Addons

Services
After completing this module, you will better understand how to create and manage services using Kubernetes.  The module includes the following service-related lessons:

  • Design Goals
  • Service Manifest Syntax
  • Different Types of Services
  • Label Selectors
  • Command-Line Management
  • Service Discovery
    • DNS
    • Environment Variables

Deployments
This module focuses on the creation of Kubernetes deployments.  You will learn about the following:

  • Overview
  • Stateful Application Schemes
  • ReplicaSet Controller
  • Deployment Manifest Syntax
  • Command-Line Management

Scaling Deployments
Production deployments might fail to meet demand in specific scenarios, so resources must scale accordingly.  In this module, you will learn about different ways for scaling deployments, including but not limited to:

  • Microservices
  • Scaling Strategies
    • Manual
    • Autoscaling
    • Horizontal Pod Autoscaler (HPA)
    • External Service Integrations

Deployment Strategies
This module focuses on various deployment strategies that can be used when deploying Kubernetes Workloads.  You will learn about the following tried and tested strategies:

  • Recreate
  • RollingUpdate
  • Canary
  • Blue/Green

Persistent Volumes
In this module, you will learn how persistent volumes are created and used to store data that needs to be persisted across the lifecycle of a pod.

  • Types of Storage
  • Volumes
  • Claims

ConfigMap
In Kubernetes, a ConfigMap is a resource that allows you to store configuration data that your applications can use. They are helpful for storing configuration data that is not sensitive and does not need to be stored as part of an image. In this module, you will learn how to create and reference ConfigMaps.

  • Overview
  • Manifest Syntax
  • Using ConfigMap values
  • ConfigMap Restrictions

Secrets
This module explains how to create, store and use secrets securely in Kubernetes deployments.

  • Overview
  • Manifest Syntax
  • Using Secret Values

Role-Based Access Controls
This module focuses on using Role Based Access Controls to provide fine-grained access control to Kubernetes resources.

  • Roles
  • ClusterRole
  • RoleBinding
  • Manifest Syntax

Run Kubernetes Locally
In this module, you will learn how to deploy and run Kubernetes workloads locally using Docker Desktop and Minikube.

  • Docker Desktop
  • Minikube
04

Who Benefits

The audience for this class is developers, DevOps, architects and any other IT personnel interested in running containers in a production environment with Kubernetes.

This class does not require any prior experience with containers or Kubernetes.  Experience with Linux or macOS command-line tools is helpful but optional.

05

Prerequisites

Want this course for your team?

Atmosera can provide this course virtually or on-site. Please reach out to discuss your requirements.