클러스터 리소스 사용량 이해

이 페이지에서는 Google Kubernetes Engine 사용량 측정을 사용하여 GKE 클러스터의 사용량 프로필을 이해하고, 사용량을 조직 내의 개별 팀이나 사업부에 연결하는 방법을 설명합니다. 사용량 측정은 프로젝트 비용 청구에는 영향을 미치지 않으며, 리소스 사용량을 세분화하여 파악하는 데 도움을 줍니다.

개요

기본적으로 Google Cloud Platform 프로젝트 수준에서 GKE 클러스터 리소스 사용량에 대한 정보를 찾을 수 있습니다. 사용량 측정은 CPU, GPU, 메모리, 네트워크 송신, 저장소 등 개별 클러스터 리소스의 사용량을 추적합니다. Kubernetes 네임스페이스, 라벨 또는 이 둘의 조합을 사용하여 리소스 사용량을 차별화할 수 있습니다. 데이터는 BigQuery에 저장되며, Google 데이터 스튜디오와 같은 외부 도구를 사용하여 데이터를 내보내 분석할 수 있습니다.

사용량 측정은 다음과 같은 시나리오에서 유용합니다.

  • 각 테넌트가 클러스터의 특정 네임스페이스 내에서 작동하는 다중 테넌트 클러스터에서 테넌트별 사용량을 추적합니다.
  • 애플리케이션에 속한 Kubernetes 객체에 고유 라벨을 할당함으로써 특정 클러스터에서 실행 중인 애플리케이션의 사용량을 파악합니다.

제한사항

샘플 BigQuery 쿼리 및 Google 데이터 스튜디오 템플릿을 사용하여 GKE 사용량 측정 데이터를 BigQuery에서 내보낸 GCP 청구 데이터와 결합함으로써 클러스터, 네임스페이스, 라벨별 비용 내역을 추정할 수 있습니다. GKE 사용량 측정에 의해 생성된 데이터는 전적으로 참고용일 뿐이며 GCP 청구에 영향을 미치지 않습니다. 청구 데이터는 오로지 GCP 청구 인보이스를 기준으로 합니다.

다음과 같은 제한사항이 적용됩니다.

  • 특별 계약 할인 및 크레딧은 고려되지 않습니다.
  • GKE 범위 밖에서 생성된 리소스는 네임스페이스나 라벨별로 추적되지 않습니다.
  • CPU, GPU, 메모리, 저장소, 네트워크 송신을 추적합니다.
  • 현재 사용량 측정은 커스텀 머신 유형을 사용하는 노드에서는 작동하지 않습니다.

기본 요건

사용량 측정을 사용하기 전에 다음의 기본 요건을 충족해야 합니다.

  • GKE v1.10.9-gke.5 이상 또는 v1.11.4-gke.8 이상
  • 버전 227.0.0 이상의 gcloud 명령어. gcloud --version을 사용하여 확인하세요.
  • Google Cloud Platform 프로젝트에서 BigQuery API를 사용 설정해야 합니다. 2018년 7월 이후에 GKE를 처음 사용 설정한 경우에는 이미 BigQuery API가 사용 설정되어 있습니다.
  • BigQuery의 청구 내보내기를 사용 설정해야 합니다.

사용량 측정 사용

사용량 측정을 사용하려면 먼저 클러스터, 프로젝트 내 여러 클러스터 또는 전체 프로젝트의 BigQuery 데이터세트를 만듭니다. 데이터세트와 클러스터 간 매핑을 선택하는 방법에 대한 자세한 내용은 하나 이상의 BigQuery 데이터세트 선택을 참조하세요.

그 다음에는 사용량 측정을 사용할 클러스터를 만들거나 수정합니다.

BigQuery 데이터세트 만들기

Google Cloud Platform 프로젝트에서 클러스터의 사용량 측정을 사용하려면 먼저 BigQuery 데이터세트를 만든 후에 이를 사용하도록 클러스터를 구성하세요. 단일 BigQuery 데이터세트를 사용하여 같은 프로젝트에 있는 여러 클러스터의 사용량 측정 정보를 저장할 수 있습니다.

자세한 내용은 데이터세트 만들기를 참조하세요.

클러스터에서 사용량 측정 사용

새로운 클러스터나 기존 클러스터에서 사용량 측정을 사용하려면 gcloud 명령어를 작성할 때 --resource-usage-bigquery-dataset BIGQUERY_DATASET 플래그를 사용하세요. 현재는 Google Cloud Platform Console을 사용하여 사용량 측정을 사용 설정할 수 없습니다.

새 클러스터 만들기:

gcloud

사용량 측정이 사용 설정된 클러스터를 만들려면 다음 명령어를 실행합니다. test-cluster가 보이는 곳은 클러스터 이름으로 대체하고, test_usage_metering_dataset가 보이는 곳은 BigQuery 데이터세트로 대체합니다.

붙여넣기 전에 자체 값을 예에 삽입하려면 highlighted 상태인 필드를 클릭하여 값을 수정합니다. 값을 재설정하려면 이 페이지를 새로고침합니다.

gcloud beta container clusters create test-cluster \
  --resource-usage-bigquery-dataset test_usage_metering_dataset

필요한 경우에는 클러스터가 시작될 때 BigQuery 데이터세트 내에 테이블이 생성됩니다.

기존 클러스터 수정:

gcloud

기존 클러스터에서 사용량 측정을 사용하려면 다음 명령어를 실행합니다. test-cluster가 보이는 곳은 클러스터 이름으로 대체하고, test_usage_metering_dataset가 보이는 곳은 BigQuery 데이터세트 이름으로 대체합니다.

붙여넣기 전에 자체 값을 예에 삽입하려면 highlighted 상태인 필드를 클릭하여 값을 수정합니다. 값을 재설정하려면 이 페이지를 새로고침합니다.

gcloud beta container clusters update test-cluster \
  --resource-usage-bigquery-dataset test_usage_metering_dataset

필요한 경우에는 클러스터가 업데이트될 때 BigQuery 데이터세트 내에 테이블이 생성됩니다.

사용량 측정 사용 중지

gcloud

클러스터에서 사용량 측정을 사용 중지하려면 다음 명령어를 실행합니다. test-cluster가 보이는 곳은 클러스터 이름으로 대체합니다.

붙여넣기 전에 자체 값을 예에 삽입하려면 highlighted 상태인 필드를 클릭하여 값을 수정합니다. 값을 재설정하려면 이 페이지를 새로고침합니다.

gcloud beta container clusters update test_cluster \
  --clear-resource-usage-bigquery-dataset

사용량 측정이 사용 설정되었는지 확인

클러스터에서 사용량 측정이 사용 설정되었는지 그리고 어떤 BigQuery 데이터세트가 클러스터의 사용량 측정 데이터를 저장하는지 확인하려면 gcloud beta container clusters describe 명령어를 사용하세요. 다음 예에서는 test-cluster가 보이는 곳을 클러스터 이름으로 대체합니다.

붙여넣기 전에 자체 값을 예에 삽입하려면 highlighted 상태인 필드를 클릭하여 값을 수정합니다. 값을 재설정하려면 이 페이지를 새로고침합니다.

gcloud beta container clusters describe test-cluster \
  --format="value(resourceUsageExportConfig)"

사용량 측정이 사용 설정되지 않은 경우에는 출력이 비어 있고, 사용 설정된 경우에는 다음 출력과 같이 클러스터가 사용하는 BigQuery 데이터세트가 표시됩니다.

bigqueryDestination={u'datasetId': u'test_usage_metering_dataset'}

BigQuery의 사용량 측정 데이터

다음 표는 BigQuery에 내보낸 사용량 측정 데이터의 내용을 설명합니다.

필드 유형 설명
cluster_location STRING GKE 클러스터가 상주하는 Compute Engine 영역 또는 리전의 이름입니다.
cluster_name STRING GKE 클러스터의 이름입니다.
namespace STRING 사용량이 생성되는 Kubernetes 네임스페이스입니다.
resource_name STRING 'cpu', 'memory', 'storage' 등 리소스의 이름입니다.
sku_id STRING 기본 GCP 클라우드 리소스의 SKU ID입니다.
start_time TIMESTAMP 사용량이 시작되었을 때의 UNIX 타임스탬프입니다.
end_time TIMESTAMP 사용량이 끝났을 때의 UNIX 타임스탬프입니다.
fraction FLOAT 사용량에서 사용되는 클라우드 리소스의 분수입니다. 단일 네임스페이스에서만 사용되는 전용 클라우드 리소스의 경우, 분수는 항상 1.0입니다. 여러 네임스페이스 간에 공유되는 리소스의 경우, 요청된 양을 기본 클라우드 리소스의 총 용량으로 나눠서 분수를 계산합니다.
cloud_resource_size INTEGER 기본 GCP 리소스의 크기입니다. 예를 들어 n1-standard-2 인스턴스에서 vCPU 크기는 2입니다.
labels.key STRING 사용량과 연관된 Kubernetes 라벨의 키입니다.
labels.value STRING 사용량과 연관된 Kubernetes 라벨의 값입니다.
project.id STRING GKE 클러스터가 상주하는 프로젝트의 ID입니다.
usage.amount FLOAT 사용한 usage.unit의 양입니다.
usage.unit STRING 리소스 사용량을 측정하는 기본 단위입니다. 예를 들어 표준 저장소의 기본 단위는 byte-seconds입니다.

하나 이상의 BigQuery 데이터세트 선택

데이터세트는 프로젝트에 있는 하나 이상의 프로젝트에 대한 사용량 측정 데이터를 보관할 수 있습니다. 데이터세트를 하나 사용할 것인지 아니면 여러 개 사용할 것인지는 보안 요구에 따라 다릅니다.

  • 전체 프로젝트에서 단일 데이터세트를 사용하면 간편하게 관리할 수 있습니다.
  • 클러스터별로 데이터세트를 사용하면 세분화된 액세스 권한을 데이터세트에 위임할 수 있습니다.
  • 관련 클러스터 그룹별로 데이터세트를 사용하면 필요한 수준에 맞춰 간편성과 세분성를 적절히 조율할 수 있습니다.

BigQuery를 사용하여 사용량 측정 데이터 보기

BigQuery를 사용하여 사용량 측정 데이터를 보려면 관련 BigQuery 데이터세트 내에서 gke_cluster_resource_usage 테이블을 쿼리합니다. Cloud Bigtable에서 쿼리를 사용하는 방법에 대한 자세한 내용은 쿼리 실행을 참조하세요. 스키마의 필드는 안정적이며, 향후 더 많은 필드를 추가할 수도 있습니다.

이 쿼리는 단지 예일 뿐입니다. 쿼리를 맞춤설정하여 필요한 데이터를 찾으세요.

붙여넣기 전에 자체 값을 예에 삽입하려면 highlighted 상태인 필드를 클릭하여 값을 수정합니다. 값을 재설정하려면 이 페이지를 새로고침합니다.

SELECT
  cluster_name,
  labels,
  fraction
FROM
  `PROJECT-ID.USAGE_METERING.gke_cluster_resource_usage`
WHERE
  namespace="accounting"

다음 섹션을 펼치면 더 복잡한 예를 볼 수 있습니다.

데이터 스튜디오 대시보드를 사용하여 사용량 측정 데이터 보기

클러스터 이름, 네임스페이스, 라벨별로 데이터를 필터링하고 보고 기간을 동적으로 조정할 수 있는 데이터 스튜디오 대시보드를 사용하여 사용량 측정 데이터를 시각화할 수 있습니다. 데이터 스튜디오 및 BigQuery의 고급 사용자일 경우에는 완전히 맞춤설정된 대시보드를 만들 수 있지만, 사용량 측정을 위해 특별히 만들어져 있는 대시보드를 복제할 수도 있습니다.

기본 요건이 충족되었으면 BigQuery에서 사용량 측정 및 Cloud Billing 데이터를 쿼리하는 데이터 스튜디오 데이터 소스를 만듭니다. 그 다음에는 프로젝트에 데이터 스튜디오 대시보드를 복사하고 세 개의 데이터 소스를 사용하도록 구성합니다. 마지막으로, 대시보드를 사용하여 클러스터의 사용량 측정을 파악할 수 있습니다.

기본 요건

  1. 아직 사용 설정되지 않은 경우, BigQuery로 Google Cloud Platform 청구 데이터 내보내기를 사용 설정합니다. 이 프로세스 중에 데이터세트를 만듭니다. 하지만 데이터세트의 테이블이 표시되고 입력되기 시작하는 데 최대 5시간이 걸립니다. 테이블이 나타나면 이름을 메모합니다. gcp_billing_export_v1_<var>BILLING_ACCOUNT_ID</var>와 같은 식으로 이름이 지정됩니다.
  2. 아직 사용 설정되지 않은 경우, 데이터 스튜디오를 사용 설정합니다.
  3. 대시보드를 작동하는 쿼리를 수정하는 데 필요한 다음과 같은 정보를 수집합니다.

    • Cloud Billing 내보내기 데이터세트와 첫 번째 기본 요건에 정한 테이블 이름
    • BigQuery 데이터세트 만들기에서 만든 사용량 측정 데이터세트 및 테이블 이름
    • GCP 프로젝트 ID

BigQuery 데이터 소스 만들기

이러한 쿼리는 복잡하지만, 자리표시자 값을 기본 요건을 완료하면서 수집한 값으로 바꾸기만 하면 됩니다. 각 쿼리에서 다음을 바꿉니다.

  • PROJECT_ID는 프로젝트 ID(프로젝트 이름이 아님)로 바꿉니다.
  • USAGE_METERING_DATASET는 클러스터가 해당 사용량 측정을 작성하는 데이터세트로 바꿉니다.
  • BILLING_DATASETBILLING_TABLE은 내보내는 Cloud Billing 데이터를 받는 데이터세트와 테이블로 바꿉니다.

아래의 각 쿼리에 대해 데이터 스튜디오 데이터 소스를 만듭니다.

  1. 데이터 소스로 이동합니다.
  2. 화면 오른쪽 하단의 + 아이콘을 클릭하여 데이터 소스를 추가합니다.
  3. BigQuery를 선택합니다.
  4. 커스텀 쿼리를 선택한 후에 프로젝트 ID를 선택합니다.
  5. 데이터 소스의 이름을 지정합니다. 화면 위쪽에 있는 제목 없는 데이터 소스라는 단어를 클릭하고, 쿼리를 설명하는 이름으로 이 텍스트를 대체합니다. 아래에 있는 각 쿼리의 제목이 데이터 소스에 적절한 이름입니다.
  6. 쿼리에 있는 모든 자리표시자를 바꾼 후에는 쿼리 편집기에 붙여넣습니다. 이전 SQL 사용이 선택되지 않았는지 확인합니다.
  7. 화면 오른쪽 상단의 연결을 클릭합니다.

BreakdownQuery 쿼리

붙여넣기 전에 자체 값을 예에 삽입하려면 highlighted 상태인 필드를 클릭하여 값을 수정합니다. 값을 재설정하려면 이 페이지를 새로고침합니다.

SELECT
  resource_usage.cluster_name,
  resource_usage.cluster_location,
  resource_usage.namespace,
  resource_usage.labels,
  resource_usage.resource_name,
  resource_usage.sku_id,
  resource_usage.start_time AS usage_start_time,
  resource_usage.end_time AS usage_end_time,
  resource_usage.usage.amount * gcp_billing_export.rate AS cost
FROM
  `PROJECT_ID.USAGE_METERING_DATASET.gke_cluster_resource_usage` AS resource_usage
LEFT JOIN (
  SELECT
    sku.id AS sku_id,
    SUM(cost) / SUM(usage.amount) AS rate,
    MIN(usage_start_time) AS min_usage_start_time,
    MAX(usage_end_time) AS max_usage_end_time
  FROM
    `PROJECT_ID.BILLING_DATASET.BILLING_TABLE`
  WHERE
    project.id = "PROJECT_ID"
  GROUP BY
    sku_id) AS gcp_billing_export
ON
  resource_usage.sku_id = gcp_billing_export.sku_id
WHERE
  resource_usage.start_time >= gcp_billing_export.min_usage_start_time
  AND resource_usage.end_time <= gcp_billing_export.max_usage_end_time

GKEProjectCostFromGCP 쿼리

붙여넣기 전에 자체 값을 예에 삽입하려면 highlighted 상태인 필드를 클릭하여 값을 수정합니다. 값을 재설정하려면 이 페이지를 새로고침합니다.

SELECT
*
FROM
  `PROJECT_ID.BILLING_DATASET.BILLING_TABLE`
WHERE
  project.id = "PROJECT_ID"

데이터 스튜디오 대시보드 만들기

프로젝트에 복사할 수 있는 대시보드를 만들었습니다. 대시보드를 복사할 때, 방금 만든 세 개의 데이터 소스를 선택하라는 메시지가 나타납니다.

  1. 이 대시보드 링크를 클릭합니다.
  2. 화면 오른쪽 상단의 복사 버튼, 이 보고서의 복사본 만들기 아이콘을 클릭합니다.
  3. 데이터 소스의 경우, 방금 만든 데이터 소스를 선택합니다. 첫 번째 필드에서 BreakdownQuery를 사용하고, 두 번째 필드에서 GKEProjectCostFromGCP를 사용합니다.
  4. 보고서 만들기를 클릭합니다.

이 단계는 사용량 측정 대시보드 데모에서 애니메이션으로 표시됩니다.

대시보드가 만들어지면 언제든지 프로젝트의 데이터 스튜디오 보고서 목록에서 액세스할 수 있습니다.

데이터 스튜디오 대시보드 사용

각 대시보드 화면도 사용량 측정 대시보드 데모에서 애니메이션으로 설명됩니다.

대시보드에는 세 가지 페이지가 있습니다.

  • 사용량 측정 월간 보기는 프로젝트의 사용량 측정을 사용하여 모든 클러스터의 전체 클러스터 사용률을 표시하는 한편 네임스페이스별로 리소스 유형(CPU, 메모리 등)에 대한 자세한 정보도 표시합니다. 보고서 데이터를 하나 이상의 개별 클러스터나 네임스페이스로 제한할 수 있습니다.

    사용량 측정 월간 보기 예

  • 사용량 측정 네임스페이스별 비용 트렌드는 네임스페이스별로 사용량 측정을 사용하여 모든 클러스터의 사용량 트렌드를 보여줍니다. 하나 이상의 개별 클러스터, 네임스페이스, 리소스, SKU를 선택할 수 있습니다.

    네임스페이스별 사용량 측정 비용 트렌드 예

  • 사용량 측정 라벨별 비용 트렌드는 라벨별로 사용량 측정을 사용하여 모든 클러스터의 사용량 트렌드를 보여줍니다. 하나 이상의 개별 클러스터, 네임스페이스, 리소스, SKU를 선택할 수 있습니다.

    라벨별 사용량 측정 비용 트렌드 예

화면 왼쪽 상단 근처의 화살표를 사용하여 페이지를 변경할 수 있습니다. 날짜 선택도구를 사용하여 페이지의 기간을 변경할 수 있습니다. 보고서를 조직 구성원들과 공유하거나 액세스 권한을 취소하려면 보고서 공유 링크를 클릭하세요. 이 링크는 + 기호가 있는 사람의 모습처럼 보입니다.

보고서를 프로젝트에 복사한 후에는 데이터 스튜디오 보고서 편집기를 사용하여 맞춤설정할 수 있습니다. Google에서 제공하는 보고서 템플릿이 변경되는 경우에도 복사본은 영향을 받지 않습니다.

사용량 측정 대시보드 데모

다음 애니메이션은 대시보드를 생성하고 사용하는 단계를 보여줍니다. 애니메이션이 자동으로 재생되지 않으면 애니메이션의 아무 곳이나 클릭하여 시작하세요.

사용량 측정 대시보드 데모(텍스트로도 설명됨)

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Kubernetes Engine