들어가며:
Container Insights를 이용한 CloudWatch 구성
실습
들어가며:
EKS 쿠버네티스 클러스터의 전체 상태를 확인하려면 데이터플레인을 어디에(베어메탈, EC2, EKS..) 어떻게(오토스케일링 그룹, 관리형 노드 그룹...) 구성하고 있는지에 따라 다릅니다.
EKS에 구성한 경우
오토스케일링 그룹을 사용한 경우 EC2 오토스케일링 설정에서 최소 서버 대수를 설정하면 AWS에서 자동으로 관리해줍니다.
관리형 노드 그룹을 사용할 경우 EKS 페이지에서 노드 대수를 설정할 수 있습니다.
또한, CloudWatch 를 사용하여 사용률에 대한 경보도 지정해놓을 수 있습니다.
CloudWatch에 대한 기초 설명은 CloudWatch 포스팅을 참고하세요.
이처럼 클러스터 전체 상태를 확인하는 것도 중요하지만 애플리케이션 상태도 확인해보고 싶은 경우는 어떻게 해야할까요?
이 포스팅은 클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트를 참고하였습니다.
Container Insights를 이용한 CloudWatch 구성
CloudWatch 서비스에는 Container Insights 라는 기능이 있습니다.
이를 이용하면 클러스터 노드, 파드, 네임스페이스, 서비스 레벨의 메트릭을 참조할 수 있습니다.
Container Insights 의 구조는 위 그림과 같습니다.
CloudWatch 에이전트 파드를 데몬셋으로 동작시킨 후 필요한 metric을 CloudWatch로 전송합니다.
실습
Step 1. IAM 역할 부여
AWS EC2 서비스에서 데이터 노드(?)로 사용하는 인스턴스 2개 중 아무거나 1개 클릭
인스턴스 상세 정보에서 IAM 역할 링크 클릭
IAM 페이지로 넘어온 뒤 정책 연결 클릭
CloudWatchAgentAdminPolicy 정책 추가
Step 2. CloudWatch용 네임스페이스 생성
네임스페이스 분리해서 사용하는 이유는?
하나의 클러스터 환경에서 위의 세 환경을 모두 운영하면 분리가 되어있지 않기 때문에 혼란이 생길 수 있다.
이럴 때 네임스페이스를 사용하여 각각의 환경마다 논리적인 분리를 통한 구분이 가능하다.
또한 ResourceQuota를 사용하여 네임스페이스마다 CPU, MEMORY등의 개별적인 리소스 할당이 가능하다.
Step 3. CloudWatch용 서비스 계정 생성
Step 4. CloudWatch 에이전트가 사용할 컨피그맵 생성
Step 5. CloudWatch 에이전트를 데몬셋으로 동작
Step 6. CloudWatch 확인
CloudWatch 서비스로 이동하면
/aws/containerinsights/eks-work-cluster/performance
로그 그룹이 생성된 것을 확인할 수 있습니다.
CloudWatch 의 Container Insights 로 이동
Container map, 리소스, 성능 모니터링 옵션을 선택할 수 있습니다.
Container Map은 현재 클러스터의 맵을 그림으로 시각화하고
사용량에 따라 색상을 표현해줍니다.
성능 모니터링은 클러스터(Namespace)를 고르고 원하는 부분(Dimension)에 대한 지표(Metric)를 보여주게 됩니다.
지표를 확대하게 되면 기간(Period)과 분석방법(statistics)를 고를 수 있습니다.
'AWS > EKS' 카테고리의 다른 글
로그 관리와 운영 (0) | 2021.08.26 |
---|---|
[AWS] EKS 환경 구성하기 (intel macOS) (2) | 2021.08.20 |
Amazon EKS 란 ? (1) | 2021.08.17 |