Kubecost를 통한 비용 거버넌스
비용 거버넌스는 비용을 제어하는 정책을 지속적으로 구현하는 프로세스입니다. Kubernetes 컨텍스트에서는 조직이 비용을 제어하고 최적화하는 여러 방법이 있습니다. 여기에는 리소스 사용량 및 소비를 관리하고 제어하며 기본 인프라를 사전에 모니터링하고 최적화하는 네이티브 Kubernetes 도구가 포함됩니다.
이 섹션에서는 Kubecost를 사용하여 AKS(Azure Kubernetes Service) 클러스터 비용을 관리하는 방법을 보여 줍니다. 비용 할당 범위를 배포, 서비스, 레이블, Pod 또는 네임스페이스로 지정할 수 있어 유연하게 차지백하거나 클러스터 사용자를 표시할 수 있습니다.
Kubecost 설치
몇 가지 Kubecost 설치 옵션이 있습니다. 자세한 내용은 Installing Kubecost(Kubecost 설치)를 참조하세요.
권장되는 설치 방법은 Helm 3 차트입니다. Helm 3을 사용하여 Kubecost의 기본 구성을 설치하려면 다음 명령을 사용합니다.
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace
몇 분 후 다음과 같이 Kubecost가 실행 중인지 확인합니다.
kubectl get pods -n kubecost
# Connect to the Kubecost dashboard UI
kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090
이제 브라우저를 열고 http://127.0.0.1:9090
을 가리켜 Kubecost UI를 열 수 있습니다. Kubecost UI에서 비용 할당 정보를 확인할 클러스터를 선택합니다.
Azure 클라우드 통합을 위한 Kubecost 구성
Kubecost 설치를 완료하려면 Azure 클라우드 통합 및 Azure Rate Card 구성을 구성해야 합니다.
Microsoft Cost Export를 사용하면 매일 Cost Management 데이터를 Azure Storage 계정으로 자동으로 내보내는 되풀이 작업을 만들 수 있습니다. Kubecost는 이 스토리지 계정의 데이터에 액세스하도록 구성되므로 AKS 클러스터에서 들어오는 데이터뿐만 아니라 대시보드에 Azure 리소스에 대한 총 비용을 표시할 수 있습니다. Kubecost가 정확한 대시보드를 생성하도록 하려면 Azure 리소스에 태그를 지정하기 위해 Kubecost 설명서에 설명된 대로 Azure 리소스에 태그를 지정해야 합니다. 일부 Azure 리소스는 AKS 클러스터에서 만들어집니다. 이 경우 형식 LoadBalancer
의 서비스 또는 서비스를 PersistentVolume
만듭니다. 이러한 리소스에 대한 비용을 올바르게 추적하려면 Kubernetes 리소스의 주석을 사용하여 "Azure Kubernetes Service에서 Azure 태그 사용" 문서의 예와 같이 적절한 Azure 태그를 추가할 수 있습니다.
정확한 가격 책정이 대시보드에 보고되려면 Azure Rate Card 구성이 필요합니다. 설명서 페이지에 설명된 대로 사용자 지정 역할을 사용하여 서비스 주체를 만들고 서비스 주체를 사용하여 Azure 청구 요금 카드 API를 쿼리하도록 Kubecost를 구성해야 합니다.
Kubecost 탐색
Kubecost는 리소스를 다음 범주로 구분합니다.
- 월별 클러스터 비용
- 네임스페이스 비용
- 배포 리소스 비용
- 비용 효율성
클러스터를 선택하여 다음 대시보드와 같이 개요를 확인합니다.
왼쪽에서 Allocation(할당)을 선택하여 리소스의 네임스페이스 비용을 자세히 살펴봅니다. Allocation(할당)은 CPU, 메모리, 영구 볼륨, 네트워크 관련 비용을 보여 줍니다. Kubecost는 Azure 가격 책정에서 데이터를 가져오지만, 리소스의 사용자 지정 비용을 설정할 수도 있습니다.
왼쪽에서 Savings(절감액)를 선택하여 사용률이 낮은 리소스에 대한 비용 절감액을 자세히 살펴봅니다. Savings(절감액)는 사용률이 낮은 노드 및 Pod와 중단된 리소스에 대한 정보를 제공하고 클러스터 내에서 오버프로비저닝된 리소스 요청을 확인합니다. 다음 스크린샷은 Savings(절감액) 개요의 예를 보여 줍니다.
시간을 내어 Kubecost에서 제공하는 다양한 보기와 기능을 탐색해 보세요.