Course 960:
Hands-On Kubernetes

(3 days)

 

Course Description

Kubernetes is an open-source, cross-platform, container orchestration system. It is supported by all major public cloud providers, and can also be used on-premises. It is an industry-standard for deploying cloud-native applications that can be deployed anywhere. This course provides the knowledge necessary to use Docker and Kubernetes to deploy your microservice applications to any cloud.

Learning Objectives

  • Leverage Kubernetes for container orchestra and automated deployment
  • Build, run, and deploy container applications using Docker
  • Configure Kubernetes clusters in the cloud
  • Automate application management using the kubectl CLI and configuration
  • Deploy scalable, fault-tolerant applications using Kubernetes Deployments, Services, Jobs, CronJobs, and DaemonSets
  • Migrate to new versions of services safely with zero downtime
  • Save data in Kubernetes using Persistent Volumes, StatefulSets, ConfigMaps, and Secrets
  • Simplify Kubernetes deployments with Helm
  • Manage Kubernetes security with Role-Based Access Control (RBAC)
  • Enhance Kubernetes networking with network policies

Who Should Attend

Architects, engineers, and developers who want to learn to use Kubernetes to build cloud-native, microservice applications and automate their deployment using Kubernetes.

Hands-On Activities

This class includes hands-on labs. Most labs focus on Kubernetes concepts and will work on any Kubernetes cluster. The labs to provision and manage the cluster will be performed on Google Kubernetes Engine (GKE). Amazon Elastic Kubernetes Service (EKS) or Azure Kubernetes Service (AKS) will be demonstrated in the course.


Course Outline

 

1. Overview of Kubernetes

  • Introduction to Kubernetes
    • Containerization
    • Advantages of Containers
    • Container Orchestration
  • Kubernetes Advantages
    • Open-Source
    • Cross-Platform
    • Portability
    • Support for Multi- and Hybrid-Cloud Architecture
    • Automation

2. Docker

  • Docker Images
    • Basic Docker Commands
    • Building Docker Images
    • Dockerfile
  • Docker Containers
    • Starting Containers
    • Stopping Containers
    • Deleting Containers and Images
    • Activity: Building Docker Images
  • Deploying Docker Images
    • Container Registries
    • Push and Pull
    • Activity: Using a Container Registry

3. Kubernetes Clusters

  • Architecture
    • Clusters
    • Control Plane
    • Worker Nodes
  • Configuring Clusters
    • Software Requirements
    • Configuring Clusters
  • Managed Clusters in the Cloud
    • Google GKE
    • Amazon EKS
    • Microsoft AKS
    • Activity: Creating a Managed Cluster
  • Serverless Clusters

4. Kubernetes Architecture and CLI

  • Kubernetes Application Architecture
    • Objects
    • Pods
    • Deployments
    • Services
    • Namespaces
    • Configuration
  • kubectl CLI
    • Basic Commands
    • Creating Deployments
    • Creating Services
    • Retrieving Information
    • Executing Commands with a Pod
    • Accessing Pod Logs
    • Deleting Resources
    • Configuration Basics
    • Deploying Resources with Configuration
    • Activity: Using the kubectl CLI

5. Deployments and Services

  • Understanding Deployments
    • Basic Configuration
    • Labels
    • Replica Sets
    • Configuring Pods
    • Activity: Creating a Deployment
  • Exposing Deployments
    • Kubernetes Services
    • ClusterIP
    • NodePort
    • LoadBalancer
    • Service Configuration
    • Activity: Creating a Load Balancer
  • Communicating Between Services
    • Kubernetes DNS
    • Configuring Environment Variables
  • Controlling Resources
    • Resources
    • Requests
    • Limits
  • Fault-Tolerance and Scalability
    • Liveness Probes
    • Readiness Probes
    • Auto-healing
    • Autoscaling
    • Creating a Horizontal Pod Autoscaler using the CLI
    • Configuring Autoscalers
    • Activity: Adding Resource Requests and Limits, and Autoscaling

6. Version Management

  • Deploying New Versions
    • Update Policies
    • Rolling Updates
    • Accessing Version History
    • Rolling Back Deployments
  • Testing New Versions
    • Blue/Green Deployments
    • Canary Deployments
    • Activity: Performing Rolling Updates and Blue/Green Deployments

7. Persistent Storage

  • Allocating Disk Space for Pods
    • Persistent Volumes
    • Persistent Volume  Claims
    • Storage Types
    • Mounting Volumes
    • MySQL Example
  • StatefulSets
    • Configuration
    • Volume Claim Templates
    • Cassandra Example
    • Activity: Deploying StatefulSets
  • Configuration Data
    • ConfigMaps
    • Secrets

8. Helm

  • What is Helm?
  • Charts
  • Installing Applications with Helm
  • Deleting Applications with Helm
  • Activity: Using Helm to Install a Database

9. Kubernetes Jobs

  • Jobs
    • Configuration
    • Use Cases
  • CronJobs
    • Configuration
    • Use Cases
  • DaemonSets
    • Configuration
    • Use Cases
    • Activity: Running Kubernetes Jobs

10. Role-Based Access Control and Advanced Networking

  • Role-Based Access Control
    • Roles
    • Permissions
    • RoleBinding
    • ClusterRoles and ClusterRoleBindings
    • Activity: Using Kubernetes RBAC
  • Network Policies
    • Controlling Pod Ingress and Egress Network Traffic
    • Restricting Network Communication Between Namespaces
    • Activity: Network Policies
  • Istio Introduction
    • Benefits
    • Features

11. Multi-Cloud Support

  • Compare/contrast Kubernetes on AWS, Google Cloud, and Azure
  • Demonstration: Deploying the class case study application on Kubernetes in another cloud provider

12. Course Summary

Please Contact Your ROI Representative to Discuss Course Tailoring!