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