Kubecost 설치 및 대시보드 액세스 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

Kubecost 설치 및 대시보드 액세스

Amazon EKS는 Pods, 노드, 네임스페이스 및 레이블을 포함한 Kubernetes 리소스별로 분류된 비용을 모니터링하는 데 사용할 수 있는 Kubecost를 지원합니다. 이 주제에서는 Kubecost 설치 및 Kubecost 대시보드 액세스를 다룹니다.

Amazon EKS는 클러스터 비용 가시성을 위해 AWS에 최적화된 Kubecost 번들을 제공합니다. 기존 AWS 지원 계약을 사용하여 지원을 받을 수 있습니다. Kubecost의 사용 가능한 버전에 대한 자세한 내용은 Kubecost에 대해 자세히 알아보기 섹션을 참조하세요.

Kubernetes 플랫폼 관리자 및 재무 리더는 Kubecost를 사용하여 Amazon EKS 청구 내역을 시각화하고, 비용을 할당하고, 애플리케이션 팀과 같은 조직 단위를 청구할 수 있습니다. 내부 팀과 사업부에 실제 AWS 청구서를 기반으로 투명하고 정확한 비용 데이터를 제공할 수 있습니다. 또한 인프라 환경 및 클러스터 내 사용 패턴을 기반으로 비용 최적화를 위한 맞춤형 권장 사항을 가져올 수도 있습니다.

참고

Kubecost v2에는 몇 가지 주요 새 기능이 도입되었습니다. Kubecost v2에 대해 자세히 알아보세요.

Kubecost에 대한 자세한 내용은 Kubecost 설명서를 참조하십시오.

Helm을 사용한 Kubecost 설치

사전 조건
  • 기존 Amazon EKS 클러스터. 배포하려면 Amazon EKS 시작하기 섹션을 참조하세요. Fargate 노드에서는 Kubecost를 실행할 수 없으므로 클러스터에 Amazon EC2 노드가 있어야 합니다.

  • 디바이스 또는 AWS CloudShell에 설치된 kubectl 명령줄 도구. 버전은 클러스터의 Kubernetes 버전과 동일하거나 최대 하나 이전 또는 이후의 마이너 버전일 수 있습니다. 예를 들어 클러스터 버전이 1.30인 경우 kubectl 버전 1.29, 1.30 또는 1.31를 함께 사용할 수 있습니다. kubectl을 설치하거나 업그레이드하려면 kubectl 및 eksctl 설정 부분을 참조하세요.

  • 디바이스 또는 AWS CloudShell에 구성된 Helm 버전이 3.9.0 이상이여야 합니다. Helm을 설치 또는 업데이트하려면 Amazon EKS에서 Helm을 사용하여 애플리케이션 배포 부분을 참조하세요.

  • 클러스터가 버전 1.23 이상인 경우 클러스터에 Amazon EBS를 사용한 Kubernetes 볼륨 저장가 설치되어 있어야 합니다.

  1. 설치할 Kubecost의 버전을 결정합니다. Amazon ECR Public Gallery의 kubecost/cost-analyzer에서 사용 가능한 버전을 확인할 수 있습니다. Kubecost 버전과 Amazon EKS의 호환성에 대한 자세한 내용은 Kubecost 설명서의 환경 요구 사항을 참조하세요.

  2. 다음 명령으로 Kubecost를 설치합니다. kubecost-version을 ECR에서 검색한 값(예: 1.108.1)으로 변경합니다.

    helm upgrade -i kubecost oci://public.ecr.aws/kubecost/cost-analyzer --version kubecost-version \ --namespace kubecost --create-namespace \ -f https://raw.githubusercontent.com/kubecost/cost-analyzer-helm-chart/develop/cost-analyzer/values-eks-cost-monitoring.yaml

    Kubecost는 주기적으로 새 버전을 출시합니다. helm upgrade를 사용하여 버전을 업데이트할 수 있습니다. 기본적으로 설치에는 로컬 Prometheus 서버와 kube-state-metrics가 포함됩니다. 설명서의 Integrating with Amazon EKS cost monitoring(Amazon EKS 비용 모니터링과 통합)에 따라 Amazon Managed Service for Prometheus를 사용하도록 배포를 사용자 지정할 수 있습니다. 구성 가능한 다른 모든 설정 목록은 GitHub의 샘플 구성 파일를 참조하세요.

    다음 명령을 사용하여 클러스터에서 Kubecost를 제거할 수 있습니다.

    helm uninstall kubecost --namespace kubecost kubectl delete ns kubecost

Amazon EKS 추가 기능을 사용한 Kubecost 설치

Amazon EKS 추가 기능은 Kubecost 업그레이드 및 라이선스 관리의 복잡성을 줄여줍니다. EKS 추가 기능은 AWS 마켓플레이스와 통합됩니다.

  1. AWS 마켓플레이스 콘솔에서 Kubecost를 확인하고 구독하세요.

  2. 클러스터의 이름과 리전을 확인합니다. EKS를 관리할 수 있는 충분한 권한으로 AWS CLI에 로그인했는지 확인합니다.

  3. Kubecost 추가 기능을 생성합니다.

    aws eks create-addon --addon-name kubecost_kubecost --cluster-name $YOUR_CLUSTER_NAME --region $AWS_REGION

Kubecost와 같은 EKS 추가 기능을 제거하는 방법을 알아보세요.

Kubecost 대시보드 액세스

  1. 필요한 Pods가 실행 중인지 확인합니다.

    kubectl get pods -n kubecost

    예제 출력은 다음과 같습니다.

    NAME READY STATUS RESTARTS AGE kubecost-cost-analyzer-b9788c99f-5vj5b 2/2 Running 0 3h27m kubecost-kube-state-metrics-99bb8c55b-bn2br 1/1 Running 0 3h27m kubecost-prometheus-server-7d9967bfc8-9c8p7 2/2 Running 0 3h27m
  2. 디바이스에서 포트 포워딩을 활성화하여 Kubecost 대시보드를 노출합니다.

    kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090

    또는 AWS Load Balancer Controller를 사용하여 Kubecost 를 노출하고 인증, 권한 부여 및 사용자 관리를 위해 Amazon Cognito를 사용할 수 있습니다. 자세한 내용은 Application Load Balancer 및 Amazon Cognito를 사용하여 Kubernetes 웹 앱에 대한 사용자를 인증하는 방법을 참조하세요.

  3. 이전 단계를 완료한 동일한 디바이스에서 웹 브라우저를 열고 다음 주소를 입력합니다.

    http://localhost:9090

    브라우저에 Kubecost Overview(개요) 페이지가 표시됩니다. Kubecost가 지표를 수집하는 데 5~10분 정도 걸릴 수 있습니다. 누적 클러스터 비용, 관련 Kubernetes 자산 비용, 월별 집계 비용을 포함한 Amazon EKS 지출을 확인할 수 있습니다.

    Kubecost 대시보드
  4. 클러스터 수준에서 비용을 추적하려면 청구할 Amazon EKS 리소스에 태그를 지정합니다. 자세한 내용은 리소스에 결제용 태그 지정 단원을 참조하십시오.

대시보드의 왼쪽 창에서 다음 정보를 선택하여 볼 수도 있습니다.
  • Cost allocation(비용 할당) - 지난 7일 동안 각 네임스페이스와 기타 차원에 대한 월별 Amazon EKS 비용 및 누적 비용을 확인합니다. 이는 애플리케이션의 어느 부분이 Amazon EKS 지출에 기여하는지 파악하는 데 유용합니다.

  • Assets(자산) - Amazon EKS 리소스와 연결된 AWS 인프라 자산의 비용을 확인합니다.