
Explore six practical reasons to take this aws eks masterclass, featuring hands-on demos using Terraform, Ansible, and Jenkins pipelines, with best practices for security, reliability, and resilience.
Describe my background as a cloud software engineer with 6.5 years, detailing education, internships at BlackBerry and Microsoft, and expertise in Java, C++, Python, JavaScript, Terraform, Kubernetes, OpenShift, and CI/CD.
Explore the Kubernetes master and worker architecture, detailing the master node, worker nodes, and how container workloads are managed, with metrics reported back.
Explore the Kubernetes master node (control plane) components—api server, etcd, scheduler, and controllers—and how the api server authenticates requests, stores state, and schedules pods to nodes to run in containers.
Examine the Kubernetes worker node data plane, detailing the container runtime and per-node agents that spin up containers and respond to commands via a command-line interface.
Recap Kubernetes objects—pods, deployments, services, ingress, and configmaps—and explain zero-downtime rolling updates with replicasets and static IP load balancing.
Create an AWS account and an IAM user with programmatic and console access, generate access keys, and attach an administrator policy, while noting secure handling and IaC use for EKS.
Install the AWS, aws-iam-authenticator, kubectl, and eksctl CLIs via brew or chocolatey, configure access keys and a default region, and verify setup to create an EKS cluster.
Create an AWS EKS cluster with eksctl by configuring region, instance type, and node count, then enable eks managed nodes and review cluster details in the console.
Explore how a multi-AZ VPC is configured for EKS, with three public and three private subnets across availability zones, including master nodes, worker groups, security groups, and routing.
Navigate the eks console to manage clusters, select regions, and view api server endpoints; review iam roles as service accounts, certificate authority, vpc subnets, and default logging and tags.
Discover how Helm charts bundle Kubernetes resources into a single deployable artifact. Learn chart anatomy, externalizing values, and templated deployment of components like deployments, services, ingresses, and more.
Explore helm basics by adding repos, searching charts, and deploying nginx with helm install; then upgrade, view history, roll back, and inspect generated manifests for safe Kubernetes management.
Deploy the Kubernetes dashboard to visualize namespaces, pods, deployments, and services, making it easier to understand and monitor a cluster before deploying your application.
Install the metrics server to enable the dashboard to pull CPU and memory metrics. Deploy core components from a public GitHub YAML with kubectl apply in the kube-system namespace.
Install Kubernetes dashboard v2, configure the namespace and secrets, and access the dashboard via kubectl proxy with a token for authentication.
Create and bind rbac roles to enable admin access for the dashboard and login in an eks cluster, using service accounts, cluster role bindings, and admin permissions.
Discover how the Kubernetes dashboard exposes namespace-based metrics, including CPU and memory, and use logs and exec into shell to inspect pods and containers within an AWS EKS environment.
Deploy a master and slave replicas and a frontend guestbook on an AWS EKS cluster. Expose the services via a public AWS ELB and resolve to a public DNS.
Explain guestbook app architecture on aws eks, showing three replica pods behind a service and load balancer, in a vpc with public subnets and redis in private subnets.
Explore why ingress controllers enable layer seven load balancing with a single load balancer for multiple services. Production practices suggest reliable options like EIO, Gateway, or traffic over Engine X.
Install the Engine X ingress controller using a Helm chart, create the Ingenix English controller namespace, and verify deployments and a LoadBalancer service to enable host-based load balancing.
Create an ingress resource YAML to enable L7 http path and host routing through the ingress controller to the guestbook backend. Validate access via the ingress DNS.
Demonstrates enabling ssl termination at an AWS ELB by provisioning a self-signed certificate, configuring ingress controller annotations, and upgrading the Helm deployment to terminate at the load balancer.
Fix 400 bad request by routing http to the https port: set service target ports to 80, enable ssl termination at load balancer, and update the helm configuration and certificate.
Enable AWS ELB access logs for Kubernetes workloads by creating an s3 bucket with a bucket policy and updating service annotations via Helm overrides to monitor traffic and errors.
Highlights production limitations of nginx ingress controllers across multiple environments, including slow configuration reloads and maintenance overhead, and promotes Istio service mesh with envoy for secure, observable traffic.
Recap the ingress controller, ssl, and istio service mesh. Learn to enable end-to-end https from edge to internal services via an ingress gateway.
Explore security for deploying apps by authenticating users to a Kubernetes cluster, using an IAM authenticator and the aws-auth ConfigMap to map external users to cluster roles.
Demonstrate how an aws-iam-authenticator powers kubernetes authentication by passing a token to an in-cluster authenticator, mapping IAM users to Kubernetes identities, then validating access with RBAC.
Explore kubeconfig and the aws-auth ConfigMap to configure authorization in kubernetes, mapping users and roles, using authenticator tokens, and managing production and demo environments.
Create a new AWS IAM user with programmatic access, generate an access key and secret key, and add a new credentials profile to verify identity against the EKS cluster.
This lecture demonstrates why promoting an IAM user to a Kubernetes cluster admin is an anti-pattern, showing how mapUser bindings and system masters grant access, and highlighting safer RBAC practices.
Demonstrates restricting Kubernetes user access with RBAC by creating a ClusterRoleBinding, assigning roles like edit or view to a user, and applying through a YAML manifest.
Bind users to cluster roles via the aws-auth ConfigMap to control access, granting viewer or editor permissions and enforcing namespace and cluster scope restrictions.
Explore how AWS IAM authentication and authorization work in a K8s cluster on EKS, using the IAM authenticator to verify users and map them to roles with short-lived credentials.
Install Prometheus with a Helm chart, create a dedicated namespace, and deploy the Prometheus server and Grafana to monitor the cluster and visualize metrics via dashboards.
Install Grafana with Helm on Kubernetes, create a dedicated namespace, expose it via port-forward, retrieve the admin password from a secret, configure Prometheus as a data source, and import dashboards.
Enable master components logging for the kubernetes control plane, including the api server, authenticator, and controller-manager, using the X console and CloudWatch logs for observability on AWS EKS.
*Updated the course material on Jan 2024
If I summarize this course in one sentence?
Learn production-proof AWS EKS Best Practices using Handson concepts and labs (e.g. Helm, Dashboard, Ingress, SSL Termination, AWS ELB Logging, RBAC, IRSA, CA, HPA, Monitoring).
☆Please check preview videos to see if this course is really for you☆
Are you one of the below?
You want to learn how to use managed Kubernetes cluster on AWS EKS
You feel overwhelmed and don't know where to start with AWS EKS
You learned Kubernetes with minikube but don't know how to deploy K8s cluster on AWS
You want to know production-ready AWS EKS best Practices such as SSL Termination at AWS ELB, RBAC (Role Based Access Control), IRSA (IAM Role for Service Account), CA (Cluster Autoscaler using IRSA)
You want to be able to configure SSL for AWS ELB using K8s ingress controller
You want to be able to give right permissions to AWS IAM users in K8s cluster using ClusterRoleBinding (RBAC: Role Based Access Control)
You don't know how pod-level AWS IAM authentication (IRSA: IAM Role for Service Account) works
You want to learn how to monitor K8s apps using Prometheus and Grafana
Who should take this course
you have decent knowledge of AWS (EC2, VPC, subnet, load balancer, IAM, etc)
you have learned Kubernetes fundamentals (pod, service, deployment, ingress, configmap, role, etc)
you don't know how to go about learning Kubernetes on AWS
you have development experience in Kubernetes YAML resources
you want to learn about production-ready best practices for AWS EKS regarding security, monitoring, scaling, and performance
you want to learn ins and outs of AWS EKS from a cloud DevOps working at an US company in SF
you want to improve your AWS EKS knowledge and skills
who should NOT need to take this course
you already know a lot of AWS EKS
you are not planning on using Kuberenetes on AWS
you have never used AWS (EC2, VPC, subnet, load balancer, IAM, etc) before
you have never deployed pods in Kubernetes cluster
In this course, you will learn various aspects of AWS EKS best practices such as:
how to setup K8s dashboard with RBAC
how to monitor K8s cluster and apps using Prometheus and Grafana
how to configure SSL Termination at AWS ELB created by ingress controller using k8s service YAML
how to authenticate and authorize AWS IAM users to AWS EKS cluster using aws-iam-authenticator, aws-auth ConfigMap, and RBAC (Role Based Access Control) aka ClusterRoleBinding
how to authorize Pods to AWS resources by creating pod-level IAM permission using IRSA (IAM Role for Service Account)
how to scale EKS worker nodes automatically using CA (Cluster Autoscaler using IRSA) and how to stress test it
how to scale pods automatically using HPA (horizontal pod autoscaler) and how to stress test it
why you shouldn't use eksctl managed worker nodes in production
why you should be careful when using EKS's default AWS-VPC-CNI plugin, because Pod IP pool gets exhausted based on EC2 instance type
6 Reasons why you should take this course:
1. Instructed by a cloud DevOps engineer (with CKA and certified AWS DevOps pro) working at US company in SF
I have been pretty handson with Kubernetes, AWS, and AWS EKS. With 6.5+ industry experience in both North America and Europe, I breakdown and explain hard concepts using diagrams
2. Abstract Concepts Explained with Diagrams
You usually don't find a solution in multiple languages. Catered for Java backend developers and Python developers. Also beneficial if you know one of them but also want to learn the other.
3. Updated Knowledge about AWS EKS in 2020
Some of the tools (such as kube2iam for pod-level IAM permissions) are outdated. I will demonstrate 2020-updated version of tools and concepts.
4. A Little Detail Matters in Production
When setting up AWS EKS cluster for production, you need to pay lots of attentions to security, reliability, and resilience. I have included how to secure HTTP connection to AWS ELB, how to enable AWS ELB access logs, how to configure pod-level IAM permission using IRSA, how to authorize AWS IAM users to K8s cluster using RBAC, how to setup CA with IRSAetc
5. Tons of handson!
I won't bore you with dry lectures. Instead every concepts are paired with handson demo.
6. Entire course under SIX HOURS
I tried to make this course compact and concise so students can learn the concepts and handson skills in shorted amount of time, because I know a life of software engineer is already pretty busy :)
My background & Education & Career experience
Cloud DevOps Software Engineer with 6.5+ years experience
Bachelor of Science in Computing Science from a Canadian university
Knows Java, C#, C++, Bash, Python, JavaScript, Terraform, IaC
Expert in AWS (holds AWS DevOps Professional certification) and Kubernetes (holds Certified Kubernetes Administrator, CKA)
I will see you inside!