Fargate 시작 유형의 Amazon EKS 클러스터에서 AWS App Mesh 샘플 워크로드 설정 - Amazon CloudWatch

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 컨트롤러의 지침을 따르세요. Fargate 시작 유형의 Amazon EKS에 대한 지침을 따라야 합니다.

샘플 애플리케이션 설치

aws-app-mesh-examples에는 여러 Kubernetes App Mesh 시연이 포함되어 있습니다. 이 튜토리얼에서는 Fargate 시작 유형의 Amazon EKS 클러스터에서 작동하는 샘플 컬러 애플리케이션을 설치합니다.

샘플 App Mesh 애플리케이션을 사용하여 Container Insights를 테스트하려면
  1. 다음 지침에 따라 애플리케이션을 설치합니다. 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 \ --approve
    eksctl create fargateprofile --cluster MyCluster \ --namespace howto-k8s-fargate --name howto-k8s-fargate
  2. 다음과 같이 프런트 애플리케이션 배포를 포트 포워딩합니다.

    kubectl -n howto-k8s-fargate port-forward deployment/front 8080:8080
  3. 다음과 같이 프런트 앱을 curl합니다.

    while true; do curl -s http://localhost:8080/color; sleep 0.1; echo ; done
  4. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  5. 클러스터가 실행되고 있는 AWS 리전에서 왼쪽 탐색 창의 [지표(Metrics)]를 선택합니다. 지표는 ContainerInsights/Prometheus 네임스페이스에 있습니다.

  6. CloudWatch Logs 이벤트를 보려면 탐색 창에서 [로그 그룹(Log groups)]을 선택합니다. 이벤트는 로그 그룹 /aws/containerinsights/your_cluster_name/prometheus 의 로그 스트림 kubernetes-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