
Container orchestrators manage deployment, redundancy, scaling, load balancing, health monitoring, and service discovery for Docker containers across hosts; Kubernetes stands as the most popular option.
Understand how pods are the smallest deployable unit in Kubernetes, hosting a container within a node, how each pod has a unique IP, and how scaling adds more pods.
Access the course resources via the attached zip and GitHub link, with demo folders for DevOps Flow, Ingress, security, and Nginx deployments to follow along.
Explore Kubernetes service types: cluster ip, nodeport, and load balancer, and learn how label selectors distribute traffic across pods with external access via node ports or AWS Elastic Load Balancer.
Deploy a node port service with kubectl, test across EC2 instances, and configure security groups to expose port 32000 so you can access nginx from any node's public IP.
Compare declarative and imperative approaches to deploying Kubernetes resources using manifests with kubectl apply. Keep manifests as the source of truth and infrastructure as code for reproducible deployments.
Explore how eks provides a highly available, aws managed control plane and supports self-managed, managed node groups, or fargate data planes, while integrating with the aws ecosystem and kubernetes tooling.
Please check out AWS pricing page for latest price numbers
local using awscli, from ec2, from cloud9 etc.
Explore eksctl, a cli that quickly spins up clusters on eks, abstracting vpc, subnets, and Fargate profiles, with CloudFormation handling behind the scenes and support for managed node groups.
Follow amazon’s guide to install kubectl on mac, linux, and windows; on windows, use curl to download the binary into your path and verify with kubectl version.
Install eksctl by configuring the AWS CLI and kubectl; macOS/Linux use curl, Windows uses chocolatey, then verify the version before demos.
Spin up your first Kubernetes cluster with eksctl and kubectl, provisioning vpc subnets and security groups, and create default and managed node groups via config files or the command line.
Learn how pod limits per node depend on EC2 instance type, such as t3 micro with few pods, causing deployments to stall; use m5 large for larger demos.
Explore how eks managed node groups automate provisioning and lifecycle management of worker nodes, use amis with security patches, and enable updates with autoscaling and high availability in one click.
Demonstrates creating a cluster with a managed node group using eksctl, upgrading the control plane from 1.14 to 1.15, and performing rolling updates with new AMIs while keeping pods running.
Learn how Helm, a package manager for Kubernetes, uses charts to package, install, and upgrade complex applications with templates and input parameters.
Install helm, verify the installation, search and add the Bitnami Nginx chart, deploy it to your cluster, and access the Nginx service via the load balancer's external IP.
Explore how Kubernetes scales with horizontal pod autoscaler, pod CPU requests and limits, and deployment manifests, contrasting in-situ auto scaling with container scaling and an HPA demo.
Demonstrates deploying the Kubernetes metrics server, configuring and observing a horizontal pod autoscaler, and scaling pods in response to CPU load on an EKS cluster.
Demonstrate how the open source cluster autoscaler and AWS cloud implementation enable EKS to scale nodes based on pod CPU requests, with autoscaling groups and scale-up plus cooldown behavior.
Explore the vertical pod autoscaler in Kubernetes, contrast vertical and horizontal scaling, and learn how VPA recommends CPU and memory while managing pod restarts, with a practical Goldilocks demo.
Explore the vertical pod autoscaler with a standalone demo and the Goldilocks tool to optimize pod resources in a Kubernetes deployment.
Explore how Goldilocks visualizes vertical pod autoscaler recommendations in a dashboard, then install and label VPA-enabled namespaces, review CPU and memory suggestions for non-prod environments.
Explore Karpenter, the next-gen autoscaler for EKS, as it provisions right-sized nodes, speeds pod scheduling, and handles GPU workloads without separate node groups, outperforming traditional autoscaling.
Learn how EKS auto mode automates control plane add-ons and managed worker nodes, automatically bin packs and right-sizes pods, and contrasts with ECS Fargate’s lack of add-on management.
Demonstrates running a simple nginx workload on EKS auto, creating an EC2 instance on demand, and pulling images from Docker Hub via NAT gateway and route table.
Learn how to centralize Kubernetes logging in EKS using a DaemonSet that ships application and system logs to backends like Elasticsearch, Splunk, CloudWatch, or Kinesis.
Associate OIDC provider:
eksctl utils associate-iam-oidc-provider \ --region <AWS REGION> \
--cluster <CLUSTER NAME> \
--approve
Create IRSA for fluent-bit:
eksctl create iamserviceaccount \
--cluster <CLUSTER NAME> \
--namespace amazon-cloudwatch \
--name fluent-bit \
--attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
--override-existing-serviceaccounts \
--approve
Enable control plane logging in the EKS console, enable logs for API server, controller manager, audit, authenticator, and scheduler in CloudWatch, and learn to stream to Elasticsearch for Kibana dashboards.
Explore the default Kubernetes dashboard, a web-based UI to view cluster resources, and demonstrate creating or modifying pods, deployments, and jobs.
This demo shows deploying the Kubernetes dashboard, creating a sample user with a bearer token, and using kubectl proxy to access deployments, pods, and nginx.
Explore the new EKS resource view, which shows all cluster resources—from pods and deployments to config maps and secrets—while noting it currently supports viewing, not deploying workloads.
Prometheus provides Kubernetes monitoring by collecting metrics in a time-series database, enabling queries, graphs, alerts, and open source integration; it runs as a daemon pod in the cluster.
Install Prometheus with Helm, verify control plane metrics and memory usage, forward the Prometheus console to your local machine, and preview Grafana dashboards for Prometheus data.
Please follow the instructions on https://github.com/saha-rajdeep/eks-demos/blob/master/Install_grafana.txt to install new Grafana version
Explore CloudWatch container insights for monitoring Kubernetes clusters without third-party tools, using built-in dashboards, CPU and memory metrics, and log insights with a one-click install and hands-on EKS/ECS demo.
Adot, the aws distro for open telemetry, provides a single super agent to collect logs, metrics, and traces and route them via receiver, processor, and exporter pipelines.
Learn how namespaces create virtual clusters within a single Kubernetes cluster, enabling per-namespace resource quotas and access control. The lecture shows applying namespaces with manifests and kubectl, including default namespace.
Explore Kubernetes ingress, which manages http(s) access to services via host and path routing, TLS, WebSockets, and http/2, using the ELB ingress controller with a single application load balancer.
Follow an AWS blog in this alb ingress demo to deploy alb ingress controller, RBAC and IAM policies, and an ingress resource for a 2048 game behind a nodeport service.
Configure an ingress with multiple paths to two deployments, learn path ordering, and enable IP mode to route traffic directly to pod IPs on EKS.
Demonstrate routing multiple paths to the same pod using a Kubernetes ingress, mapping front end and back end to one service, with a DevOps workflow from setup to deployment.
Learn how a service mesh uses sidecar proxies to manage pod-to-pod traffic with a data plane and control plane, enabling canary releases, security, discovery, tracing, and circuit breakers.
Understand how the container runtime pulls images and runs containers, then use the container network interface (CNI) to assign pod IPs and enable Kubernetes networking across nodes.
Use kubernetes network policies with aws vpc cni to isolate multi-tenant pods via ingress and egress rules and ip blocks, applying policies to labeled pods in the correct namespace.
Explore Kubernetes network policy with a hands-on EKS demo, showing how to restrict pod-to-pod traffic across namespaces using ingress rules, namespace and pod selectors, and Calico integration.
Optimize Kubernetes costs on EKS via right sizing, auto scaling, and downscaling, with DevOps automation, plus EC2 purchase options to reduce worker node costs.
Explore Kubecost to optimize Kubernetes costs with actionable right-sizing recommendations. See cost efficiency metrics, dashboards, and alerts to reduce waste across namespaces and pods.
Learn how Kubecost now collaborates with EKS to deliver cost monitoring for clusters, using a single helm package for easy installation.
Explore popular Kubernetes tools across DevOps, security, ingress, logging, monitoring, and cost optimization, including Jenkins, Spinnaker, Twistlock, Nginx, Fluentd, New Relic, Datadog, Sysdig, and Kube Cost.
Explore X blueprints, an open source framework that configures and deploys clusters with best practices. Use Terraform and CDK to deploy add-ons like Prometheus and fluent bit, including serverless options.
In this video we will learn about admission controllers, mutating and validating webhooks, challenges. Then we will understand what is OPA (Open Policy Agent), Gatekeeper, and Kyverno.
discover AWS's public container roadmap for EKS and Fargate, see how features progress from researching to shipped on GitHub, and learn about preview and deployment statuses.
Explore an optional, advanced demo of running a gen ai model on eks, training a dreambooth diffusion model in a Jupyter notebook, and serving with Ray on Kubernetes.
Configure iam policies for users and groups to grant admin, developer, and tester access; attach ec2 service roles to enable ec2 to access S3, Dynamo, and other services.
Let's unpack Kubernetes Security by learning RBAC, IRSA, RoleBinding Vs ClusterRole, application security vs user permission etc. This is a MUST WATCH lecture.
Learn how AWS IAM authenticator simplifies Kubernetes access by using IAM credentials, issues STS tokens, and enforces RBAC with CloudTrail auditing and MFA.
Grant admin access to an iam user on an eks cluster by editing the aws auth config map, mapping the user to system:masters, and validating access via kubectl.
Explore granting granular Kubernetes access with RBAC by creating a deployment role and binding it to a user, mapping to AWS IAM, in the frontend namespace.
Secure container images with AWS ECR scans, from basic scans to enhanced inspector scans that cover operating system and programming packages, with automated remediation via EventBridge and Lambda.
learn how to scan eks worker nodes for operating system vulnerabilities on amis and for node security configurations and rbac policies with kube-bench.
We will learn about runtime security, and also see a demo of it using Amazon GuardDuty with our EKS cluster
Compare ECS Fargate versus regular ECS clusters, detailing the control plane, worker nodes, daemonsets, sidecars, EFS, subnets, and cost considerations.
Demonstrates creating an eksctl EKS cluster with a fargate profile, adding a front end namespace, deploying nginx on fargate, and observing fargate IPs with no ec2 nodes or load balancer.
Lambda vs Fargate
Students who know about CodeBuild and Codepipeline can skip the service lectures and go straight to EKS DevOps Flow-1
Video need to be changed
Explore the four DevOps phases from code check-in to production, including build with unit tests and artifacts, testing, and deployment, and define CI, CD, and continuous deployment.
Discover why devops on AWS delivers fully managed, scalable services with secure IAM and KMS, pay-as-you-go pricing, and seamless code integration via codecommit, codebuild, codedeploy, and codepipeline.
Learn how Amazon Elastic Container Registry (ECR) stores, secures, and manages Docker images, offering a managed, scalable, and integrated workflow for deploying containers with ECS, EKS, or on premises.
Explore AWS CodeCommit as a fully managed, git-based repository that scales automatically, encrypts data in transit and at rest, and enables collaboration with pull requests and AWS service integrations.
Discover how AWS CodeBuild offers a fully managed CI service that builds code, runs tests, and packages software with pay-as-you-go pricing, and compare it to Jenkins' self-managed VM approach.
Learn how AWS CodeBuild runs a build from a build project and sources to a container, using a YAML build spec, producing artifacts in S3 and logs in CloudWatch.
Explore AWS CodePipeline, a fully managed CI/CD service that automates build, test, and deploy stages while modeling and orchestrating your release process, and integrates with Jenkins and GitHub.
Explore CI/CD flow one that automates deploying code to ECS with CodeBuild, ECR, and kubectl. Dockerize, push to ECR, and update Kubernetes deployment YAML, then apply with kubectl.
Create IAM roles for CodePipeline, CodeBuild, and kubectl access in the EKS cluster, then use CloudFormation to provision and edit the config map for kubectl access.
Create a CI/CD pipeline using code commit, code build, and docker push to ECR, then deploy to ECS with kubectl via the buildspec and deployment YAML.
Explore how GitOps uses Git to define Kubernetes state with manifests and container images, enabling automatic rollback, continuous deployment, and secure, auditable operations via Flux or Argo.
Explain and demonstrate a real world gitops workflow using GitHub, Jenkins, Docker, and Argo CD to automate image builds, manifest updates, and continuous deployment in Kubernetes.
https://github.com/saha-rajdeep/kubernetescode
Install Jenkins, troubleshoot common commands, and connect to Docker Hub and GitHub by configuring global credentials and a personal access token for automated builds.
Create Jenkins jobs by pulling a pipeline script from GitHub, configure the Docker tag parameter and update the manifest, then push the image to Docker Hub.
Install Argo CD on a Kubernetes cluster, access the UI via localhost with port forwarding, and retrieve the admin password by decoding a base64 token.
Configure a GitHub webhook in Jenkins to trigger automated builds and deployments, then observe image builds, object manifests, and Argo CD update the pods.
[Dec 2024] EKS Auto Mode Lectures with Multiple Demos (Re:Invent 2024 Announcement)
[May 2024] EKS Upgrade Guide
[Oct 2023] Gen AI on EKS demo, FluentBit Demo with Real Troubleshooting, FluentD Vs FluentBit updated
[Sep 2023] Updated Network Policy lecture for native EKS support
[Jun 2023] Added Kubernetes DR, Admission Control/OPA/Kyverno, Container Image Security, Node Security, Runtime Security lectures with Demo
[Dec 2022] Added Re:Invent 2022 Updates
[Nov 2022] Added Scaling EKS Fargate, Kubecost and EKS collaboration, EKS Blueprints, EKS Blueprints Demo
[Jan 2022] Added GitOps Chapter with Real World Demo!
What will you achieve from this course?
Welcome to Rocking Kubernetes with Amazon EKS, Fargate, And DevOps course:
Learn Kubernetes concepts to understand EKS, all in one course
Master EKS in it's entirety - basics, advanced, security, Fargate
Tips, tricks, learning from real world Cloud Architect
In real-world, learning EKS theory is not enough, you need to know how to run it using DevOps. This course will teach you how to deploy dockerized apps using DevOps Tools
About the instructor
Rajdeep Saha is a Principal Solutions Architect at AWS. He has migrated and designed numerous mission-critical apps in the cloud, handling millions of transactions. Rajdeep has presented at the biggest stages, such as AWS Re:Invent, AWS Summits, and Kubecon. He has authored multiple bestselling courses and mentored students successfully to cloud jobs, including FAANG companies. Rajdeep also runs a successful YouTube channel named "Cloud With Raj" with over 100K+ subscribers. He has over 250,000+ followers across the globe. Rajdeep takes pride in teaching real-world solutions and learnings beyond just theoretical information. You are in capable hands! All opinions are Rajdeep's own.
Course Structure
This course has eight main areas - Kubernetes Basics, EKS Basics, Logging And Monitoring, EKS Advanced Concepts, Securing EKS, Fargate, Deploying EKS with DevOps, and Real World EKS Projects.
Please check out the list of lectures for detailed breakdown of each area.
This is the course that could take your career to next level. Let's have some fun and build some awesome stuff in cloud together!