本節說明如何將一或多項指標從 Pod 或工作負載傳送至負載平衡器。
這些指標來自您執行的服務或應用程式。舉例來說,請參閱 vLLM 引擎公開的指標。
負載平衡器隨後就能搭配以使用率為準的負載平衡使用這項資料,更有效率地平衡工作負載。舉例來說,您可以使用這項功能監控工作負載使用量較高的區域,然後允許負載平衡器將流量重新導向至資源較充足的區域。以 vLLM 範例來說,gpu_cache_usage_perc 這項指標可用於追蹤使用率。
需求條件
Pod 的規定如下。
- 快速版叢集:GKE 1.34.1-gke.1127000 以上版本。
- 已啟用 Gateways API。
- 使用水平 Pod 自動調度資源搭配效能設定檔。
指標的規定如下。
- 指標必須可透過 HTTP 端點存取。
- 指標格式必須符合 Prometheus 標準。
負載平衡器對指標名稱設有限制。例如,名稱長度不得超過 64 個字元。如需完整限制清單,請參閱
BackendService的 API 參考資料中,有關backends[].customMetrics[].name欄位的詳細資料。如果服務的指標不符合這些限制,您可以使用「
exportName」欄位重新命名。系統僅支援介於 0 和 1 之間的計量指標,其中 1 代表 100% 的用量。
系統會忽略指標標籤,因此無法用來區分指標。請確保工作負載不會透過多個標籤公開相同指標。
每個叢集最多可公開 10 個指標。其他服務有各自的限制。例如,請參閱負載平衡器的限制和需求。請注意,叢集可使用多個負載平衡器。
根據自訂指標的 GKE 使用率負載平衡 (UBB)
您可以透過 GKE 資源用量負載平衡 (UBB),讓負載平衡器根據後端 Pod 的資源用量分配流量。您可以設定 UBB 使用與應用程式效能更相關的自訂指標,不必依賴 CPU 等一般指標。
在 GKE 中使用 UBB 和自訂指標時,適用下列限制:
- 僅限 Gateway API:您只能將 UBB 與自訂指標搭配使用,並透過 Gateway API 公開服務。GKE 會使用 GKE Gateway 控制器與 Gateway API 互動。Service 和 Ingress API 不支援使用自訂指標的 UBB。
- 沒有 Cloud Service Mesh:您無法搭配使用 UBB 和 Cloud Service Mesh 的自訂指標。
- 不支援的負載平衡器:您無法將 UBB 與自訂指標搭配使用,包括外部直通式網路負載平衡器和外部 Proxy 網路負載平衡器。
公開負載平衡指標
選擇要公開的指標。您可以選擇伺服器公開的任何指標,但必須符合上一節列出的需求。本範例使用名為
queue_depth_util的自訂指標。新增下列自訂資源,並替換專屬於指標和 Pod 的詳細資料。
apiVersion: autoscaling.gke.io/v1beta1 kind: AutoscalingMetric metadata: name: NAME namespace:NAMESPACE spec: selector: matchLabels: name: APP_LABEL_NAME endpoints: - port: METRIC_PORT path: METRIC_PATH metrics: - name: METRIC exportName: METRIC_NEW_NAME請根據工作負載替換下列項目:
NAME:AutoscalingMetric 物件的名稱。NAMESPACE:Pod 所在的命名空間。APP_LABEL_NAME:用於 Pod 的標籤。METRIC_PORT:通訊埠編號。METRIC_PATH:指標的路徑。確認服務或應用程式使用的路徑,這個路徑通常是/metrics。METRIC:要公開的指標名稱。選用:
METRIC_NEW_NAME:您可以使用這個欄位重新命名指標。如果指標名稱不符合負載平衡器設定的名稱限制,請使用這個欄位將指標重新命名為有效名稱。如需完整限制清單,請參閱
BackendService的 API 參考資料中,有關backends[].customMetrics[].name欄位的詳細資料。
使用下列指令套用資源:
kubectl apply -f FILE_NAME.yaml將
FILE_NAME替換成 YAML 檔案的名稱。新增自訂資源後,指標會推送至自動調整資源配置 API。系統每隔幾秒就會讀取指標,並傳送至負載平衡器。
如要將這項信號用於負載平衡,請提供
GCPBackendPolicy。例如:kind: GCPBackendPolicy apiVersion: networking.gke.io/v1 metadata: name: my-backend-policy spec: targetRef: group: "" kind: Service name: store-v1 default: balancingMode: CUSTOM_METRICS customMetrics: - name: gke.named_metrics.queue_depth_util dryRun: false
請注意,Prometheus 報表的指標遵循不同的命名標準。
回報負載平衡指標時,GKE 指標代理程式會在內部附加 gke.named_metrics. 前置字元,以符合 BackendService API 的規定。
如要公開第二個指標,請按照相同步驟建立另一個自訂資源。
現在您已將指標公開給負載平衡器,可以設定負載平衡器使用這些指標。詳情請參閱「設定負載平衡器以使用自訂指標」。
如要進一步瞭解如何使用負載平衡器,請參閱「為 GKE 服務設定以使用率為準的負載平衡」。
排解負載平衡器公開的指標問題
如要確認指標是否已正確公開給負載平衡器,請執行下列操作:
- 在 GKE 指標代理程式中驗證記錄。如果嘗試公開指標時發生錯誤,記錄可能會指出有錯誤。如要進一步瞭解如何尋找錯誤,請參閱「排解系統指標問題」。
- 您可以在模擬測試模式中使用負載平衡器,查看收到的所有指標。如要進一步瞭解如何使用
dryRun旗標測試指標,請參閱設定負載平衡器以使用自訂指標。
後續步驟
- 如要進一步瞭解以使用率為準的負載平衡,請參閱關於 GKE 服務的以使用率為準負載平衡器。
- 瞭解如何為 GKE 服務設定以使用率為準的負載平衡。