12/12/2022 - 12/14/2022
10:00 AM - 06:00 PM
Online Virtual Class
USD $1,995.00
Enroll
02/06/2023 - 02/08/2023
10:00 AM - 06:00 PM
Online Virtual Class
USD $1,995.00
Enroll
03/20/2023 - 03/22/2023
10:00 AM - 06:00 PM
Online Virtual Class
USD $1,995.00
Enroll

This intensive course begins with an introduction to Docker, and then goes into Azure Container Registry and Azure Container Instances. We’ll cover Kubernetes core concepts, design, workload, deployment, logging, monitoring, and troubleshooting, in addition to hands-on labs.

Sign up for Kubernetes for Developers today.

Objectives for Kubernetes for Developers Training

Docker Introduction 

Azure Container Registry and Azure Container Instances

Docker Introduction

Building Docker Images

Azure Container Registry and Azure Container Instances

Kubernetes Core ConceptsDeploying and Exposing Applications

Design

Kubernetes Workload

Deployment Configuration

Shared Volume using Azure Files share

Logging, Monitoring, and Troubleshooting

Audience

This Kubernetes for Developers training course is intended for developers that need to understand all aspects of how to containerize, host, deploy, and configure an application in a multi-node cluster.

Prerequisites for this Kubernetes for Developers Training

WA2675 Architecting Microservices with Kubernetes, Docker, and Continuous Integration Training – or equivalent experience.  Students should be familiar with a programming language and be comfortable with basic Linux command line and file editing skills.

Duration

Three days

 

Lab Setup Guide

Outline for Kubernetes for Developers on AKS Training

Chapter 1. Docker Introduction

What is Docker

Docker Containers vs Traditional Virtualization

Where Can I Run Docker?

Docker Containers vs Traditional Virtualization

Docker as Platform-as-a-Service

Docker Integration

Docker Services

Docker Hub Container Registry

Alternative Container Registries

Competing Containerization Systems

Docker Command-line

Starting, Inspecting, and Stopping Docker Containers

Summary

Chapter 2. Building Docker Images

Docker Images

Containerizing an Application

Building The Image

Building a Docker Images using Dockerfile

Sample Dockerfile

Environment Variables

Environment Variables - Example

Arguments

Multi-stage Builds

Multi-stage Builds (Continued)

Stop at a Specific Build Stage

RUN

EXPOSE

EXPOSE (Continued)

COPY

ADD

CMD

ENTRYPOINT

CMD vs. ENTRYPOINT

VOLUME

Build the Image

Build the Image (continued)

.dockerignore

Dockerfile – Best Practices

Dockerfile - Best Practices (contd.)

Published Ports

Docker Documentation Link

Docker Registry

Hosting a Local Registry

Hosting a Local Registry (continued)

Deploying Docker Images to a Kubernetes Cluster

Deploying to Kubernetes (continued)

Deploying to Kubernetes (contd.)

Running Commands in a Container

Multi-Container Pod

Multi-Container Pod (continued)

Summary

Chapter 3. Azure Container Registry and Azure Container Instances

Azure Container Registry (ACR)

ACR Typical Workflow

Container Registry SKUs

Creating ACR

Pushing Existing Docker Images into ACR

Build Images in ACR

Obtaining ACR Credentials

Azure Container Instances (ACI)

Azure Container Instance Workflow

Working with ACI

Working with ACI (contd.)

Deleting Container Instances and Container Registry

Summary

Chapter 4. Kubernetes Core Concepts

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

Docker Registry

Azure Kubernetes Service (AKS)

AKS Diagram

Deploying an AKS Cluster

Application Deployment on AKS

Summary

Chapter 5. Deploying and Exposing Applications

Configuring AKS for Deployment

Deploying to Kubernetes (contd.)

Kubernetes Services

Service Resources

Service Type

ClusterIP

NodePort

NodePort from Service Spec

LoadBalancer

LoadBalancer from Service Spec

ExternalName

Accessing Applications

Service Without a Selector

Ingress

Ingress Resource Example

Ingress Controller

Service Mesh

Summary

Chapter 6. Design

Traditional Applications

Virtual Machines

Containerized Applications

Decoupled Resources

Transience

Flexible Framework

Application Resource Usage

Measuring Resource Usage

Docker Resource Usage Statistics

Docker Container Resource Constraints

Docker Run Command Resource Flags

Using Label Selectors

Equality Based Label Selector

Set Based Label Selector

Multi-Container Pods

Sidecar Container

Sidecar Container Uses

Adapter Container

Summary

Chapter 7. Kubernetes Workload

Kubernetes Workload

Kubernetes Workload (contd.)

Managing Workloads

Imperative commands

Imperative Object Configuration

Declarative Object Configuration

Configuration File Schema

Understanding API Version

Obtaining API Versions

Obtaining API Versions (contd.)

Stateless Applications

Sample Deployment Manifest File

Working with Deployments

Stateful Applications

Sample Stateful Manifest File

Sample Stateful Manifest File (Contd.)

Working with StatefulSet

Jobs

Sample Job Manifest File

Sample Job Manifest File (Contd.)

Working with Batch Job

DaemonSets

DaemonSets (contd.)

Sample Daemon Manifest File

Rolling Updates

Rolling Updates (Contd.)

Summary

Chapter 8. Deployment Configuration

Introduction to Volumes

Container OS file system storage

Docker Volumes

Kubernetes Volumes

Volume Specs

K8S Volume Types

Cloud Resource Types

emptyDir

Using an emptyDir Volume

Other Volume Types

Persistent Volumes

Creating a Volume

Persistent Volume Claim

Persistent Volume

Pod that uses Persistent Volume

Dynamic Volume Provisioning

Requesting Dynamic Storage

Secrets

Creating Secrets from Files

Creating Secrets from Literals

Using Secrets

configMaps

Creating configMaps from Literals

Creating configMaps from files

Using configMaps

Security Context

Security Context Usage

Deployment Configuration Status

Replicas

Scaling

Summary

Chapter 9. Shared Volume using Azure Files share

Volumes

Azure Disks

Azure Files share

Azure Files share - Workflow

Creating a Kubernetes Secret

Configuring the Volume in the Container Specification

Verifying the Azure Files share is Mounted

Summary

Chapter 10. Logging, Monitoring, and Troubleshooting

Differences Between Logging and Monitoring

Logging in Kubernetes

Basic Logging

Debugging Pods

Debugging Pods (Contd.)

Debugging Nodes

Debugging Replication Controllers and Services

Azure Monitor

Container Insights

Container Insights (contd.)

Log Queries in Azure Monitor

Log Analytics Query Language

Logging Agents

Fluentd and Elastic Stack

Monitoring with Prometheus

Alerting

Upgrade Process

Troubleshooting

YAML Syntax Exceptions

nodeSelector

Troubleshooting a Failed Image Pull

Resource Issues when Scaling

Resource Issues when Scaling (contd.)

Summary

Lab Exercises

Lab 1. Building a Docker Image with Dockerfile

Lab 2. Getting Started with Docker Compose

Lab 3. Working with Container Registry and Container Instances

Lab 4. Pushing Docker Images into ACR

Lab 5. Accessing the Kubernetes API in AKS

Lab 6. Accessing Applications in AKS

Lab 7. Deploying ACR Images to AKS

Lab 8. Working with Kubernetes Workloads in AKS

Lab 9. Implementing the Sidecar Pattern

Lab 10. Using Persistent Storage in AKS

Lab 11. Using AKS Volume with Azure File share

Lab 12. Exploring Logging and Monitoring in AKS

Lab 13. Troubleshooting