Kubernetes Essentials for AWS
Contact us to book this courseCloud Computing
On-Site, Virtual
3 days
Kubernetes is an open-source, cloud-agnostic container orchestration system. It is the industry standard for deploying and managing cloud-native applications across environments. This course provides the knowledge necessary to use Docker and Kubernetes to deploy your microservice applications on Kubernetes clusters. While concepts apply across all platforms, hands-on labs and demonstrations in this course use Minikube and the capstone lab will deploy the case study app to Amazon Elastic Kubernetes Service (Amazon EKS).
Learning Objectives
- Leverage Kubernetes for container orchestration and automated deployment
 - Build, run, and deploy container applications using Docker
 - Develop and test Kubernetes-based applications locally with Minikube
 - Automate application management using the kubectl CLI and configuration files
 - Deploy scalable, fault-tolerant applications using Deployments, Services, Jobs, CronJobs, and DaemonSets
 - Perform zero-downtime migrations with rolling updates, blue/green, and canary deployments
 - Persist application data with Persistent Volumes, StatefulSets, ConfigMaps, and Secrets
 - Simplify Kubernetes deployments using Helm
 - Manage Kubernetes security with Role-Based Access Control (RBAC)
 - Enhance Kubernetes networking with network policies
 
Who Should Attend
Architects, engineers, and developers who want to learn Kubernetes to build cloud-native, microservice applications and automate their deployment using Kubernetes on AWS using Elastic Kubernetes Service (Amazon EKS).
Hands-On Labs
This class includes hands-on labs throughout. Students will work on a case study application and enhance it throughout the course. The labs emphasize Kubernetes fundamentals.
Course outline
- Introduction to Kubernetes
- Containerization and Its Advantages
 - Container Orchestration
 
 - Kubernetes Advantages
- Open-Source and Portable
 - Automation and Scalability
 - Cloud-Agnostic Concepts
 
 - Lab: Running the course case study
 
- Docker Images
- Basic Docker Commands
 - Building Docker Images with Dockerfile
 
 - Docker Containers
- Running and Managing Containers
 - Deleting Containers and Images
 - Lab: Building Docker Images
 
 - Deploying Docker Images
- Container Registries
 - Push and Pull Workflow
 - Lab: Using a Container Registry
 
 
- Cluster Architecture
- Clusters
 - Control Plane
 - Worker Nodes
 
 - Configuring Clusters
- Software Requirements
 - Configuring Cluster
 - Minikube
 
 - Managed Clusters in the Cloud
- Amazon EKS
 - Provisioning Amazon EKS with eksctl
 - Lab: Creating a Cluster
 
 
- Kubernetes Application Architecture
- Objects
 - Pods
 - Deployments
 - Services
 - Namespaces
 - Configurations
 
 - Using kubectl
- Basic Commands
 - Creating Deployments
 - Creating Services
 - Retrieving Information
 - Executing Commands within a Pod
 - Accessing Pod Logs
 - Deleting Resources
 - Configuration Basics
 - Deploying Resources with Configuration
 - Lab: Using the kubectl CLI
 
 
- Deployments
- Basic Configuration
 - Labels
 - Replica Sets
 - Configuring Pods
 - Lab: Creating a Deployment
 
 - Exposing Deployments
- Kubernetes Services
 - ClusterIP
 - NodePort
 - LoadBalancer
 - Service Configuration
 - Lab: Creating a ClusterIP and Load Balancer
 
 - Controlling Resources
- Resources
 - Requests
 - Limits
 
 - Fault-Tolerance and Scalability
- Liveness Probes
 - Readiness Probes
 - Auto-healing
 - Autoscaling
 - Creating a Horizontal Pod Autoscaler using the CLI
 - Configuring Autoscalers
 - Lab: Adding Resource Limits and Autoscaling
 
 
- Deploying New Versions
- Update Policies
 - Rolling Updates
 - Accessing Version History
 - Rolling Back Deployments
 
 - Testing New Versions
- Blue/Green Deployments
 - Canary Deployments
 - Lab: Performing Rolling Updates and Blue/Green Deployments
 
 
- Allocating Disk Space for Pods
- Persistent Volumes
 - Persistent Volume Claims
 - Storage Types
 - Mounting Volumes
 - MySQL Example
 
 - StatefulSets
- Configuration
 - Volume Claim Templates
 - Cassandra Example
 - Lab: Deploying StatefulSets
 
 - Configuration Data
- ConfigMaps
 - Secrets
 
 
- What is Helm?
 - Charts
 - Installing Applications with Helm
 - Deleting Applications with Helm
 - Lab: Using Helm to Install a Database
 
- Jobs
- Configuration
 - Use Cases
 
 - CronJobs
- Configuration
 - Use Cases
 - Lab: Running Kubernetes Jobs
 
 - DaemonSets
- Configuration
 - Use Cases
 - Lab: Modifying the case study to use the Database
 
 
- Role-Based Access Control
- Roles
 - Permissions
 - RoleBinding
 - ClusterRoles and ClusterRoleBindings
 - Lab: Network Policies
 
 - Network Policies
- Controlling Pod Ingress and Egress Network Traffic
 - Restricting Network Communication Between Namespaces
 - Lab: Network Policies
 
 - Istio Introduction
- Benefits
 - Features
 
 
- Provisioning Amazon EKS with eksctl
 - Capstone Lab: Deploy the Case Study to Amazon EKS