https://github.com/londheshubham153/three-tier-eks-iac
https://github.com/londheshubham153/three-tier-eks-iac
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/londheshubham153/three-tier-eks-iac
- Owner: LondheShubham153
- Created: 2023-10-04T06:25:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-07T05:16:54.000Z (over 1 year ago)
- Last Synced: 2025-01-05T18:48:26.054Z (4 months ago)
- Language: HCL
- Size: 238 KB
- Stars: 8
- Watchers: 2
- Forks: 21
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# three-tier-eks-iac
# Prerequisite
**Install Kubectl**
https://kubernetes.io/docs/tasks/tools/**Install Helm**
https://helm.sh/docs/intro/install/```
helm repo update
```**Install/update latest AWS CLI:** (make sure install v2 only)
https://aws.amazon.com/cli/#update the Kubernetes context
aws eks update-kubeconfig --name my-eks-cluster --region us-west-2# verify access:
```
kubectl auth can-i "*" "*"
kubectl get nodes
```# Verify autoscaler running:
```
kubectl get pods -n kube-system
```# Check Autoscaler logs
```
kubectl logs -f \
-n kube-system \
-l app=cluster-autoscaler
```# Check load balancer logs
```
kubectl logs -f -n kube-system \
-l app.kubernetes.io/name=aws-load-balancer-controller
```# Buid Docker image :
**For Mac:**```
export DOCKER_CLI_EXPERIMENTAL=enabled
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/w8u5e4v2
```Buid Front End :
```
docker buildx build --platform linux/amd64 -t workshop-frontend:v1 .
docker tag workshop-frontend:v1 public.ecr.aws/w8u5e4v2/workshop-frontend:v1
docker push public.ecr.aws/w8u5e4v2/workshop-frontend:v1
```Buid Back End :
```
docker buildx build --platform linux/amd64 -t workshop-backend:v1 .
docker tag workshop-backend:v1 public.ecr.aws/w8u5e4v2/workshop-backend:v1
docker push public.ecr.aws/w8u5e4v2/workshop-backend:v1
```**For Linux/Windows:**
Buid Front End :
```
docker build -t workshop-frontend:v1 .
docker tag workshop-frontend:v1 public.ecr.aws/w8u5e4v2/workshop-frontend:v1
docker push public.ecr.aws/w8u5e4v2/workshop-frontend:v1
```Buid Back End :
```
docker build -t workshop-backend:v1 .
docker tag workshop-backend:v1 public.ecr.aws/w8u5e4v2/workshop-backend:v1
docker push public.ecr.aws/w8u5e4v2/workshop-backend:v1
```**Create Namespace**
```
kubectl create ns workshopkubectl config set-context --current --namespace workshop
```# MongoDB Database Setup
**To create MongoDB Resources**
```
cd k8s_manifests/mongo_v1
kubectl apply -f secrets.yaml
kubectl apply -f deploy.yaml
kubectl apply -f service.yaml
```# Backend API Setup
Create NodeJs API deployment by running the following command:
```
kubectl apply -f backend-deployment.yaml
kubectl apply -f backend-service.yaml
``**Frontend setup**
Create the Frontend resource. In the terminal run the following command:
```
kubectl apply -f frontend-deployment.yaml
kubectl apply -f frontend-service.yaml
```Finally create the final load balancer to allow internet traffic:
```
kubectl apply -f full_stack_lb.yaml
```# Any issue with the pods ? check logs:
kubectl logs -f POD_ID -f# Grafana setup
Username: admin
Password: prom-operatorImport Dashboard ID: 1860
Exlore more at: https://grafana.com/grafana/dashboards/