瞭解叢集資源使用量

本頁說明如何使用 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 啟用帳單匯出功能

啟用用量計算服務

如要啟用用量計算服務,您必須先針對單一叢集、專案中的多個叢集或整個專案建立 BigQuery 資料集。如要進一步瞭解如何選擇資料集與叢集間的對應關係,請參閱選擇一個或多個 BigQuery 資料集

接下來,建立或調整叢集,以使用用量計算服務。

建立 BigQuery 資料集

如要對 Google Cloud Platform 專案中的叢集採用用量計算服務,您必須先建立 BigQuery 資料集,接著設定叢集使用該資料集。您可以使用一個 BigQuery 資料集,儲存同一項專案中不同叢集的用量計算資料。

如欲瞭解詳情,請參閱建立資料集

啟用叢集的用量計算服務

如要對新增或既有的叢集啟用用量計算服務,在建構 gcloud 指令時需使用 --resource-usage-bigquery-dataset BIGQUERY_DATASET 標記。您目前還無法使用 Google Cloud Platform 主控台啟用用量計算服務。

建立新叢集:

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

檢查用量計算服務是否已啟用

使用 gcloud beta container clusters describe 指令,以檢驗叢集是否啟用用量計算服務,以及哪一個 BigQuery 資料集儲存該叢集的用量計算資料。請將下列範例中的 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 字串 GKE 叢集所屬的 Compute Engine 區域或地區名稱。
cluster_name 字串 GKE 叢集名稱。
namespace 字串 產生用量的 Kubernetes 命名空間。
resource_name 字串 資源名稱,例如「cpu」、「memory」及「storage」。
sku_id 字串 底層 GCP 雲端資源的 SKU ID。
start_time 時間戳記 開始使用時的 UNIX 時間戳記。
end_time 時間戳記 結束使用時的 UNIX 時間戳記。
fraction 浮點數 產生用量時所占用的雲端資源分數。僅由單一命名空間使用的特定雲端資源,此分數固定為 1.0。對於在多個命名空間之間共享的資源,分數計算為請求的數量除以底層雲端資源的總容量。
cloud_resource_size 整數 底層 GCP 資源的大小。例如,n1-standard-2 執行個體上的 vCPU 大小為 2。
labels.key 字串 與該用量相關的 Kubernetes 標籤索引鍵。
labels.value 字串 與該用量相關的 Kubernetes 標籤值。
project.id 字串 GKE 叢集所屬專案的 ID。
usage.amount 浮點數 使用的 usage.unit 數量。
usage.unit 字串 資源用量的基本測量單位,例如標準儲存空間的基本單位為「位元組-秒」

選擇一個或多個 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 中的用量計算服務及雲端帳單資料。接下來,請複製數據分析資訊主頁到您的專案中,並將其設定為使用三個資料來源。最後,您可使用資訊主頁瞭解叢集的用量計算結果。

先決條件

  1. 啟用將 Google Cloud Platform 帳單資料匯出到 BigQuery 的功能 (若此功能還未啟用)。在這過程中將會建立一個資料集,但資料集中的資料表最多需要 5 個小時才會出現及開始填入資料。當資料表出現時,請記下其名稱。該名稱會採用類似 gcp_billing_export_v1_<var>BILLING_ACCOUNT_ID</var> 的格式。
  2. 啟用數據分析 (若此功能還未啟用)。
  3. 收集以下資訊。您將需要使用這些資訊來調整查詢以在資訊主頁上查看結果:

    • 第一個先決條件中的雲端帳單匯出資料集與資料表名稱
    • 建立 BigQuery 資料集一節建立的用量計算服務資料集與資料表名稱
    • GCP 專案 ID

建立 BigQuery 資料來源

這些查詢有一定複雜度,但您只需要在完成先決條件時,將預留位置的值替換為您收集的值即可。在每個查詢中,進行以下替換:

  • PROJECT_ID 替換為專案 ID (非專案名稱)。
  • USAGE_METERING_DATASET 替換為叢集寫入其用量計算服務資料的資料集。
  • BILLING_DATASETBILLING_TABLE 替換為匯出雲端帳單資料的資料集和資料表。

對底下的每個查詢建立數據分析資料來源。

  1. 造訪資料來源
  2. 點選靠近螢幕右下角的 + 圖示以新增資料來源。
  3. 選擇 [BigQuery]
  4. 選擇 [Custom Query] (自訂查詢),接著選擇您的專案 ID。
  5. 命名您的資料來源。點選畫面上方的 [Untitled Data Source] (無標題資料來源),並用描述性名稱替換這段文字,以命名您的查詢,底下每個查詢的標題都可做為資料來源的適當名稱。
  6. 替換查詢中的所有預留位置後,將查詢貼入至查詢編輯器。請勿選取 [Use Legacy SQL] (使用舊版 SQL)。
  7. 點選螢幕右上角的 [Connect] (連線)。

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. 點選 [Create Report] (建立報表)。

用量計算服務資訊主頁展示會以動畫的方式呈現這些步驟。

資訊主頁已建立完成,您可隨時在專案的數據分析報表清單中存取此資訊主頁。

使用數據分析資訊主頁

用量計算服務資訊主頁展示也會以動畫方式呈現每個資訊主頁畫面。

資訊主頁包含三個不同的頁面:

  • 用量計算服務月報:針對專案中所有使用用量計算服務的叢集,計算出整體叢集用量比例,並依命名空間整理出各資源類型的詳細資訊 (例如 CPU 或記憶體)。您可以將報告資料限制為一個或多個獨立的叢集或命名空間。

    用量計算服務月表範例

  • 依命名空間區分用量計算服務成本趨勢:依命名空間顯示所有使用用量計算服務叢集的用量趨勢。您可選取一個或多個獨立的叢集、命名空間、資源或 SKU。

    依命名空間區分用量計算服務成本趨勢的範例

  • 依標籤區分用量計算服務成本趨勢:依標籤顯示所有使用用量計算服務叢集的用量趨勢。您可選取一個或多個獨立的叢集、命名空間、資源或 SKU。

    依標籤區分用量計算服務成本趨勢的範例

您可利用畫面左上方附近的箭頭翻頁,以及使用日期選擇器更改頁面的時間範圍。如要與組織的成員共用報表或是撤銷成員的存取權,請點選 [Share Report] (共用報表) 連結 (旁邊有個 + 號的人像)。

將報表複製到專案後,您可以使用數據分析報表編輯器自訂其內容。即使 Google 提供的報表範本變更,您的副本也不受影響。

用量計算服務資訊主頁展示

底下的動畫展示了建立使用資訊主頁的步驟。若動畫沒有自動播放,隨意點擊範圍內任意一處以開始。

用量計算服務資訊主頁的展示,也有使用文字描述

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Kubernetes Engine 說明文件