Introduction to Kubernetes
  • Kubernetes Overview
  • What is a Declarative Configuration?
  • Advantages of a Declarative Configuration
  • History of Kubernetes
  • What are the benefits of Kubernetes?
  • What are Microservices?
  • Mutable vs Immutable Infrastructure
  • YAML Refresher
  • How does Kubernetes work with Docker?
Deploy and Explore a Kubernetes Cluster on AWS
  • Objectives
  • Lab Topology & Requirements
  • Kubernetes Architecture
  • LAB: Setup the K8s cluster manager VM
  • LAB: Setup AWS Credentials
  • LAB: Create AWS VPC & Subnets
  • LAB: Setup VPC Subnet Attributes
  • LAB: Deploy a Kubernetes cluster on AWS
  • Demo: Explore the AWS IAM for Kubernetes
  • LAB: Explore the K8s Cluster using kubectl
  • LAB: Working with Namespaces
  • Kubernetes Authentication Basics
  • Demo: Explore Kubernetes Service Accounts
  • Kubernetes Authentication Methods
  • Demo: Explore Kubernetes Authentication Methods
  • Securing Kubernetes
  • Role Based Access Control (RBAC)
  • Demo: Explore Role Based Access Control (RBAC)
  • Access Control Flow in Kubernetes
  • Demo: Explore the Kubernetes Dashboard
  • Kubernetes Monitoring Architecture
  • Demo: Monitoring Kubernetes: Grafana UI
  • LAB: Scaling the AWS Kubernetes Cluster
  • LAB: Tearing down the AWS Kubernetes Cluster
Pods, Labels, Dynamic EBS Volumes, Secrets, ConfigMaps, QoS, Probes
  • Objectives
  • LAB: Get YAML files using Git
  • Kubernetes Term Definitions
  • Managing Kubernetes Objects using kubectl
  • What's a Pod?
  • A Multi-Container Pod
  • Shared Resources in a Pod
  • How are Pods Managed in Kubernetes?
  • What's a Pod Manifest?
  • LAB: Create, view & describe your first Nginx Pod
  • LAB: Port Forward to the Nginx Pod
  • LAB: Run a command inside the Nginx Container
  • LAB: Copy files from and to the Nginx Container
  • Labels and Selectors
  • LAB: Working with Labels and Selectors
  • LAB: Update the Nginx image in the Pod
  • LAB: Get logs from the Nginx Container
  • LAB: Annotate the Nginx Pod
  • LAB: Delete the Nginx Pod
  • Quality of Service (QoS) in a Pod
  • LAB: Setup Quality of Service (QoS) for the Nginx Pod
  • Liveness and Readiness Probes
  • LAB: Setup a Liveness Health Check for the Nginx Pod
  • Kubernetes Volumes
  • LAB: Add an emptyDir Volume to the Nginx Pod
  • LAB: Add a hostPath Volume to a Pod
  • AWS Dynamic Persistent EBS Volume
  • LAB: Add an AWS Dynamic Persistent EBS Volume to the Nginx Pod
  • LAB: Create a Multi-Container Pod - (Nginx+GitSync) sharing data using a Volume
  • Kubernetes Secrets
  • Kubernetes ConfigMaps
  • LAB: Setup Nginx to Serve HTTPS Connections using a Secret and ConfigMap
ReplicaSets, Scaling and AutoScaling
  • Objectives
  • ReplicaSets
  • A ReplicaSet Spec for the Nginx Pod
  • LAB: Create and Inspect an Nginx ReplicaSet
  • LAB: Scale the Nginx ReplicaSet
  • Autoscaling a ReplicaSet using the Horizontal Pod Autoscaler (HPA)
  • LAB: Autoscaling the Nginx ReplicaSet using the HPA
Deployments, RollingUpdate, Scaling & Autoscaling
  • Deployments
  • Deployment Strategies
  • RollingUpdate
  • Deployment Spec
  • LAB: Create the Nginx Deployment
  • LAB: Update the Nginx Deployment
  • LAB: Rollback a Deployment
  • LAB: Scaling and Cleaning up the Nginx Deployment
  • LAB: Autoscaling the Nginx Deployment
Services, Service Discovery and Publishing Services
  • What's a Service?
  • What's a ClusterIP?
  • Define a Service
  • LAB: Create a Nginx Service
  • Service Discovery
  • LAB: Service Discovery
  • Service Networking
  • Publishing Services
  • LAB: Publish service using NodePort
  • LAB: Securely publish service using the AWS ELB
Ingress
  • What's an Ingress?
  • What's an Ingress Controller?