7854  Reviews star_rate star_rate star_rate star_rate star_half

Introduction to Docker and Kubernetes

Docker is a containerization platform that allows you to package your application and its dependencies into a single image. This makes deploying your application to any environment easy, regardless...

Read More
$1,395 USD
Course Code WA3367
Duration 2 days
Available Formats Classroom

Docker is a containerization platform that allows you to package your application and its dependencies into a single image. This makes deploying your application to any environment easy, regardless of the underlying infrastructure. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. It provides a way to orchestrate multiple containers running on a cluster of hosts. This Docker and Kubernetes training course teaches students how to use these technologies to create and deploy applications quickly and easily.

Skills Gained

  • Understand Docker basics, including architecture and integration
  • Work with virtualization and containerization
  • Dive deep into Kubernetes' architecture, clusters, and pods
  • Master storage, security, and routing
  • Deploy and manage workloads
  • Understand Kubernetes' orchestration and use labels and affinities
  • Debug deployments

Who Can Benefit

This course is designed for developers and system administrators.

Prerequisites

  • Some familiarity with Linux
  • Basic programming skills

Course Details

Outline

Chapter 1 - Docker in Action

  • Docker Basics
  • Where Can I Run Docker?
  • Installing Docker Container Engine
  • Docker Toolbox
  • What is Docker?
  • Docker Architecture
  • Docker Architecture Diagram
  • Docker Images
  • Docker Containers
  • Docker Integration
  • Docker Services
  • Docker Application Container Public Repository
  • Docker Run Command
  • Starting, Inspecting, and Stopping Docker Containers
  • Docker Volume
  • Dockerfile
  • Docker Compose
  • Using Docker Compose
  • Dissecting docker-compose.yml
  • Specifying services
  • Dependencies between containers
  • Injecting Environment Variables
  • Summary

Chapter 2 - What is Kubernetes

  • Modern Infrastructure Terminology
  • Virtualization
  • Disadvantages of Virtualization
  • Containerization
  • Virtualization vs Containerization
  • Where to Use Virtualization and Containerization
  • Popular Containerization Systems
  • What are Linux Containers?
  • Container Orchestration Tools
  • Docker Swarm
  • Kubernetes
  • Microservices
  • Microservices and Containers / Clusters
  • Summary

Chapter 3 - Kubernetes – From the Firehose

  • Kubernetes Basics
  • What is Kubernetes?
  • Container Orchestration
  • Kubernetes Architecture
  • Kubernetes Concepts
  • Cluster and Namespace
  • Nodes
  • Master
  • Pod
  • Using Pods to Group Containers
  • Label
  • Label Syntax
  • Annotation
  • Label Selector
  • Replication Controller and Replica Set
  • Service
  • Storage Volume
  • Secret
  • Resource Quota
  • Authentication and Authorization
  • Routing Concepts
  • Docker Registry
  • Summary

Chapter 4 - Kubernetes Workload

  • Kubernetes Workload
  • Managing Workloads
  • Imperative commands
  • Imperative Object Configuration
  • Declarative Object Configuration
  • Configuration File Schema
  • Understanding API Version
  • Understanding API Version
  • Obtaining API Versions
  • Stateless Applications
  • Sample Deployment Manifest File
  • Working with Deployments
  • Stateful Applications
  • Sample Stateful Manifest File
  • Working with StatefulSet
  • Jobs
  • Sample Job Manifest File
  • Working with Batch Job
  • DaemonSets
  • DaemonSets (contd.)
  • Sample Daemon Manifest File
  • Rolling Updates
  • Summary

Chapter 5 - Scheduling and Node Management

  • Kubernetes Scheduler Overview
  • Trusting the Kubernetes Scheduler
  • Scheduling Process
  • Scheduling Process - Predicates
  • Scheduling Process - Priorities
  • Scheduling Algorithm
  • Kubernetes Scheduling Algorithm
  • Scheduling Conflicts
  • Controlling Scheduling
  • Label Selectors
  • Label Selectors (Contd.)
  • Node Affinity and Anti-affinity
  • Node Affinity Example
  • Node Antiaffinity Example
  • Taints and Tolerations
  • Taints and Tolerations - Example
  • Summary

Chapter 6 - Working with Kubernetes

  • Installation
  • Startup
  • Kubernetes Tools
  • kubectl Command Line Interface
  • API Proxy
  • Dashboard
  • Kubernetes Component Hierarchy
  • Deployments
  • Deployment Commands
  • Updating Deployments
  • Network Considerations
  • Services
  • Namespaces
  • Labels
  • Annotations
  • Other Useful Commands
  • Summary

Chapter 7 - Logging, Monitoring, and Troubleshooting

  • Differences Between Logging and Monitoring
  • Logging in Kubernetes
  • Basic Logging
  • Logging Agents
  • Fluentd and Elastic Stack
  • Monitoring with Prometheus
  • Kubernetes and Prometheus - Metrics
  • Alerting
  • Debugging Pods
  • Debugging Nodes
  • Debugging Replication Controllers and Services
  • Upgrading Kubernetes
  • Upgrade Process
  • Determine Which Version to Upgrade To
  • Upgrade kubeadm
  • Upgrade Control Plane Node
  • Upgrade kubelet and kubectl
  • Upgrade Worker Nodes
  • Recovering From a Failure State
  • Summary

Appendix 1 - Managing Persistent Storage

  • Storage Methods
  • Container OS file system storage
  • Docker Volumes
  • Kubernetes Volumes
  • K8S Volume Types
  • Cloud Resource Types
  • configMaps
  • Creating configMaps from Literals
  • Creating configMaps from files
  • Using configMaps
  • emptyDir
  • Using an emptyDir Volume
  • Other Volume Types
  • Persistent Volumes
  • Creating a Volume
  • Persistent Volume Claim
  • Persistent Volume
  • Pod that uses Persistent Volume
  • Secrets
  • Creating Secrets from Files
  • Creating Secrets from Literals
  • Using Secrets
  • Security Context
  • Security Context Usage
  • Summary

Appendix 2 - Managing Networking

  • Kubernetes Networking Components
  • The Kubernetes Network Model
  • Networking Scenarios
  • Container-Container Communication
  • Pod-Pod Communication
  • 1.3 Pod-Service Communication
  • External-Service Communication
  • Accessing Applications
  • Useful Commands
  • Container Network Interface (CNI)
  • What is CNI’s Role?
  • CNI Configuration Format
  • Sample CNI Configuration
  • Running the CNI Plugins
  • Summary

Lab Exercises

  • Lab 1. Creating a Docker Account and Obtain an Access Token
  • Lab 2. Managing Containers
  • Lab 3. Building Images
  • Lab 4. Dockerfiles
  • Lab 5. Docker Volumes
  • Lab 6. Configuring Minikube/Kubernetes to Use a Custom Docker Account
  • Lab 7. Accessing the Kubernetes API
  • Lab 8. Working with Kubernetes Workloads
  • Lab 9. Accessing Applications
  • Lab 10. Bonus Lab: Scheduling and Node Management
  • Lab 11. Bonus Lab: Using Persistent Storage