KBS-105

Docker Intro + Kubernetes & Helm Admin

Detailed Course Outline

Course Length

1 day Docker + 3 days Kubernetes + 1 day Helm, 5 days altogether

Course Overview

Linux containers are changing the way companies think about service development and deployment. Containers play a vital role in the modern data-center, and Docker is leading the way. And Kubernetes is the leading open-source system for automating deployment, scaling and management of containerized applications.

Participants will first gain a basic understanding of Linux containers and proceed with learning the most important features of Docker Community Edition (CE) as well as their installation, initial setup and daily administration.

The second part of the course introduces participants to the basic concepts and architecture of Kubernetes, its initial install, setup and access control, Kubernetes Pods and Workloads, Scheduling and node management, Accessing the applications, Persistent storage in Kubernetes and finally its Logging, Monitoring and Troubleshooting facilities.

The third part deals with Helm, the Kubernetes Package Manager.

Course Objectives

By the end of this course, learners will be able to build, run, and manage containerized applications using Docker, and administer Kubernetes clusters to deploy, secure, scale, and troubleshoot workloads in production environments. They will also gain hands-on experience with Helm to package, configure, and manage Kubernetes applications, preparing them for real-world operations and CKA/CKAD certification exams.

Structure

50% theory 50% hands on lab exercises

Target Audience

System administrators, developers and DevOps who want to understand and use Docker and Kubernetes in enterprise and cloud environments.

Prerequisites

Proficiency with the Linux CLI. A broad understanding of Linux system administration.

Course Modules

PART I. DCK-101 Docker Intro

Module 1: Container introduction

  • Application containers
  • Container runtimes
  • Docker introduction
  • LAB TASKS: Understand Linux namespaces

Module 2: Managing containers using Docker

  • Starting/stopping containers with docker
  • Listing/inspecting containers
  • Executing commands in containers
  • LAB TASKS: Managing docker containers

Module 3: Managing the container's filesystem with Docker

  • Accessing the filesystem
  • Overlay FS
  • Image layers
  • Creating images from running containers
  • Working with images
  • Building images using Dockerfile
  • LAB TASKS: Managing images
  • Using volumes in Docker containers
  • LAB TASKS: Managing volumes

Module 4: Managing container images

  • How containers are connected to the network
  • Using host networking
  • Sharing the network among multiple containers
  • Publishing ports
  • LAB TASKS: Managing images

Module 5: Docker architecture

  • The processes
  • Extracting logs
  • Registry
  • LAB TASKS: Accessing container logs

PART II. KBS-103 Kubernetes Admin with CKA & CKAD exam prep

Module 1: Kubernetes introduction

  • Cloud computing in general
  • Cloud types
  • Cloud native computing
  • Container orchestration
  • Kubernetes
  • Kubernetes concepts
  • Kubernetes objects categories
  • Custom resource definitions
  • Kubernetes architecture
  • Kubernetes control plane
  • Kubernetes node
  • Kubernetes Addons
  • Kubernetes Lab: Health check

Module 2: Accessing Kubernetes

  • Accessing the Kubernetes cluster
  • Access multiple contexts and clusters
  • Controlling access to the API
  • Authorization
  • Role Based Access Control
  • Roles and ClusterRoles
  • Role bindings
  • Admission control
  • Kubernetes Lab: Accessing API

Module 3: Kubernetes Workloads

  • The pod
  • Our first Pod
  • Operations on pods
  • Pod Status and Lifecycle
  • Pod probe examples
  • RestartPolicy examples
  • InitContainers
  • Pod resource management
  • Pod security context
  • Patterns for Composite Containers
  • ReplicaSet
  • Deployments
  • Kubernetes Lab: Workloads

Module 4: Scheduling and node management

  • The Kubernetes Scheduler
  • Pod priorities and preemption
  • Assigning Pods to Nodes
  • Assigning Pods to Nodes – Node affinities
  • Assigning Pods to Nodes – Pod affinities
  • Assigning Pods to Nodes – Pod Topology spread constraints
  • Taints and tolerations
  • Managing nodes
  • Kubernetes Lab: Scheduling

Module 5: Accessing the applications

  • Services
  • Service types
  • Working with Services
  • Ingress
  • Ingress definition
  • Working with Ingress
  • Network Policies
  • Kubernetes Lab: Accessing Applications

Module 6: Persistent storage in Kubernetes

  • Volumes, Volume example, Volume types
  • Persistent Volumes, Persistent Volume example
  • Dynamic PVC provisioning
  • Secrets
  • Using Secrets as environmental variables
  • Using Secrets as volumes
  • ConfigMaps
  • Kubernetes Lab: Persistent Storage

Module 7: Kubernetes Special Workloads

  • StatefulSets StatefulSets – Limitations
  • StatefulSet example
  • StatefulSet example with PVC
  • Jobs, CronJobs
  • Jobs example
  • CronJobs example
  • DaemonSets
  • Custom resources
  • Kubernetes Lab: Special workloads

Module 8: Logging, monitoring and troubleshooting

  • Logging architecture
  • Monitoring
  • Troubleshooting
  • Kubernetes Lab: Logging and Monitoring

Module 9: Installing and upgrading Kubernetes

  • Picking the right solution
  • One node Kubernetes install
  • Kubernetes universal installer
  • Install using kubeadm on Ubuntu
  • Upgrading Kubernetes
  • Lab: Upgrading Kubernetes

PART III. Helm Package Manager

Module 1: Introduction to Helm

  • What is Helm?
  • Helm concepts
  • Helm v2 (legacy) components
  • Helm v3 components
  • Installing Helm
  • Helm Lab: Installing Helm

Module 2: Using Helm

  • Generic options and help
  • Working with repositories
  • Finding charts
  • Installing a release
  • List releases
  • Upgrade/rollback releases
  • Uninstalling releases
  • Helm Lab: Using Helm

Module 3: Helm charts

  • Introduction to charts
  • The structure The Chart.yaml File
  • The components of a Chart
  • Chart dependencies
  • Chart dependencies (cont.)
  • Managing Charts with helm
  • Helm Lab: Working with charts

Module 4: Chart Templates

  • Writing Templates Templates and Values
  • Dependencies and values Dependencies and values
  • Chart lifecycle hooks Functions and pipelines
  • Flow control
  • Variables
  • Named templates
  • Helm Lab: Writing templates

Module 5: Helm plugins

  • Building plugins
  • Helm Lab: Helm plugins