Fargate 시작 유형의 Amazon EKS 클러스터에서 AWS App Mesh 샘플 워크로드 설정
Fargate 시작 유형의 Amazon EKS를 실행하는 클러스터에서 App Mesh를 설정할 경우 다음 지침을 따르세요.
IAM 권한 구성
IAM 권한을 설정하려면 다음 명령을 입력합니다. MyCluster
를 클러스터 이름으로 바꿉니다.
eksctl create iamserviceaccount --cluster
MyCluster
\ --namespace howto-k8s-fargate \ --name appmesh-pod \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \ --override-existing-serviceaccounts \ --approve
App Mesh 설치
App Mesh Kubernetes 컨트롤러를 설치하려면 App Mesh 컨트롤러
샘플 애플리케이션 설치
aws-app-mesh-examples
샘플 App Mesh 애플리케이션을 사용하여 Container Insights를 테스트하려면
-
다음 지침에 따라 애플리케이션을 설치합니다. https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-fargate
해당 지침에서는 올바른 Fargate 프로파일을 사용하여 새 클러스터를 생성한다고 가정합니다. 이미 설정한 Amazon EKS 클러스터를 사용하려는 경우 다음 명령을 사용하여 해당 클러스터를 이 데모에 맞게 설정할 수 있습니다.
MyCluster
를 클러스터 이름으로 바꿉니다.eksctl create iamserviceaccount --cluster
MyCluster
\ --namespace howto-k8s-fargate \ --name appmesh-pod \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \ --override-existing-serviceaccounts \ --approveeksctl create fargateprofile --cluster MyCluster \ --namespace howto-k8s-fargate --name howto-k8s-fargate
-
다음과 같이 프런트 애플리케이션 배포를 포트 포워딩합니다.
kubectl -n howto-k8s-fargate port-forward deployment/front 8080:8080
-
다음과 같이 프런트 앱을 curl합니다.
while true; do curl -s http://localhost:8080/color; sleep 0.1; echo ; done
https://console.aws.amazon.com/cloudwatch/
에서 CloudWatch 콘솔을 엽니다. -
클러스터가 실행되고 있는 AWS 리전에서 왼쪽 탐색 창의 [지표(Metrics)]를 선택합니다. 지표는 ContainerInsights/Prometheus 네임스페이스에 있습니다.
-
CloudWatch Logs 이벤트를 보려면 탐색 창에서 [로그 그룹(Log groups)]을 선택합니다. 이벤트는 로그 그룹
/aws/containerinsights/
의 로그 스트림your_cluster_name
/prometheuskubernetes-pod-appmesh-envoy
에 있습니다.
App Mesh 테스트 환경 삭제
App Mesh 및 샘플 애플리케이션의 사용을 마쳤으면 다음 명령을 사용하여 불필요한 리소스를 삭제합니다. 다음 명령을 입력하여 샘플 애플리케이션을 삭제합니다.
cd aws-app-mesh-examples/walkthroughs/howto-k8s-fargate/ kubectl delete -f _output/manifest.yaml
다음 명령을 입력하여 App Mesh 컨트롤러를 삭제합니다.
helm delete appmesh-controller -n appmesh-system