|
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