0% found this document useful (0 votes)
11 views7 pages

This Document Provides The Curriculum Outline of The Knowledge, Skills and Abilities That A Can Be Expected To Demonstrate

This document outlines the curriculum for Docker and Kubernetes training aimed at IT professionals, including DevOps Engineers and System Administrators. It covers prerequisites, objectives, and detailed topics for a three-day course, including Docker installation, container lifecycle management, Kubernetes architecture, and various Kubernetes functionalities. The training includes hands-on labs for practical experience with Docker and Kubernetes tools and concepts.

Uploaded by

harshagv1994
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views7 pages

This Document Provides The Curriculum Outline of The Knowledge, Skills and Abilities That A Can Be Expected To Demonstrate

This document outlines the curriculum for Docker and Kubernetes training aimed at IT professionals, including DevOps Engineers and System Administrators. It covers prerequisites, objectives, and detailed topics for a three-day course, including Docker installation, container lifecycle management, Kubernetes architecture, and various Kubernetes functionalities. The training includes hands-on labs for practical experience with Docker and Kubernetes tools and concepts.

Uploaded by

harshagv1994
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Docker and Kubernetes

This document provides the curriculum outline of the Knowledge, Skills and
Abilities that a Docker Associate and Kubernetes Developer can be expected to
demonstrate.

Who should attend?


 DevOps Engineers
 Deployment Engineers
 System Administrators
 IT professionals who want to demonstrate their expertise in deploying,
backing up, restoring, and upgrading Kubernetes

Prerequisite:
 Linux/Unix Systems Fundaments
 Familiarity with Command Line Interface (CLI)
 Fundamental knowledge of editors on Linux (any one of vi/nano/emacs)
 Familiarity with at least one scripting/programming language

Objectives:

Day – 1

Docker Introduction
 What is Docker?
 Why Docker?
 Containerization v/s Virtualization
 Docker Architecture
 Understanding the Docker components
 Docker Terminologies
 Docker Internals

Docker Installation
 Docker Editions
 Hardware and Software Requirements
 Installing Docker
 Docker Config Files and Settings

Lab: Installing Docker on Linux


Managing Container Lifecycle
 Creating, Starting and Listing Containers
 Attaching and Detaching from Container
 Fetching Container details using “inspect”
 Executing Commands inside a Container
 Pause, Stop, Start, Restart and Kill a Container
 Container Metrics via stats
 Limiting Memory and CPU utilization
 Storage Utilization of a Container
 Expose Container Application using Host Port

Lab: Managing Container Life Cycle using Docker commands

Working with Docker Images


 Searching, Filtering and Pulling Images
 Docker Image save/load
 Commit Container State
 Understanding Docker Image Directives
 Understanding the use of Base Images
 What is “FROM scratch”?
 RUN vs CMD
 COPY vs ADD
 Building Custom Images using Dockerfile
 Understanding Image Layers
 Publishing the Custom Image
 Flatten an Image using export/import
 Tagging Images
 Working with Docker Hub
 Pushing Docker Images to Docker Hub
 Working with Local Registry Service

Lab: Working with Docker Images


Lab: Building Custom Images
Lab: Publishing the custom image
Lab: Backup and Restore and Image
Lab: Export and Import an Image
Lab: Running a container from the custom image
Lab: Working with Docker Hub
Lab: Pulling/Pushing Docker images from Docker Hub
Lab: Setting up Local Registry Service
Day – 2

Introduction to Kubernetes and its Architecture


 What is Kubernetes?
 Why Kubernetes?
 Kubernetes Versions and Flavors
 Kubernetes Terminologies
 Kubernetes Cluster Architecture
 Understanding Kubernetes Controllers Components
o Kube-apiserver
o ETCD
o Kube-scheduler
o Kube-controller
o CoreDNS
 Understanding Kubernetes Nodes Components
o Kube-proxy
o Kubelet
o CRI – Container Runtime Interface
o CNI – Container Network Interface
o CSI – Container Storage Interface

Kubernetes Cluster Setup and Validation


 Understanding different tools for deploying Kubernetes Cluster
 Building the Kubernetes Cluster using kubeadm Tool
 Understanding the pre-requisites
 Kubernetes Controllers and Nodes

Lab: Environment Setup


Lab: Installing pre-requisites
Lab: Initializing Kubernetes Cluster using Kubeadm
Lab: Adding Nodes to the Kubernetes Cluster

Managing Pod Lifecycle


 Pod Overview
o Creating a Pod with imperative syntax
o Creating a Pod with declarative syntax
o Reading the Pod's information and metadata
o Listing the objects in JSON or YAML
o Backing up your resource using the list operation
o Getting more information from the list operation
o Accessing a Pod from the outside world
o Entering into a container inside a Pod
o Creating Temporary Pod
 Multi-container Pod
o Concrete scenarios where you need multi-container Pods
o When not to create a multi-container Pod
o What happens when Kubernetes fails to launch one container in
a Pod?
o Understanding the Pod deletion grace period
o Accessing a specific container inside a multi-container Pod
o Running commands in containers
o Overriding the default commands run by your containers
 Labeling and annotating the Pods
 What are labels and why do we need them
 What are annotations and how do they differ from labels
 Listing labels attached to a Pod
 Adding or updating a label to/of a running Pod
 Deleting a label attached to a running Pod
 Adding an annotation
 Understanding the Pod Lifecycle

Lab: Getting Started with kubectl CLI


Lab: Creating Pods using Imperative Commands
Lab: Creating Pods using Declarative Method
Lab: Working with Labels and Annotations
Lab: Formatting Output with kubectl
Lab: Working with Single Container Pods
Lab: Working with multi container Pods

Kubernetes Networking and Services


 Cluster Communications
 Pod and Node Networking
 Container Network Interface (CNI)
 Understanding Pod IP assignment is dynamic
 Never hardcode a pod's IP addresses in your application code
 Understanding how services route traffic to Pods
 Understanding how DNS names are generated for services
 Understanding different types of Services
o ClusterIP
o NodePort
o LoadBalancer
o ExternalName
 NodePort or kubectl port-forward?

Lab: Exposing Applications using ClusterIP Service


Lab: Exposing Applications using NodePort Service

Day – 3

Working with Controllers


 Understanding Various Types of Kubernetes Controllers
 Desired State vs Current State
 Kube-Controller-Manager
o ReplicaSet – Scaling the Application
o Deployment – Automatic Rollout and Rollback
 Rolling Deployment
 Recreate Deployment
 Blue-Green Deployment
 Canary Deployment
 A/B Testing
o DaemonSet – Deploying Agents
o StatefulSet – Running StatefulSet Applications
o Job – Run a Task
o Cronjob – Run Recurring Tasks
 HPA vs VPA for Pod Autoscaling
 Creating a Deployment object
 Exposing Deployment Pods using Service objects
 Scaling a Deployment object
 How does a Deployment object manage revisions and version
rollout?
 Updating a Deployment object
 Rolling back a Deployment object
 Deployment object best practices
 Use declarative object management for Deployments
 Do not use the Recreate strategy for production workloads
Lab: Deploying Application using ReplicaSet
Lab: Working with Deployments – Rolling Update
Lab: Working with Deployments – Blue-Green
Lab: Autoscaling of Pods – HPA
Lab: Deploying Application using DaemonSet

Working with Kubernetes Scheduler


 Understanding kube-scheduler and its features
 Manual Scheduling Vs Dynamic Scheduling
 nodeName vs nodeSelector
 Taints and Tolerations

Lab: Manually scheduling Pod


Lab: Scheduling Pod based on Node Selector and Labels
Lab: Taints and Tolerations

Logging and Monitoring


 Describe Resources
 Pod and Container Logs
 Debugging your application
o Debug Pods
o Debug Services
o Determine the Reason for Pod Failure
o Debug Init Containers
o Debug Running Pods
o Get a Shell to a Running Container
o Inspect Kubernetes node with crictl
 Metric Server and the top command
 Events

Lab: Debugging Application Failures


Lab: Deploying Metric Server

Kubernetes Storage
 Understanding Kubernetes Storage
 Types of Volumes
o Persistent Volumes
o Projected Volumes
o Ephemeral Volumes
 Static vs Dynamic Storage
 Volume Modes
 Access Modes
 ConfigMaps and Secrets

Lab: Working with Kubernetes Volume Service


Lab: Working with ConfigMaps and Secrets

You might also like