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


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

개요

GKE 사용량 측정은 클러스터 워크로드의 리소스 요청 및 실제 리소스 사용량에 대한 정보를 추적합니다. 현재 GKE 사용량 측정은 CPU, GPU, TPU, 메모리, 스토리지, 그리고 선택적으로 네트워크 이그레스에 대한 정보를 추적합니다. Kubernetes 네임스페이스, 라벨 또는 이 둘의 조합을 사용하여 리소스 사용량을 구별할 수 있습니다.

데이터는 BigQuery에 저장되며, 여기에서 데이터를 직접 쿼리하거나 Looker Studio와 같은 외부 도구를 사용하여 분석하도록 내보낼 수 있습니다.

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

  • 각 테넌트가 지정된 네임스페이스 내에서 작동하는 멀티 테넌트 클러스터에서 테넌트당 리소스 요청 및 실제 리소스 소비를 추적합니다.
  • 워크로드와 연결된 Kubernetes 객체에 고유한 라벨을 할당하여 특정 클러스터에서 실행 중인 워크로드의 리소스 소비를 확인합니다.
  • 리소스 요청이 실제 리소스 소비와 크게 다른 워크로드를 식별하여 각 워크로드에 리소스를 보다 효율적으로 할당할 수 있습니다.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.

제한사항

샘플 BigQuery 쿼리 및 Looker Studio 템플릿을 사용하여 GKE 사용량 측정 데이터를 BigQuery에서 내보낸 Google Cloud 청구 데이터와 결합할 수 있습니다. 이렇게 하면 클러스터, 네임스페이스, 라벨별로 비용 내역을 추정할 수 있습니다.

GKE 사용량 측정 데이터는 전적으로 참고용이며 Google Cloud 청구에 영향을 미치지 않습니다. 청구 데이터는 오로지 Google Cloud 청구 인보이스를 기준으로 합니다.

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

  • 특별 계약 할인 또는 크레딧은 고려되지 않습니다.
  • GKE 범위 밖에서 생성된 리소스는 네임스페이스나 라벨별로 추적되지 않습니다.
  • 포드 및 PersistentVolumeClaim 객체의 라벨만 사용량 보고에서 추적됩니다.
  • 동적으로 프로비저닝된 PersistentVolume만 지원됩니다.
  • pd-standard 및 pd-ssd 디스크 유형만 지원됩니다. GKE 사용량 측정에는 동일한 SKU의 두 디스크 유형 모두에 대한 리전별 버전 비용이 포함될 수 있습니다.
  • Looker Studio에서는 버스팅이 가능한 머신 유형 시각화를 지원하지 않습니다.
  • 데이터를 클러스터와 동일한 프로젝트에 있는 BigQuery 데이터 세트로만 내보낼 수 있습니다.
  • 포트 27304, 47082, 47083은 네트워크 이그레스 추적에 예약되어 있으므로 이러한 포트를 사용하면 안 됩니다.
  • 커스텀 StorageClass 객체는 지원되지 않습니다.
  • 네트워크 이그레스 측정은 Windows Server 노드에서 지원되지 않습니다.
  • 네트워크 이그레스 측정은 공유 VPC 또는 VPC 네트워크 피어링에서 지원되지 않습니다.
  • 노드가 150개를 초과하는 클러스터에는 네트워크 이그레스 측정이 지원되지 않습니다.

기본 요건

GKE 사용량 측정을 사용하려면 다음과 같은 기본 요건이 충족되어야 합니다.

  • 실제 리소스 소비를 추적하려면 클러스터에서 GKE 1.14.2-gke.3 이상을 사용해야 합니다.
  • E2 또는 N2 머신 유형을 사용하는 경우 클러스터 버전은 GKE 1.15.11-gke.9 이상이어야 합니다.
  • BigQuery의 청구 내보내기가 사용 설정됩니다. BigQuery 사용량과 관련된 요금이 부과됩니다.
  • 버전 250.0.0 이상의 gcloud 명령어가 필요합니다. gcloud --version을 사용하여 확인합니다.
  • Google Cloud 프로젝트에서 BigQuery API를 사용 설정해야 합니다. 2018년 7월 이후 GKE를 처음 사용 설정한 경우 API가 이미 사용 설정되어 있습니다.

GKE 사용량 측정 사용 설정

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

그런 다음 새로운 클러스터를 만들거나 기존 클러스터를 수정하여 GKE 사용량 측정을 사용 설정합니다.

원하는 경우 Looker Studio 대시보드를 만들어 클러스터의 리소스 사용량을 시각화할 수 있습니다.

BigQuery 데이터 세트 만들기

Google Cloud 프로젝트의 클러스터에 GKE 사용량 측정을 사용하려면 먼저 BigQuery 데이터 세트를 만든 다음 이를 사용하도록 클러스터를 구성합니다. 단일 BigQuery 데이터 세트를 사용하여 동일한 프로젝트의 여러 클러스터에 대한 리소스 사용량 정보를 저장할 수 있습니다.

자세한 내용은 데이터 세트 만들기를 참조하세요. 테이블이 만료되지 않도록 데이터세트의 Default table expirationNever로 설정합니다. 테이블이 만료되면 자동으로 빈 테이블로 다시 생성됩니다.

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

gcloud 명령어 또는 Google Cloud 콘솔을 사용하여 새 클러스터 또는 기존 클러스터에서 GKE 사용량 측정을 사용 설정할 수 있습니다.

GKE 사용량 측정을 사용 설정하면 기본적으로 리소스 소비 측정도 사용 설정됩니다. 리소스 요청을 추적하면서 리소스 소비 측정을 선택적으로 사용 중지하려면 이 주제에서 gcloud 명령어를 사용하여 GKE 사용량 측정을 사용 설정하는 방법에 대한 자세한 안내를 참조하세요.

네트워크 이그레스 측정은 기본적으로 사용 중지되어 있습니다. 이를 사용 설정하려면 이 주제에서 선택사항: 네트워크 이그레스 측정 사용 설정에 있는 주의사항 및 안내를 참조하세요.

새 클러스터 만들기

gcloud CLI 또는 Google Cloud 콘솔을 사용하여 클러스터를 만들 수 있습니다.

gcloud

GKE 사용량 측정이 사용 설정된 클러스터를 만들려면 다음 명령어를 실행합니다.

gcloud container clusters create CLUSTER_NAME \
    --resource-usage-bigquery-dataset RESOURCE_USAGE_DATASET

다음을 바꿉니다.

  • CLUSTER_NAME: GKE 클러스터의 이름입니다.
  • RESOURCE_USAGE_DATASET: BigQuery 데이터 세트의 이름입니다.

리소스 소비 측정은 기본적으로 사용 설정되어 있습니다. 이를 사용 중지하고 리소스 요청만 추적하려면 위의 명령어에 --no-enable-resource-consumption- metering 플래그를 추가합니다. 또한 리소스 소비를 쿼리하지 않도록 이 주제의 나머지 부분에서 예시 쿼리를 수정해야 합니다.

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

콘솔

GKE 사용량 측정이 사용 설정된 클러스터를 만들려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 만들기를 클릭합니다.

  3. 탐색창의 클러스터에서 기능을 클릭합니다.

  4. GKE 사용량 측정 사용 설정을 선택합니다.

  5. BigQuery 데이터 세트의 이름을 입력합니다.

  6. 선택사항: 네트워크 이그레스 측정 사용 설정에서 주의사항과 안내를 검토한 후 네트워크 이그레스 측정 사용 설정을 선택합니다.

  7. 계속해서 클러스터를 구성한 다음 만들기를 클릭합니다.

기존 클러스터 구성

gcloud

기존 클러스터에서 GKE 사용량 측정을 사용 설정하려면 다음 명령어를 실행합니다.

gcloud container clusters update CLUSTER_NAME \
    --resource-usage-bigquery-dataset RESOURCE_USAGE_DATASET

리소스 소비 측정은 기본적으로 사용 설정되어 있습니다. 이를 사용 중지하고 리소스 요청만 추적하려면 위의 명령어에 --no-enable-resource-consumption- metering 플래그를 추가합니다. 또한 리소스 소비를 쿼리하지 않도록 이 주제의 나머지 부분에서 예시 쿼리를 수정해야 합니다.

--resource-usage-bigquery-dataset 플래그의 값을 변경하여 기존 클러스터가 사용량 측정 데이터를 저장하는 데 사용하는 데이터 세트를 변경할 수도 있습니다.

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

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 수정하려는 클러스터 옆에 있는 작업을 클릭한 다음 수정을 클릭합니다.

  3. 기능에서 GKE 사용량 측정 옆에 있는 수정을 클릭합니다.

  4. GKE 사용량 측정 사용 설정을 선택합니다.

  5. BigQuery 데이터 세트의 이름을 입력합니다.

  6. 선택사항: 네트워크 이그레스 측정 사용 설정에서 주의사항과 안내를 검토한 후 네트워크 이그레스 측정 사용 설정을 선택합니다.

  7. 변경사항 저장을 클릭합니다.

선택사항: 네트워크 이그레스 측정 사용 설정

기본적으로 네트워크 이그레스 데이터는 수집하거나 내보내지 않습니다. 네트워크 이그레스를 측정하려면 각 노드에서 네트워크 측정 에이전트(NMA)가 실행 중이어야 합니다. NMA는 권한이 있는 포드로 실행되고, 노드에서 일부 리소스(CPU, 메모리, 디스크 공간)를 사용하며, 연결 추적 흐름을 계산하기 위해 커널에서 nf_conntrack_acct sysctl 플래그를 사용 설정합니다.

이러한 주의사항을 따르면 네트워크 이그레스 추적을 GKE 사용량 측정과 함께 사용하도록 설정할 수 있습니다. 네트워크 이그레스 추적을 사용 설정하려면 클러스터를 만들거나 업데이트할 때 --enable-network-egress-metering 옵션을 포함하거나 Google Cloud 콘솔에서 GKE 사용량 측정을 사용 설정할 때 네트워크 이그레스 측정 사용 설정을 선택합니다.

네트워크 이그레스 측정을 사용 중지하려면 명령줄로 클러스터를 업데이트할 때 --no-enable-network-egress-metering 플래그를 추가합니다. 또는 Google Cloud 콘솔에서 클러스터의 GKE 사용량 측정 섹션에서 네트워크 이그레스 측정 사용 설정을 선택 해제할 수 있습니다.

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

클러스터에서 GKE 사용량 측정이 사용 설정되었는지 확인하고 클러스터의 리소스 사용량 데이터가 저장된 BigQuery 데이터 세트를 확인하기 위해 다음 명령어를 실행합니다.

gcloud container clusters describe CLUSTER_NAME \
    --format="value(resourceUsageExportConfig)"

GKE 사용량 측정이 사용 설정되어 있지 않으면 출력이 비어 있으며, 그렇지 않으면 다음 예시 출력과 같이 클러스터에서 사용하는 BigQuery 데이터 세트가 표시됩니다.

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

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

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

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

Looker Studio 대시보드를 사용하여 GKE 사용량 측정 데이터 시각화

Looker Studio 대시보드를 사용하여 GKE 사용량 측정 데이터를 시각화할 수 있습니다. 이렇게 하면 클러스터 이름, 네임스페이스, 라벨에 따라 데이터를 필터링할 수 있습니다. 또한 보고 기간을 동적으로 조정할 수도 있습니다. Looker Studio 및 BigQuery를 사용한 적이 있으면 맞춤설정된 대시보드를 만들 수 있습니다. 또한 GKE 사용량 측정을 위해 특별히 만든 대시보드를 클론할 수도 있습니다.

대시보드 사용으로 클러스터에서 시간 경과에 따른 리소스 요청 및 소비를 시각화할 수 있습니다.

기본 요건

  1. 아직 사용 설정되지 않은 경우 BigQuery로 Google Cloud 청구 데이터 내보내기를 사용 설정합니다.

    이 프로세스 중에 데이터 세트를 만듭니다. 하지만 데이터 세트 내의 테이블은 표시되고 입력이 시작될 때까지 최대 5시간까지 걸릴 수 있습니다. 테이블이 나타나면 이름은 gcp_billing_export_v1_BILLING_ACCOUNT_ID입니다.

  2. 프로젝트의 하나 이상의 클러스터에서 GKE 사용량 측정을 사용 설정합니다. BigQuery 데이터 세트에 선택한 이름을 확인합니다.

  3. Looker Studio를 아직 사용 설정하지 않았으면 사용 설정합니다.

  4. 대시보드 구성에 필요한 다음 정보를 수집합니다.

    • Cloud Billing 내보내기 데이터 세트 ID 및 데이터 테이블
    • GKE 사용량 측정 데이터 세트 ID
  5. BigQuery CLI 버전이 2.0.58 이상인지 확인합니다. 버전을 확인하려면 bq versiongcloud components update를 실행하여 BigQuery CLI를 업데이트합니다.

  6. 이 섹션의 명령어는 Linux 터미널이나 Cloud Shell에서 실행되어야 합니다.

BigQuery 비용 분석 표 만들기

  1. 다음 쿼리 템플릿 중 하나를 다운로드합니다.

    • 소비 측정을 사용 설정한 경우 this template을 다운로드합니다.
    • 소비 측정을 사용 설정하지 않은 경우 this template을 다운로드합니다.

    Cloud Shell을 사용하는 경우 이 파일을 다음 명령어를 수행하는 디렉터리에 복사합니다.

  2. 다음 명령어를 실행하여 환경 변수를 설정합니다.

    export GCP_BILLING_EXPORT_TABLE_FULL_PATH=YOUR_BILLING_EXPORT_TABLE_PATH
    export USAGE_METERING_PROJECT_ID=YOUR_USAGE_METERING_PROJECT_ID
    export USAGE_METERING_DATASET_ID=YOUR_USAGE_METERING_DATASET_ID
    export USAGE_METERING_START_DATE=YOUR_USAGE_METERING_START_DATE
    export COST_BREAKDOWN_TABLE_ID=YOUR_COST_BREAKDOWN_TABLE_ID
    export USAGE_METERING_QUERY_TEMPLATE=YOUR_TEMPLATE_PATH
    export USAGE_METERING_QUERY=YOUR_RENDERED_QUERY_PATH
    

    다음을 바꿉니다.

    • YOUR_BILLING_EXPORT_TABLE_PATH: 생성된 결제 내보내기 테이블의 경로입니다. 이 테이블의 이름은 PROJECT_ID.DATASET_ID.gcp_billing_export_v1_xxxx와 유사합니다.
    • YOUR_USAGE_METERING_PROJECT_ID: Google Cloud 프로젝트 이름입니다.
    • YOUR_USAGE_METERING_DATASET_ID: BigQuery에서 만든 데이터 세트의 이름입니다(예: all_billing_data).
    • YOUR_USAGE_METERING_START_DATE: YYYY-MM-DD 형식의 쿼리 시작일입니다.
    • YOUR_COST_BREAKDOWN_TABLE_ID: 선택한 새 테이블의 이름입니다(예: usage_metering_cost_breakdown). 이 테이블은 Looker Studio의 입력으로 사용됩니다.
    • YOUR_TEMPLATE_PATH: 다운로드한 쿼리 템플릿의 이름(usage_metering_query_template_request_and_consumption.sql 또는 usage_metering_query_template_request_only.sql)입니다.
    • YOUR_RENDERED_QUERY_PATH: 선택한 렌더링된 쿼리의 경로 이름(예: cost_breakdown_query.sql)입니다.

    예를 들어 환경 변수는 다음과 같습니다.

    export GCP_BILLING_EXPORT_TABLE_FULL_PATH=my-billing-project.all_billing_data.gcp_billing_export_v1_xxxx
    export USAGE_METERING_PROJECT_ID=my-billing-project
    export USAGE_METERING_DATASET_ID=all_billing_data
    export USAGE_METERING_START_DATE=2022-05-01
    export COST_BREAKDOWN_TABLE_ID=usage_metering_cost_breakdown
    export USAGE_METERING_QUERY_TEMPLATE=usage_metering_query_template_request_only.sql
    export USAGE_METERING_QUERY=cost_breakdown_query.sql
    
  3. 템플릿에서 쿼리를 렌더링합니다.

    sed \
    -e "s/\${fullGCPBillingExportTableID}/$GCP_BILLING_EXPORT_TABLE_FULL_PATH/" \
    -e "s/\${projectID}/$USAGE_METERING_PROJECT_ID/" \
    -e "s/\${datasetID}/$USAGE_METERING_DATASET_ID/" \
    -e "s/\${startDate}/$USAGE_METERING_START_DATE/" \
    "$USAGE_METERING_QUERY_TEMPLATE" \
    > "$USAGE_METERING_QUERY"
    
  4. 24시간마다 업데이트되는 새 비용 분석 테이블을 만듭니다.

    bq query \
    --project_id=$USAGE_METERING_PROJECT_ID \
    --use_legacy_sql=false \
    --destination_table=$USAGE_METERING_DATASET_ID.$COST_BREAKDOWN_TABLE_ID \
    --schedule='every 24 hours' \
    --display_name="GKE Usage Metering Cost Breakdown Scheduled Query" \
    --replace=true \
    "$(cat $USAGE_METERING_QUERY)"
    

    쿼리 예약에 대한 자세한 내용은 예약된 쿼리 설정을 참조하세요.

BigQuery 데이터 소스 만들기

  1. Looker Studio에서 데이터 소스로 이동합니다.
  2. 만들기를 클릭한 다음 데이터 소스를 클릭합니다.
  3. BigQuery를 선택합니다.
  4. 데이터 소스의 이름을 지정합니다. 툴바에서 제목 없는 데이터 소스라는 단어를 클릭하여 텍스트를 설명이 포함된 이름으로 바꿉니다.
  5. 커스텀 쿼리를 선택한 후에 프로젝트 ID를 선택합니다.
  6. 다음 쿼리를 쿼리 편집기에 붙여넣습니다.

    SELECT
      *
    FROM
      `USAGE_METERING_PROJECT_ID.USAGE_METERING_DATASET_ID.COST_BREAKDOWN_TABLE_ID`
    
  7. 연결을 클릭합니다.

Looker Studio 대시보드 만들기

  1. 프로젝트에 GKE 사용량 측정 대시보드를 복사합니다.
  2. 옵션 더보기를 클릭한 다음 사본 만들기를 클릭합니다.
  3. 이 보고서 복사 대화상자의 새 데이터 소스 목록에서 만든 데이터 소스를 선택합니다.
  4. 보고서 복사를 클릭합니다.

대시보드가 생성되면 언제든지 프로젝트의 Looker Studio 보고서 목록에서 액세스할 수 있습니다.

Looker Studio 대시보드 사용

대시보드에는 다음과 같은 여러 보고서가 있습니다.

사용량 분석
이 보고서에는 동일한 BigQuery 데이터 소스로 사용량 측정 데이터를 전송하는 모든 클러스터 간의 전체 클러스터 사용량 비율이 포함됩니다. 또한 CPU, 메모리, 네임스페이스별 네트워크 이그레스와 같은 리소스 유형에 대한 세부 정보가 포함됩니다. 보고서 데이터를 하나 이상의 개별 클러스터나 네임스페이스로 제한할 수 있습니다.
할당되지 않은 리소스가 있는 사용량 분석
이 보고서는 사용량 분석 보고서와 동일하지만 모든 네임스페이스 간에 할당되지 않은 리소스를 비례하여 분산합니다. 할당되지 않은 리소스에는 유휴 리소스와 함께 GKE 사용량 측정에 의해 현재 특정 테넌트에 할당되지 않은 리소스가 포함됩니다.
비용 추세 * 네임스페이스별 드릴다운
사용량 측정 데이터를 동일한 BigQuery 데이터 소스로 전송하는 모든 클러스터의 네임스페이스별 사용량 추세입니다. 하나 이상의 개별 클러스터, 네임스페이스, 리소스 또는 SKU를 선택할 수 있습니다.
비용 추세 * 라벨별 드릴다운
사용량 측정 데이터를 동일한 BigQuery 데이터 소스로 보내는 모든 클러스터의 비용 추세입니다. 하나 이상의 개별 클러스터, 리소스, 라벨 이름 또는 라벨 값을 선택할 수 있습니다.
소비 기반 측정
사용량 측정 데이터를 동일한 BigQuery 데이터 소스로 보내는 모든 클러스터의 소비 추세입니다. 하나 이상의 개별 네임스페이스, 라벨 키 또는 라벨 값을 선택할 수 있습니다. 이 보고서는 하나 이상의 클러스터에서 리소스 소비 측정이 사용 설정된 경우에만 작성됩니다.

탐색 메뉴를 사용하여 페이지를 변경할 수 있습니다. 날짜 선택도구를 사용하여 페이지의 기간을 변경할 수 있습니다. 보고서를 조직 구성원들과 공유하거나 액세스 권한을 취소하려면 보고서 공유를 클릭합니다.

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

BigQuery를 사용하여 GKE 사용량 측정 데이터 탐색

BigQuery를 사용하여 리소스 요청에 대한 데이터를 보려면 관련 BigQuery 데이터 세트의 gke_cluster_resource_usage 테이블을 쿼리합니다.

실제 리소스 소비에 대한 데이터를 보려면 gke_cluster_resource_consumption 테이블을 쿼리합니다. 이그레스에 대한 리소스 요청 개념이 없으므로 네트워크 이그레스 소비 데이터는 gke_cluster_resource_usage에 남아 있습니다.

BigQuery에서 쿼리 사용에 대한 자세한 내용은 쿼리 실행을 참조하세요. 스키마의 필드는 향후 더 많은 필드가 추가될 수 있음에도 불구하고 안정적입니다.

아래의 쿼리는 간단한 예시입니다. 쿼리를 맞춤설정하여 필요한 데이터를 찾으세요.

리소스 요청 쿼리

SELECT
  cluster_name,
  labels,
  usage
FROM
  'CLUSTER_GCP_PROJECT.USAGE_METERING_DATASET.gke_cluster_resource_usage'
WHERE
  namespace="NAMESPACE"

리소스 소비 쿼리

SELECT
  cluster_name,
  labels,
  usage
FROM
  'CLUSTER_GCP_PROJECT.USAGE_METERING_DATASET.gke_cluster_resource_consumption'
WHERE
  namespace="NAMESPACE"

다음을 바꿉니다.

  • CLUSTER_GCP_PROJECT: 쿼리할 클러스터가 포함된 Google Cloud 프로젝트의 이름입니다.
  • USAGE_METERING_DATASET: 사용량 측정 테이블의 이름입니다.
  • NAMESPACE: 네임스페이스의 이름입니다.

기타 예시

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

BigQuery의 GKE 사용량 측정 스키마

다음 테이블은 BigQuery 데이터 세트의 GKE 사용량 측정 테이블의 스키마를 설명합니다. 클러스터가 리소스 소비 측정 및 리소스 요청을 지원하는 GKE 버전을 실행하는 경우, 동일한 스키마를 사용하여 추가 테이블이 생성됩니다.

필드 유형 설명
cluster_location STRING GKE 클러스터가 상주하는 Compute Engine 영역 또는 리전의 이름입니다.
cluster_name STRING GKE 클러스터의 이름입니다.
namespace STRING 사용량이 생성되는 Kubernetes 네임스페이스입니다.
resource_name STRING 'cpu', 'memory', 'storage' 등 리소스의 이름입니다.
sku_id STRING 기본 Google Cloud 클라우드 리소스의 SKU ID입니다.
start_time TIMESTAMP 사용량이 시작되었을 때의 UNIX 타임스탬프입니다.
end_time TIMESTAMP 사용량이 끝났을 때의 UNIX 타임스탬프입니다.
fraction FLOAT 사용량에서 사용되는 클라우드 리소스의 분수입니다. 단일 네임스페이스에서만 사용되는 전용 클라우드 리소스의 경우, 분수는 항상 1.0입니다. 여러 네임스페이스 간에 공유되는 리소스의 경우, 요청된 양을 기본 클라우드 리소스의 총 용량으로 나눠서 분수를 계산합니다.
cloud_resource_size INTEGER 기본 Google Cloud 리소스의 크기입니다. 예를 들어 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입니다.

GKE 사용량 측정은 다음 방법으로 해석되어야 합니다.

  1. CPU usage.unit로, 포드에서 요청하거나 소비한 총 CPU 시간입니다. 예를 들어 각각 CPU 30개를 요청하고 15분 동안 실행되는 포드 2개가 있는 경우 요청 테이블의 총량은 54,000초(포드 2개 * CPU 30개 * 15분 * 60초 / 분)입니다.

  2. 메모리 usage.unit바이트-초로, 포드에서 요청하거나 소비한 시간 경과에 따른 메모리의 적분입니다. 예를 들어 각각 30GiB를 요청하고 15분 동안 실행되는 포드 2개가 있는 경우 요청 테이블의 총량은 5.798+13바이트-초(포드 2개 * 30GiB * 15분 * 60초 / 분 * 1073741824바이트 / GiB)입니다.

GKE 사용량 측정 데이터가 BigQuery에 기록되는 시기 이해

GKE 사용량 측정이 BigQuery 측정항목에 사용량 레코드를 기록하는 조건에는 두 가지가 있습니다.

  1. 포드 단계가 succeeded 또는 failed로 변경되거나 포드가 삭제됩니다.
  2. 포드가 계속 실행 중일 때 레코드를 기록하는 시간별 일정 타임스탬프에 도달합니다.

    GKE 사용량 측정은 현재 실행 중인 모든 포드의 포드 사용량 레코드를 BigQuery에 쓰는 시간별 일정을 생성합니다. 일정 타임스탬프가 모든 클러스터에서 동일하지 않습니다.

    이 타임스탬프에서 실행 중인 포드가 여러 개이면 end_time이 동일한 사용량 레코드가 여러 개 검색됩니다. 이러한 사용량 레코드의 end_time은 시간별 일정 타임스탬프를 나타냅니다.

    또한 여러 포드가 여러 시간에 걸쳐 실행되는 경우 end_time이 다른 사용량 레코드 집합의 start_time과 일치하는 사용량 레코드 집합이 있습니다.

GKE 사용량 측정 사용 중지

gcloud

클러스터에서 GKE 사용량 측정을 사용 중지하려면 다음 명령어를 실행합니다.

gcloud container clusters update CLUSTER_NAME \
    --clear-resource-usage-bigquery-dataset

콘솔

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 수정하려는 클러스터 옆에 있는 작업을 클릭한 다음 수정을 클릭합니다.

  3. 기능에서 GKE 사용량 측정 옆에 있는 수정을 클릭합니다.

  4. GKE 사용량 측정 사용 설정을 선택 취소합니다.

  5. 변경사항 저장을 클릭합니다.

다음 단계