Course Description:
- This comprehensive 25-day course will teach you how to deploy, manage, and troubleshoot Kubernetes clusters on AWS, from foundational concepts to advanced techniques.
- You’ll start with the basics, progressing through the installation of essential tools, setting up Amazon EKS, and deploying applications.
- As you advance, you'll dive into topics such as scaling, networking, and monitoring.
- What is Kubernetes
- Why Kubernetes
- Advantages of Kubernetes
- Kubernetes Architecture
- Creation of AWS IAM User
- Installation of AWS CLI in Windows
- Installation of git in Linux
- Installation of GitBash in Windows
- Installation of Docker in Linux
- Installation of Docker in Windows
- Installation of kubectl in Linux
- Installation of kubectl in Windows
- Installation of Helm 3 in Linux
- Installation of Helm 3 in Windows
- Introduction about AWS EKS
- Creation of AWS EKS Cluster
- Adding Worker Nodes to EKS Cluster
- How to Connect to an Amazon EKS Cluster Using CLI
- Deleting an Amazon EKS Cluster
- Kubernetes Objects and API Versions
- Lab Session - Creating a Pod Using Imperative Commands in Kubernetes
- Lab Session - Creating Pods with YAML using Declarative Syntax
- Developing Kubernetes Manifest Files using Editor
- Lab Session - Deployments
- Lab Session - Updating and Rolling Back Deployments
- What is Kubernetes Namespace
- Lab Session - Creating and deleting Kubernetes Namespace
- Deploy the sample application in specific namespace
- What are Resource Quotas?
- Why use Resource Quotas for resource management?
- Resource Quotas vs. LimitRanges
- What are Kubernetes Services
- Types of Kubernetes Services
- What is ClusterIP
- Lab Session - ClusterIP
- Lab Session - NodePort
- Lab Session - Load Balancer
- What is Kubernetes Ingress Controller
- Ingress Controller Features
- Lab Session - Installing and Configuring an Ingress Controller
- Lab Session - Deploy Sample Ingress Resource
- Lab Session - Deploy Sample Ingress Resource with SSL
- Lab Session - Deletion of Sample Ingress Resource
- What is ExternalDNS?
- Why we use ExternalDNS?
- Lab Session - Deploy External DNS in Kubernetes
- Lab Session - Clean up External DNS in Kubernetes
- Introduction to Kubernetes ConfigMaps
- Lab Session - Kubernetes ConfigMaps
- Introduction to Kubernetes Secrets
- Lab Session - Kubernetes Secrets
- What are Kubernetes DaemonSets
- Purpose of DaemonSets
- Lab Session - Deploying DaemonSets
- Lab Session - Clean up DaemonSets
- What is Kubernetes StatefulSets
- Use Cases for StatefulSets
- Lab Session - Kubernetes StatefulSets
- Overview of Volumes
- Types of Volumes
- What is Persistent Volumes and Claims
- Lab Session - Provisioning and Managing PVs and PVCs
- What is Storage Classes
- Lab Session - Storage Classes
- What is Metrics Server
- Metrics Server Architecture
- Resource Metrics in Kubernetes
- Lab Session - Installation and Configuration of Metrics Server
- Introduction to Horizontal Pod Autoscaling (HPA)
- Lab Session - Creating and Managing HPA Resources
- What is Cluster Autoscaler
- Create IAM OIDC provider
- Create IAM policy for Cluster Autoscaler
- Create IAM role for Cluster Autoscaler
- Deploy Kubernetes Cluster Autoscaler
- Create an Nginx deployment to test the Cluster Autoscaler functionality
- What are Probes in Kubernetes
- Types of Probes (Readiness, Liveness)
- Lab Session - Configuring Readiness Probes
- Lab Session - Configuring Liveness Probes
- What is RBAC in Kubernetes?
- RBAC components: Roles, RoleBindings, ClusterRoles, and ClusterRoleBindings
- What is Role and RoleBinding in Kubernetes
- Lab Session - Creating and testing Roles and RoleBindings
- What are ClusterRoles and ClusterRoleBindings
- Lab Session - Creating and testing ClusterRoles and ClusterRoleBindings
- Explanation of EFK: Elasticsearch, Fluentd, Kibana
- What is Elasticsearch?
- What is Kibana?
- Lab Session - Setting up Elasticsearch and Kibana in AWS
- What is Fluentd?
- Lab Session - Deploying Fluentd as a Daemonset for Log Collection and sending logs to Elasticsearch
- What is Monitoring in Kubernetes
- What is Prometheus
- What is Grafana?
- Installation of Prometheus and Grafana using Helm Chart
- What are Taints and Tolerations
- Lab Session - Applying Taints to Nodes
- Creating Toleration Specifications
- Lab Session - Implementing Taints and Tolerations
- Node Affinity and Node Anti-Affinity in Kubernetes
- Lab Session - Implementing Node Affinity and Node Anti-Affinity
- Deploying an Application to EKS with an Image from DockerHub
- Deploying an Application to EKS with an Image from AWS ECR
- Deploying Argo CD on Kubernetes
- Preparing for EKS Upgrade
- Lab Session - Upgrading AWS EKS
- Setting Up AWS EKS with eksctl
- Container image pull fails with 'image not found' or 'access denied' errors: How to troubleshoot and resolve this issue
- Liveness and readiness probe failed
- Connection refused
- Service not accessible externally: How to troubleshoot?
- Disk pressure / Node out of disk
- Node is Not Ready: How to investigate?
- Ingress resource not being created
- Kubelet NotReady