내용으로 건너뛰기

Amazon CloudWatch Observability 추가 기능을 사용하여 Amazon EKS 클러스터를 모니터링하려면 어떻게 해야 합니까?

3분 분량
0

Amazon CloudWatch Observability 추가 기능을 사용하여 Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터를 모니터링하려고 합니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

전제 조건:

추가 기능에 대한 IAM 역할 생성

AWS Identity and Access Management(IAM) OpenID Connect(OIDC) 공급자를 생성하려면 다음 명령을 실행합니다.

eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve

참고: my-cluster-name을 해당 클러스터 이름으로 바꾸십시오. 자세한 내용은 Kubernetes 서비스 계정에 IAM 역할 할당을 참조하십시오.

CloudWatchAgentServerPolicy가 연결된 IAM 역할을 생성하려면 다음 명령을 실행합니다.

eksctl create iamserviceaccount \
  --name cloudwatch-agent \
  --namespace amazon-cloudwatch
  --cluster my-cluster-name \
  --role-name AmazonCloudWatchObservabilityRole \
  --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
  --role-only \
  --approve

참고: my-cluster-name을 해당 클러스터 이름으로 바꾸십시오. 또한 위 명령은 OIDC를 사용하여 역할을 맡도록 에이전트 서비스 계정을 구성합니다.

추가 기능 설치

추가 기능을 설치하려면 Amazon EKS 콘솔 또는 AWS CLI를 사용하십시오.

Amazon EKS 콘솔

다음 단계를 완료하십시오.

  1. Amazon EKS 콘솔을 엽니다.
  2. 탐색 창에서 클러스터를 선택합니다.
  3. 클러스터 이름을 선택한 다음, 추가 기능 탭을 선택합니다.
  4. 추가 기능 가져오기를 선택한 다음, 추가 기능 선택을 선택합니다.
  5. Amazon EKS 추가 기능 섹션에서 Amazon CloudWatch Observability를 선택한 후 다음을 선택합니다.
  6. 선택한 추가 기능 설정 구성 페이지에서 사용하려는 버전을 선택합니다.
  7. IAM 역할 선택에서 AmazonCloudWatchObservabilityRole을 선택하고 다음을 선택합니다.
  8. 검토 및 추가 페이지에서 생성을 선택합니다.

AWS CLI

추가 기능을 설치하려면 다음 create-addon 명령을 실행합니다.

aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::Account-ID:role/AmazonCloudWatchObservabilityRole

참고: my-cluster-name를 클러스터 이름으로 바꾸고 Account-ID를 AWS 계정 ID로 바꾸십시오.

설치가 완료되면 Amazon EKS가 클러스터에 amazon-cloudwatch 네임스페이스를 생성합니다. CloudWatch 에이전트와 Fluent Bit 포드도 클러스터에서 활성화됩니다.

활성 포드를 보려면 다음 명령을 실행합니다.

kubectl get pods -n amazon-cloudwatch

출력 예시:

NAME                                                              READY   STATUS    RESTARTS   AGE
amazon-cloudwatch-observability-controller-manager-6c685b4wsdbg   1/1     Running   0          16s
cloudwatch-agent-76bnd                                            1/1     Running   0          16s
cloudwatch-agent-nbdgm                                            1/1     Running   0          16s
fluent-bit-45wl4                                                  1/1     Running   0          16s
fluent-bit-rsfc7                                                  1/1     Running   0          16s

샘플 애플리케이션 배포

클러스터에 지표를 수집할 워크로드가 없는 경우 다음 샘플 워크로드를 배포하십시오.

cat <<EOF >deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: eks-cw-sample-app
  labels:
    app: eks-cw-sample-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: eks-cw-sample-app
  template:
    metadata:
      labels:
        app: eks-cw-sample-app
    spec:
      containers:
      - name: nginx
        image: public.ecr.aws/nginx/nginx:1.27
        ports:
        - name: http
          containerPort: 80
        imagePullPolicy: IfNotPresent
EOF

kubectl apply -f deployment.yaml

이전 워크로드를 사용하여 CloudWatch가 지표를 올바르게 수집하는지 확인하십시오.

CloudWatch 콘솔에서 클러스터 모니터링

Container Insights를 설치한 후 CloudWatch 콘솔에서 지표를 볼 수 있습니다.

클러스터에서 AWS Fargate 로깅을 사용할 수도 있습니다.

관련 정보

Amazon EKS에서 로깅 및 모니터링

AWS 공식업데이트됨 2년 전