Esporre metriche personalizzate per i bilanciatori del carico

Questa sezione descrive come inviare una o più metriche da un pod o un workload al bilanciatore del carico.

Queste metriche provengono dal servizio o dall'applicazione che stai eseguendo. Ad esempio, consulta le metriche esposte dal motore vLLM.

Il bilanciatore del carico può quindi utilizzare questi dati con il bilanciamento del carico basato sull'utilizzo per bilanciare i workload in modo più efficiente. Ad esempio, puoi utilizzare questa funzionalità per monitorare le regioni con un utilizzo più intenso del workload e poi consentire al bilanciatore del carico di reindirizzare il traffico verso la regione con più risorse disponibili. Dall'esempio vLLM, una metrica che potrebbe essere utile per monitorare l'utilizzo è gpu_cache_usage_perc.

Requisiti

I requisiti per i pod sono i seguenti.

I requisiti per le metriche sono i seguenti.

  • Le metriche devono essere accessibili su un endpoint HTTP.
  • Il formato delle metriche deve essere standard Prometheus.
  • I bilanciatori del carico hanno limitazioni sui nomi delle metriche. Ad esempio, il nome non può superare i 64 caratteri. Per l'elenco completo delle limitazioni, consulta i dettagli sul campo backends[].customMetrics[].name nei riferimenti per l'API BackendService.

    Se la metrica del tuo servizio non rispetta queste limitazioni, puoi rinominarla utilizzando il campo exportName.

  • Sono supportate solo le metriche del misuratore comprese tra 0 e 1, dove 1 rappresenta l'utilizzo del 100%.

  • Le etichette delle metriche vengono ignorate, pertanto non possono essere utilizzate per distinguere le metriche. Assicurati che il tuo workload non esponga la stessa metrica con più etichette.

  • È possibile esporre un massimo di 10 metriche per cluster. Altri servizi hanno i propri limiti. Ad esempio, consulta i limiti e i requisiti per i bilanciatori del carico. Tieni presente che un cluster può utilizzare più di un bilanciatore del carico.

Esporre le metriche per il bilanciamento del carico

  1. Scegli una metrica da esporre. Puoi scegliere qualsiasi metrica esposta dal server e che soddisfi anche i requisiti elencati nella sezione precedente.

  2. Aggiungi la seguente risorsa personalizzata, sostituendo i dettagli specifici per la metrica e il 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
    

    Sostituisci quanto segue in base al tuo workload:

    • NAME: il nome dell'oggetto AutoscalingMetric.
    • NAMESPACE: lo spazio dei nomi in cui si trovano i pod.
    • APP_LABEL_NAME: l'etichetta utilizzata per il pod.
    • METRIC_PORT: il numero di porta.
    • METRIC_PATH: il percorso della metrica. Verifica il percorso utilizzato dal tuo servizio o dalla tua applicazione. Questo percorso è spesso /metrics.
    • METRIC: il nome della metrica che stai esponendo.
    • (Facoltativo) METRIC_NEW_NAME: puoi utilizzare questo campo per rinominare la metrica. Se il nome della metrica non è conforme alle limitazioni del nome impostate dal bilanciatore del carico, utilizza questo campo per rinominarlo con un nome valido.

      Per l'elenco completo delle limitazioni, consulta i dettagli sul campo backends[].customMetrics[].name nei riferimenti per l'API BackendService.

  3. Applica la risorsa utilizzando il seguente comando:

    kubectl apply -f FILE_NAME.yaml
    

    Sostituisci FILE_NAME con il nome del file YAML.

    Dopo aver aggiunto la risorsa personalizzata, la metrica viene inviata all'API di scalabilità automatica. La metrica viene letta ogni pochi secondi e inviata al bilanciatore del carico.

Per esporre una seconda metrica, segui gli stessi passaggi per creare un'altra risorsa personalizzata.

Ora che hai esposto le metriche al bilanciatore del carico, puoi configurarlo in modo che le utilizzi. Per maggiori dettagli, vedi Configurare il bilanciatore del carico in modo che utilizzi metriche personalizzate.

Per saperne di più su come utilizzare il bilanciatore del carico, consulta Configurare il bilanciamento del carico basato sull'utilizzo per i servizi GKE.

Risolvi i problemi relativi alle metriche esposte al bilanciatore del carico

Per verificare che le metriche siano esposte correttamente al bilanciatore del carico, puoi procedere nel seguente modo:

Passaggi successivi