|
1 | | -# AWS Elastic Kubernetes Service - Masterclass |
| 1 | +# AWS EKS - Elastic Kubernetes Service - Masterclass |
2 | 2 |
|
3 | 3 | ## Course Modules |
4 | 4 |
|
| 5 | +| S.No | AWS Service Name | |
| 6 | +| ---- | ---------------- | |
| 7 | +| 1. | Create AWS EKS Cluster using eksctl CLI | |
| 8 | +| 2. | [Docker Fundamentals](https://github.com/stacksimplify/docker-fundamentals) | |
| 9 | +| 3. | [Kubernetes Fundamentals](https://github.com/stacksimplify/kubernetes-fundamentals) | |
| 10 | +| 4. | EKS Storage with AWS EBS CSI Driver | |
| 11 | +| 5. | Kubernetes Important Concepts for Application Deployments | |
| 12 | +| 5.1 | Kubernetes - Secrets | |
| 13 | +| 5.2 | Kubernetes - Init Containers | |
| 14 | +| 5.3 | Kubernetes - Liveness & Readiness Probes | |
| 15 | +| 5.4 | Kubernetes - Requests & Limits | |
| 16 | +| 5.5 | Kubernetes - Namespaces, Limit Range and Resource Quota | |
| 17 | +| 6. | EKS Storage with AWS RDS MySQL Database | |
| 18 | +| 7. | Load Balancing using CLB & NLB | |
| 19 | +| 7.1 | Load Balancing using CLB - AWS Classic Load Balancer | |
| 20 | +| 7.2 | Load Balancing using NLB - AWS Network Load Balancer | |
| 21 | +| 8. | Load Balancing using ALB - AWS Application Load Balancer | |
| 22 | +| 8.1 | ALB Ingress Controller - Install | |
| 23 | +| 8.2 | ALB Ingress - Basics | |
| 24 | +| 8.3 | ALB Ingress - Context path based routing | |
| 25 | +| 8.4 | ALB Ingress - SSL | |
| 26 | +| 8.5 | ALB Ingress - SSL Redirect HTTP to HTTPS | |
| 27 | +| 8.6 | ALB Ingress - External DNS | |
| 28 | +| 9. | Deploy Kubernetes workloads on AWS Fargate Serverless | |
| 29 | +| 9.1 | AWS Fargate Profiles - Basic | |
| 30 | +| 9.2 | AWS Fargate Profiles - Advanced using YAML | |
| 31 | +| 10. | Build and Push Container to AWS ECR and use that in EKS | |
| 32 | +| 11. | DevOps with AWS Developer Tools CodeCommit, CodeBuild and CodePipeline | |
| 33 | +| 12. | Microservices Deployment on EKS - Service Discovery | |
| 34 | +| 13. | Microservices Distributed Tracing using AWS X-Ray | |
| 35 | +| 14. | Microservices Canary Deployments | |
| 36 | +| 15. | EKS HPA - Horizontal Pod Autosaler | |
| 37 | +| 16. | EKS VPA - Vertical Pod Autosaler | |
| 38 | +| 17. | EKS CA - Cluster Autosaler | |
| 39 | +| 18. | EKS Monitoring using CloudWatch Agent & Fluentd - Container Insights | |
| 40 | + |
| 41 | + |
| 42 | +## AWS Services Covered |
| 43 | + |
| 44 | +| S.No | AWS Service Name | |
| 45 | +| ---- | ---------------- | |
| 46 | +| 1. | AWS EKS - Elastic Kubernetes Service | |
| 47 | +| 2. | AWS EBS - Elastic Block Store | |
| 48 | +| 3. | AWS RDS - Relational Database Service MySQL | |
| 49 | +| 4. | AWS CLB - Classic Load Balancer | |
| 50 | +| 5. | AWS NLB - Network Load Balancer | |
| 51 | +| 6. | AWS ALB - Application Load Balancer | |
| 52 | +| 7. | AWS Fargate - Serverless | |
| 53 | +| 8. | AWS ECR - Elastic Container Registry | |
| 54 | +| 9. | AWS Developer Tool - CodeCommit | |
| 55 | +| 10. | AWS Developer Tool - CodeBuild | |
| 56 | +| 11. | AWS Developer Tool - CodePipeline | |
| 57 | +| 12. | AWS Developer Tool - CodePipeline | |
| 58 | +| 13. | AWS X-Ray | |
| 59 | +| 14. | AWS CloudWatch - Container Insights | |
| 60 | +| 15. | AWS CloudWatch - Log Groups & Log Insights | |
| 61 | +| 16. | AWS CloudWatch - Alarms | |
| 62 | +| 17. | AWS Route53 | |
| 63 | +| 18. | AWS Certificate Manager | |
| 64 | +| 19. | EKS CLI - eksctl | |
| 65 | + |
| 66 | + |
| 67 | +## Kubernetes Concepts Covered |
| 68 | + |
| 69 | +| S.No | Kubernetes Concept Name | |
| 70 | +| ---- | ------------------- | |
| 71 | +| 1. | Kubernetes Architecture | |
| 72 | +| 2. | Pods | |
| 73 | +| 3. | ReplicaSets | |
| 74 | +| 4. | Deployments | |
| 75 | +| 5. | Services - Node Port Service | |
| 76 | +| 6. | Services - Cluster IP Service | |
| 77 | +| 7. | Services - External Name Service | |
| 78 | +| 8. | Services - Ingress Service | |
| 79 | +| 9. | Services - Ingress SSL & SSL Redirect | |
| 80 | +| 10. | Services - Ingress & External DNS | |
| 81 | +| 11. | Imperative - with kubectl | |
| 82 | +| 12. | Declarative - Declarative with YAML | |
| 83 | +| 13. | Secrets | |
| 84 | +| 14. | Init Containers | |
| 85 | +| 15. | Liveness & Readiness Probes | |
| 86 | +| 16. | Requests & Limits | |
| 87 | +| 17. | Namespaces - Imperative | |
| 88 | +| 18. | Namespaces - Limit Range | |
| 89 | +| 19. | Namespaces - Resource Quota | |
| 90 | +| 20. | Storage Classes | |
| 91 | +| 21. | Persistent Volumes | |
| 92 | +| 22. | Persistent Volume Claims | |
| 93 | +| 23. | Services - Load Balancers | |
| 94 | +| 24. | Annotations | |
| 95 | +| 25. | Canary Deployments | |
| 96 | +| 26. | HPA - Horizontal Pod Autoscaler | |
| 97 | +| 27. | VPA - Vertical Pod Autoscaler | |
| 98 | +| 28. | CA - Cluster Autoscaler | |
| 99 | +| 29. | DaemonSets | |
| 100 | +| 30. | DaemonSets - Fluentd for logs | |
| 101 | +| 31. | Volumes | |
| 102 | +| 32. | Config Maps | |
| 103 | + |
5 | 104 | ## List of Docker Images on Docker Hub |
6 | 105 |
|
7 | 106 | | Application Name | Docker Image Name | |
|
34 | 133 | | DevOps Usecase | YOUR-AWS-ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/eks-devops-nginx:DATETIME-REPOID | |
35 | 134 |
|
36 | 135 |
|
37 | | -## AWS Services - Covered as part of this course |
38 | | -1. AWS Elastic Kubernetes Service - EKS |
39 | | -2. AWS EKS Fargate (Serverless) |
40 | | -3. AWS Elastic Container Registry - ECR |
41 | | -3. AWS Elastic Block Storage - EBS |
42 | | -4. AWS Elastic File Storage - EFS |
43 | | -5. AWS VPC - Virtual Private Cloud |
44 | | -6. AWS ELB - Elastic Load Balancer |
45 | | - - CLB - Classic Load Balancer |
46 | | - - NLB - Network Load Balancer |
47 | | - - ALB - Application Load Balancer |
48 | | -7. AWS RDS - Relation Database Service |
49 | | -8. AWS EC2 Instances |
50 | | -9. AWS EC2 Autoscaling |
51 | | -10. AWS AppMesh |
52 | | -11. AWS X-Ray |
53 | | -12. AWS CloudFormation |
54 | | -13. AWS CloudWatch |
55 | | -14. AWS CloudTrial |
56 | | -15. AWS Parameter Store (for secrets - CICD) |
57 | | -16. AWS Lambda (For secrets - CICD) |
58 | | - |
59 | | -## AWS EFS with EKS |
60 | | -17. AWS Datasync |
61 | | -18. AWS S3 Buckets |
62 | | -19. AWS EFS |
63 | | - - https://docs.aws.amazon.com/datasync/latest/userguide/creating-task.html#in-coud-setup |
64 | | -20. Cerficate Manager (For ALB SSL) |
65 | | - |
66 | | -| S.No | AWS Services | S.No |Kubernetes Concepts | |
67 | | -| ------------- | ------------- | ------------- | -------------| |
68 | | -| 1. | AWS EKS - Elastic Kubernetes Service | 1. |Pods | |
69 | | -| 2. | AWS EKS - Fargate (Serverless) | 2. |ReplicaSets | |
70 | | -| 3. | AWS ECR - Elastic Container Registry | 3. |Deployments | |
71 | | -| 4. | AWS EBS - Elastic Block Store | 4. |Services - NodePort | |
72 | | -| 5. | AWS EFS - Elastic File Store | 5. |Services - ClusterIp | |
73 | | -| 6. | AWS VPC - Virtual Private Cloud | 6. |Imperative & Delcarative ways to create k8s objects | |
74 | | -| 7. | AWS ELB - Elastic Load Balancer - ALB | 7. |YAML Basics - for writing k8s manifests | |
75 | | - |
76 | | - |
77 | | -# Kubernetes Topics - For Preparation |
78 | | - |
79 | | -## Foundation |
80 | | -- YAML Basics |
81 | | - |
82 | | -## Kube Core Topics |
83 | | -- PODs |
84 | | -- Deployments |
85 | | -- Services |
86 | | -- Volumes |
87 | | -- ConfigMaps |
88 | | -- Replication Controller or Replica Sets |
89 | | -- Declarative commands (kubectl) |
90 | | -- Live Template writing for PODS, Deployments & Services |
91 | | - |
92 | | -## AWS EKS Topics |
93 | | -- Create Cluster |
94 | | - - AWS Management Console |
95 | | - - eksctl |
96 | | -- Worker Nodes |
97 | | - - Launch a Worker Node (Linux) |
98 | | - - Managed Node Groups (MNG) |
99 | | - - Updating (Patching) Managed Node Groups |
100 | | - - Editing Managed Node Groups |
101 | | - - Managed Node Group ERRORS |
102 | | - - Deleting MNG |
103 | | -- Storage |
104 | | - - EBS CSI Driver |
105 | | - - EFS CSI Driver |
106 | | -- Autoscaling |
107 | | - - Cluster Autoscaler |
108 | | - - Horizontal Pod Autoscaler |
109 | | - - Vertical Pod Autoscaler |
110 | | -- Load Balancing and Ingress |
111 | | - - Load Balancing (CLB, NLB) |
112 | | - - ALB Ingress Controller |
113 | | -- Networking |
114 | | - - Creating a VPC for EKS |
115 | | - - Cluster VPC Considerations |
116 | | - - EKS Security Group Considerations |
117 | | - - Understand Pod Networking |
118 | | - - CoreDNS (Already exists in new clusters - just intro about it will suffice) |
119 | | - - Calico (Multi-tenant environment - not needed) |
120 | | -- Managing Cluster Authentication (Optional) |
121 | | - - Important Topic - Managing Users or IAM Roles for your cluster |
122 | | -- Guest Book Application |
123 | | -- Metrics Server |
124 | | -- Prometheus Metrics |
125 | | -- Using Helm |
126 | | -- Deploy Kubernetes Dashboard |
127 | | -- AppMesh Integration with Kubernetes |
128 | | -- Security (IAM role to Kubernetes Service Accounts) |
129 | | - - IAM |
130 | | - - Pod Security Policy |
131 | | -- CloudTrial |
132 | | -- AWS Fargate (LAST) |
133 | | - - Important Note: Pods running on Fargate are only supported on private subnets (with NAT gateway access to AWS services, but not a direct route to an Internet Gateway), so your cluster's VPC must have private subnets available. |
134 | | - - Stateful applications are not recommended for pods running on Fargate. |
135 | | - - Daemonsets are not supported on Fargate. |
136 | | - - GPUs are currently not available on Fargate. |
137 | | -- Troubleshooting |
138 | | - |
139 | | -## Monitoring & Logging |
140 | | -- CloudWatch |
141 | | -- CloudTrail |
142 | | -- AWS X-Ray |
143 | | - |
144 | | -## Kube Tools |
145 | | -- Kubeapps |
146 | | -- Helm Charts |
147 | | - - https://github.com/aws/eks-charts |
148 | | - - https://docs.aws.amazon.com/eks/latest/userguide/helm.html |
149 | | - - https://helm.sh/docs/intro/quickstart/ |
150 | | -- Kubeadm |
151 | | -- Grafana, Prometheus |
152 | | -- Istio |
153 | | -- Kiali |
154 | | - |
155 | | - |
156 | | - |
157 | | - |
158 | | -# Kube Topics List |
159 | | - |
160 | | -## Series -1 |
161 | | -- Cluster Setup (AWS) |
162 | | -- Architecture |
163 | | -- PODS |
164 | | -- Deployments |
165 | | -- Services |
166 | | -- ReplicaSets |
167 | | -- YAML |
168 | | - |
169 | | -## Series-2 |
170 | | -- ConfigMaps |
171 | | -- Resources |
172 | | -- Containers |
173 | | -- P Volume Claims |
174 | | -- Networking |
175 | | -- Taints & |
176 | | -- |
177 | | - |
178 | | -## Series-3 |
179 | | -- Ingress |
180 | | -- Secrets |
181 | | -- Persistent Volumes |
182 | | -- Security |
183 | | -- |
184 | | - |
185 | | -## Series-4 |
186 | | -- StatefulSets |
187 | | -- Storage |
188 | | -- Administration |
189 | | -- Federation |
190 | | -- Jobs |
191 | | - |
192 | | - |
193 | | - |
194 | | -## Local Dev MySQL Server |
195 | | -``` |
196 | | -docker run --name mysql-dev -p 3306:3306 -e MYSQL_ROOT_PASSWORD=redhat -d mysql:latest |
197 | | -docker stop mysql-dev |
198 | | -docker rm mysql-dev |
199 | | -docker exec -it mysql-dev bash |
200 | | -
|
201 | | -# Docker network |
202 | | -docker network ls |
203 | | -
|
204 | | -# Connect to MySQL |
205 | | -docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p |
206 | | -docker run -it --network host --rm mysql mysql -hmysql-dev -uroot -p |
207 | | -``` |
| 136 | +## Sample Applications |
| 137 | +- User Management Microservice |
| 138 | +- Notification Miroservice |
| 139 | +- Nginx Applications |
| 140 | + |
| 141 | +## What will students learn in your course? |
| 142 | +- You will slowly start by learning Docker Fundamentals and move on to ECS or Fargate. |
| 143 | +- You will learn Docker fundamentals by implementing usecases like download image from Docker Hub and run on local desktop and build an image locally, test and push to Docker Hub. |
| 144 | +- You will master the Elastic Container Service core concepts like Task Definition, Task and Service. |
| 145 | +- You will learn using ECR - Elastic Container Registry in combination with ECS. |
| 146 | +- You will learn Docker Image Build, Push to ECR, run it as Task on ECS or Fargate Clusters. |
| 147 | +- You will learn usage of Application Load Balancers in combination with ECS Tasks (Containers) and also implement URI based routing on ALB. |
| 148 | +- You will understand and implement Service Autoscaling concepts of ECS |
| 149 | +- You will implement Continuous Integration and Continuous Delivery concepts using AWS Developer Tools like CodeBuild, CodeCommit and CodePipeline. |
| 150 | +- You will learn to master microservices deployments on ECS in combination with AWS CloudMap (for Service Discovery) and with AWS App Mesh (Service Mesh). |
| 151 | +- You will learn to deploy Microservices Canary Deployments using AWS App Mesh. |
| 152 | +- You will write CloudFormation Templates for Fargate Deployments starting from Network stack (VPC) to Service Stack (ECS or Fargate). |
| 153 | +- You will learn to implement Distributed Tracing using X-Ray without making any application level code changes when AWS App Mesh (Envoy Proxy) is in place with ECS Deployments. |
| 154 | + |
| 155 | +## Are there any course requirements or prerequisites? |
| 156 | +- You must have an AWS account to follow with me for hands-on activities. |
| 157 | +- You dont need to have any basic Docker knowledge also to start this course. As part of Docker Fundamentals we have covered that too. |
| 158 | + |
| 159 | +## Who are your target students? |
| 160 | +- AWS Architects or Sysadmins or Developers who are planning to master Elastic Container Service (ECS) for Docker deployments. |
| 161 | +- Any beginner who is interested in learning Docker fundamentals and moving on to master Docker Container deployments on AWS Cloud. |
| 162 | +- Technologists who want to implement Continuous Integration and Continuos Delivery/Deployment process (CI/CD) in AWS with Docker Container Images. |
| 163 | + |
| 164 | +## Each of my courses come with |
| 165 | +- Amazing Hands-on Step By Step Learning Experiences |
| 166 | +- Real Implementation Experience |
| 167 | +- Friendly Support in the Q&A section |
| 168 | +- 30 Day "No Questions Asked" Money Back Guarantee! |
| 169 | + |
| 170 | +## My Other AWS Courses |
| 171 | +- [Udemy Enroll](https://github.com/stacksimplify/udemy-enroll) |
| 172 | + |
| 173 | +## Stack Simplify Udemy Profile |
| 174 | +- [Udemy Profile](https://www.udemy.com/user/kalyan-reddy-9/) |
| 175 | + |
208 | 176 |
|
0 commit comments