Skip to content

SM4527/EKS-Linkerd-ServiceMesh

 
 

Repository files navigation

Kubernetes AWS Terraform Docker Nginx Shell Script

Stars Forks Issues License

Project Title

EKS-Linkerd-ServiceMesh Tweet

Description

Deploy Linkerd Service Mesh on an EKS cluster using Terraform and Helm. Deploy the sample Emojivoto application and inject the lightweight Linkerd sidecar into its deployments. Diagnose the deployments that are less than a 100% success rate. Tap the ones in failure to analyze the cause. Visualize the key metrics using Grafana dashboards.

image

Getting Started

Dependencies

  • Docker
  • AWS user with programmatic access and high privileges
  • Linux terminal
  • Deploy an EKS K8 Cluster with Self managed Worker nodes on AWS using Terraform.
    • Deploy a NGINX Ingress on the above EKS cluster (Pod->service->Ingress->ELB+ACM->Route 53->Domain URL).

Installing

  • Clone the repository
  • Set environment variable TF_VAR_AWS_PROFILE
  • Review terraform variable values in variables.tf, locals.tf
  • Override values in the Helm chart through the "chart_values.yaml" file
  • Update kubernetes.tf with the AWS S3 bucket name and key name from the output of the EKS K8 Cluster

Executing program

  • Configure AWS user with AWS CLI.
docker-compose run --rm aws configure --profile $TF_VAR_AWS_PROFILE

docker-compose run --rm aws sts get-caller-identity
  • Specify appropriate Terraform workspace.
docker-compose run --rm terraform workspace show

docker-compose run --rm terraform workspace select default
  • Run Terraform apply to create the EKS cluster, k8 worker nodes and related AWS resources.
./run-docker-compose.sh terraform init

./run-docker-compose.sh terraform validate

./run-docker-compose.sh terraform plan

./run-docker-compose.sh terraform apply
  • Verify kubectl calls and ensure Deployments, Services and Pod are in Running status.
./run-docker-compose.sh kubectl get all -n linkerd
./run-docker-compose.sh kubectl get all -n linkerd-viz
./run-docker-compose.sh kubectl get all -n emojivoto
  • View Linkerd dashboard and the sample emojivoto application dashboard using the links below (replace with your domain name)

Linkerd: Domain Https URL, prefixed by linkerd

Emojivoto: Domain Https URL, prefixed by emojivoto

Help

Authors

Sivanandam Manickavasagam

Version History

  • 0.1
    • Initial Release

License

This project is licensed under the MIT License - see the LICENSE file for details

Repo rosters

Stargazers

Stargazers repo roster for @SM4527/EKS-Linkerd-ServiceMesh

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HCL 98.1%
  • Shell 1.9%