이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 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 볼륨 저장가 설치되어 있어야 합니다.
-
설치할 Kubecost의 버전을 결정합니다. Amazon ECR Public Gallery의 kubecost/cost-analyzer
에서 사용 가능한 버전을 확인할 수 있습니다. Kubecost 버전과 Amazon EKS의 호환성에 대한 자세한 내용은 Kubecost 설명서의 환경 요구 사항 을 참조하세요. -
다음 명령으로 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.yamlKubecost는 주기적으로 새 버전을 출시합니다.
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 마켓플레이스와 통합됩니다.
-
AWS 마켓플레이스 콘솔에서 Kubecost
를 확인하고 구독하세요. -
클러스터의 이름과 리전을 확인합니다. EKS를 관리할 수 있는 충분한 권한으로 AWS CLI에 로그인했는지 확인합니다.
-
Kubecost 추가 기능을 생성합니다.
aws eks create-addon --addon-name kubecost_kubecost --cluster-name $YOUR_CLUSTER_NAME --region $AWS_REGION
Kubecost와 같은 EKS 추가 기능을 제거하는 방법을 알아보세요.
Kubecost 대시보드 액세스
-
필요한 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 -
디바이스에서 포트 포워딩을 활성화하여 Kubecost 대시보드를 노출합니다.
kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090
또는 AWS Load Balancer Controller를 사용하여 Kubecost 를 노출하고 인증, 권한 부여 및 사용자 관리를 위해 Amazon Cognito를 사용할 수 있습니다. 자세한 내용은 Application Load Balancer 및 Amazon Cognito를 사용하여 Kubernetes 웹 앱에 대한 사용자를 인증하는 방법
을 참조하세요. -
이전 단계를 완료한 동일한 디바이스에서 웹 브라우저를 열고 다음 주소를 입력합니다.
http://localhost:9090
브라우저에 Kubecost Overview(개요) 페이지가 표시됩니다. Kubecost가 지표를 수집하는 데 5~10분 정도 걸릴 수 있습니다. 누적 클러스터 비용, 관련 Kubernetes 자산 비용, 월별 집계 비용을 포함한 Amazon EKS 지출을 확인할 수 있습니다.
-
클러스터 수준에서 비용을 추적하려면 청구할 Amazon EKS 리소스에 태그를 지정합니다. 자세한 내용은 리소스에 결제용 태그 지정 단원을 참조하십시오.
대시보드의 왼쪽 창에서 다음 정보를 선택하여 볼 수도 있습니다.
-
Cost allocation(비용 할당) - 지난 7일 동안 각 네임스페이스와 기타 차원에 대한 월별 Amazon EKS 비용 및 누적 비용을 확인합니다. 이는 애플리케이션의 어느 부분이 Amazon EKS 지출에 기여하는지 파악하는 데 유용합니다.
-
Assets(자산) - Amazon EKS 리소스와 연결된 AWS 인프라 자산의 비용을 확인합니다.