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

EC2 시작 유형의 Amazon EKS 클러스터 또는 Kubernetes 클러스터에서 AWS App Mesh 샘플 워크로드 설정

EC2 시작 유형의 Amazon EKS를 실행하는 클러스터 또는 Kubernetes 클러스터에서 App Mesh를 설정할 경우 다음 지침을 따르세요.

IAM 권한 구성

Amazon EKS 또는 Kubernetes 노드 그룹의 IAM 역할에 AWSAppMeshFullAccess 정책을 추가해야 합니다. Amazon EKS에서 이 노드 그룹 이름은 eksctl-integ-test-eks-prometheus-NodeInstanceRole-ABCDEFHIJKL과 유사합니다. Kubernetes에서는 nodes.integ-test-kops-prometheus.k8s.local과 유사하게 보일 수 있습니다.

App Mesh 설치

App Mesh Kubernetes 컨트롤러를 설치하려면 App Mesh 컨트롤러의 지침을 따르세요.

샘플 애플리케이션 설치

aws-app-mesh-examples에는 여러 Kubernetes App Mesh 시연이 포함되어 있습니다. 이 튜토리얼에서는 http 라우팅이 들어오는 요청을 일치시키기 위해 어떻게 헤더를 사용하는지 보여 주는 샘플 컬러 애플리케이션을 설치합니다.

샘플 App Mesh 애플리케이션을 사용하여 Container Insights를 테스트하려면
  1. 다음 지침에 따라 애플리케이션을 설치합니다. https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-http-headers

  2. 다음과 같이 curler 포드를 시작하여 트래픽을 생성합니다.

    kubectl -n default run -it curler --image=tutum/curl /bin/bash
  3. HTTP 헤더를 변경하여 다양한 엔드포인트를 curl합니다. 다음과 같이 curl 명령을 여러 번 실행합니다.

    curl -H "color_header: blue" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo; curl -H "color_header: red" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo; curl -H "color_header: yellow" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
  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-http-headers/ kubectl delete -f _output/manifest.yaml

다음 명령을 입력하여 App Mesh 컨트롤러를 삭제합니다.

helm delete appmesh-controller -n appmesh-system