How to Install App Mesh on AWS EKS

You can follow the steps below to install App Mesh on AWS EKS (Kubernetes).

Step 1 – Prerequisites

curl -o pre_upgrade_check.sh https://raw.githubusercontent.com/aws/eks-charts/master/stable/appmesh-controller/upgrade/pre_upgrade_check.sh sh ./pre_upgrade_check.sh
Code language: Bash (bash)

Step 2 – Add Helm Repo

helm repo add eks https://aws.github.io/eks-charts
Code language: Bash (bash)

Step 3 – Add Custom Resource Definitions (CRDs)

kubectl apply -k "https://github.com/aws/eks-charts/stable/appmesh-controller/crds?ref=master"
Code language: Bash (bash)

Step 4 – Create a Namespace for App Mesh

kubectl create ns appmesh-system
Code language: Bash (bash)

Step 5 – Set Environment Variables

You will need to set a couple of environment variables to make things easier later.

export CLUSTER_NAME=cluster-name export ACCOUNT_ID=111122223333 export AWS_REGION=eu-west-1
Code language: Bash (bash)

aws eks list-clusters will help you get the CLUSTER_NAME.

aws sts get-caller-identity will help you get the ACCOUNT_ID.

AWS_REGION needs to be the region where your EKS cluster has been setup.

Step 6 – Add an IAM OIDC provider

eksctl utils associate-iam-oidc-provider \ --region=$AWS_REGION \ --cluster $CLUSTER_NAME \ --approve
Code language: Bash (bash)

Step 7 – Create an IAM Service Account

eksctl create iamserviceaccount \ --cluster $CLUSTER_NAME \ --namespace appmesh-system \ --name appmesh-controller \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess,arn:aws:iam::aws:policy/AWSAppMeshFullAccess,arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \ --override-existing-serviceaccounts \ --approve
Code language: Bash (bash)

Step 8 – Install the App Mesh Controller using Helm

helm upgrade -i appmesh-controller eks/appmesh-controller \ --namespace appmesh-system \ --set region=$AWS_REGION \ --set serviceAccount.create=false \ --set serviceAccount.name=appmesh-controller \ --set log.level=debug
Code language: Bash (bash)

Step 9 – Note the App Mesh Deployment

kubectl get deployment appmesh-controller \ -n appmesh-system \ -o json | jq -r ".spec.template.spec.containers[].image"
Code language: Bash (bash)

Step 10 – Create a Fargate Profile in the EKS cluster

eksctl create fargateprofile --cluster $CLUSTER_NAME --name appmesh-system --namespace appmesh-system
Code language: Bash (bash)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments