Installing AWS App Mesh Controller in a cluster
We will use AWS App Mesh Controller for K8s (https://github.com/aws/aws-app-mesh-controller-for-k8s), which allows us to create App Mesh resources through a K8s manifest, as well as to automatically inject the Envoy proxy container into a Pod. The starting point is to create the namespace, IAM role, and service account needed for the controller Pods. The commands are as follows:
$ kubectl create ns appmesh-system $ eksctl create iamserviceaccount --cluster myipv4cluster --namespace appmesh-system --name appmesh-controller --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess,arn:aws:iam::aws:policy/AWSAppMeshFullAccess --override-existing-serviceaccounts --approve ….. 454 created serviceaccount "appmesh-system/appmesh-controller"
You will notice that as well as providing the AWSAppMeshFullAccess
role, we also provide AWSCloudMapFullAccess
, which will be discussed in the Using AWS Cloud Map...