Hands-On Kubernetes Essentials with AWS
Contact us to book this courseOn-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).
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).
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
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
- Deploying New Versions
- 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