Auf dieser Seite wird beschrieben, wie Sie benutzerdefinierte Messwerte mit Ihren Application Load Balancern verwenden. Mit benutzerdefinierten Messwerten können Sie das Verhalten der Traffic-Verteilung Ihres Load Balancers so konfigurieren, dass es auf Messwerten basiert, die für Ihre Anwendungs- oder Infrastrukturanforderungen spezifisch sind, anstatt auf den standardmäßigen Auslastungs- oder ratenbasierten Messwerten von Google Cloud. Wenn Sie benutzerdefinierte Messwerte für Ihren Load Balancer definieren, können Sie Anwendungsanfragen flexibel an die Backend-Instanzen und ‑Endpunkte weiterleiten, die für Ihre Arbeitslast am besten geeignet sind.
Für GKE können Sie auch benutzerdefinierte Messwerte verwenden, die vom Dienst oder der Anwendung stammen, die Sie ausführen. Weitere Informationen finden Sie unter Benutzerdefinierte Messwerte verfügbar machen.
Der Load Balancer verwendet die Werte der benutzerdefinierten Messwerte, um die folgenden Entscheidungen zu treffen:
- Wählen Sie aus, welche Back-End-VM-Instanzgruppe oder Netzwerk-Endpunktgruppe Traffic empfangen soll.
- Wählen Sie aus, welche VM-Instanz oder welcher Endpunkt Traffic empfangen soll.
Hier einige Anwendungsbeispiele für benutzerdefinierte Messwerte:
Maximieren Sie die Nutzung Ihrer globalen Rechenkapazität, indem Sie Load-Balancing-Entscheidungen auf der Grundlage benutzerdefinierter Messwerte treffen, die für Ihre Anwendung am relevantesten sind, anstatt der Standardkriterien wie regionale Affinität oder Netzwerklatenz.
Wenn bei Ihren Anwendungen häufig Back-End-Verarbeitungslatenzen im Bereich von Sekunden auftreten, können Sie Ihre globale Rechenkapazität effizienter nutzen, indem Sie Anfragen anhand benutzerdefinierter Messwerte anstatt anhand der Netzwerklatenz per Load Balancing verteilen.
Rechenleistung maximieren: Load-Balancing-Entscheidungen basieren auf Kombinationen von Messwerten, die für Ihr Deployment spezifisch sind. Stellen Sie sich beispielsweise ein Szenario vor, in dem Ihre Anfragen sehr unterschiedliche Verarbeitungszeiten und Rechenanforderungen haben. In einem solchen Szenario führt das Load Balancing, das nur auf der Rate der Anfragen pro Sekunde basiert, zu einer ungleichmäßigen Lastverteilung. In diesem Fall sollten Sie möglicherweise einen benutzerdefinierten Messwert definieren, der die Last basierend auf einer Kombination aus der Anfragerate sowie der CPU- oder GPU-Auslastung ausgleicht, um Ihre Rechenressourcen optimal zu nutzen.
Back-Ends anhand benutzerdefinierter Messwerte automatisch skalieren, die für Ihre Anwendungsanforderungen am relevantesten sind. Sie können beispielsweise eine Autoscaling-Richtlinie definieren, mit der Ihre Back-End-Instanzen automatisch skaliert werden, wenn der konfigurierte benutzerdefinierte Messwert 80 % überschreitet. Dies wird durch die Verwendung von traffic-basierten Autoscaling-Messwerten (
autoscaling.googleapis.com|gclb-capacity-fullness) erreicht. Weitere Informationen finden Sie unter Autoscaling auf Basis des Load-Balancer-Traffics.
Unterstützte Load-Balancer und Back-Ends
Benutzerdefinierte Messwerte werden für die folgenden Application Load Balancer unterstützt:
- Globaler externer Application Load Balancer
- Regionaler externer Application Load Balancer
- Regionsübergreifender interner Application Load Balancer
- Regionaler interner Application Load Balancer
Benutzerdefinierte Messwerte werden für die folgenden Backend-Typen unterstützt:
- Verwaltete Instanzgruppen
- Zonale NEGs (mit
GCE_VM_IP_PORT-Endpunkten) - Hybridkonnektivitäts-NEGs
Funktionsweise von benutzerdefinierten Messwerten
Damit Ihr Load Balancer Entscheidungen zur Traffic-Verteilung auf Grundlage benutzerdefinierter Messwerte treffen kann, müssen Sie zuerst festlegen, welche Messwerte für Ihre spezielle Anwendung am relevantesten sind. Wenn Sie wissen, welche Messwerte Sie verwenden möchten, konfigurieren Sie Ihre Back-Ends so, dass sie einen stetigen Stream dieser Messwerte an Ihren Load-Balancer senden.Mit Google Cloud können Sie Messwerte als Teil des Headers jeder HTTP-Antwort melden, die von den Back-Ends an Ihren Load-Balancer gesendet wird. Diese Messwerte sind in einem benutzerdefinierten HTTP-Antwortheader enthalten und müssen dem ORCA-Standard (Open Request Cost Aggregation) entsprechen.
Messwerte können auf zwei Ebenen konfiguriert werden:
- Auf der Ebene des Backend-Dienstes, um die Auswahl des Backends (MIG oder NEG) zu beeinflussen
- Auf Back-End-Ebene, um die Auswahl von VM-Instanzen oder Endpunkten zu beeinflussen
In den folgenden Abschnitten wird beschrieben, wie benutzerdefinierte Messwerte funktionieren.
Festlegen, welche benutzerdefinierten Messwerte Load-Balancing-Entscheidungen beeinflussen
Welche benutzerdefinierten Messwerte Load-Balancing-Entscheidungen beeinflussen, ist sehr subjektiv und hängt von den Anforderungen Ihrer Anwendungen ab. Wenn Ihre Anwendungen beispielsweise Backend-Verarbeitungslatenzen im Bereich von Sekunden haben, sollten Sie Anfragen möglicherweise auf der Grundlage anderer benutzerdefinierter Messwerte als der Standardnetzwerklatenzen ausgleichen.
Nachdem Sie festgelegt haben, welche Messwerte Sie verwenden möchten, müssen Sie auch den maximalen Auslastungsschwellenwert für jeden Messwert festlegen. Wenn Sie beispielsweise die Speichernutzung als Messwert verwenden möchten, müssen Sie auch den maximalen Grenzwert für die Speichernutzung für jedes Back-End festlegen.
Wenn Sie beispielsweise einen Messwert namens example-custom-metric konfigurieren und der Grenzwert für die maximale Auslastung auf 0, 8 festgelegt ist, passt der Load Balancer die Traffic-Verteilung auf die Backends dynamisch an, um den vom Backend gemeldeten Messwert example-custom-metric so weit wie möglich unter 0, 8 zu halten.
Es gibt zwei Arten von benutzerdefinierten Messwerten:
Reservierte Messwerte: Es gibt fünf reservierte Messwertnamen, die reserviert sind, weil sie vordefinierten Feldern der obersten Ebene in der ORCA API entsprechen.
orca.cpu_utilizationorca.mem_utilizationorca.application_utilizationorca.epsorca.rps_fractional
Für die Messwerte
mem_utilization,cpu_utilizationundapplication_utilizationwerden Werte im Bereich von0.0 - 1.00erwartet. In Szenarien, in denen die Ressourcennutzung das Budget überschreitet, kann der Wert jedoch auch über1.00liegen.Benannte Messwerte: Das sind Messwerte, die für Ihre Anwendung eindeutig sind und die Sie mit dem ORCA-Feld
named_metricsim folgenden Format angeben:orca.named_metrics.METRIC_NAME
Alle benutzerdefinierten Messwerte werden mit dieser
named_metrics-Zuordnung im Format von Name-Wert-Paaren angegeben.Für benannte Messwerte, die für den Balancing-Modus
CUSTOM_METRICSdefiniert sind, müssen Werte im Bereich0 - 100enthalten sein. Für benannte Messwerte, die für dieWEIGHTED_ROUND_ROBIN-Load-Balancing-Richtlinie für Orte definiert sind, ist kein erwarteter Bereich vorhanden.
Erforderliche Messwerte
Damit Ihr Load-Balancer benutzerdefinierte Messwerte für die Auswahl von Backend-VM-Instanzgruppen oder Netzwerk-Endpunktgruppen verwenden kann, müssen Sie einen oder mehrere der folgenden Auslastungsmesswerte im ORCA-Lastbericht angeben, der an den Load-Balancer gesendet wird.
orca.named_metrics ist eine Zuordnung von benutzerdefinierten Messwerten in Form von Name/Wert-Paaren.
orca.cpu_utilizationorca.application_utilizationorca.mem_utilizationorca.named_metrics
Damit Ihr Load Balancer benutzerdefinierte Messwerte verwenden kann, um die Auswahl der Backend-VM-Instanz oder des Endpunkts weiter zu beeinflussen, müssen Sie alle der folgenden Messwerte im ORCA-Lastbericht angeben, der an den Load Balancer gesendet wird. Der Load-Balancer verwendet die aus diesen gemeldeten Messwerten berechneten Gewichte, um die Last den einzelnen Back-Ends zuzuweisen.
orca.rps_fractional(Anfragen pro Sekunde)orca.eps(Fehler pro Sekunde)- ein Auslastungsmesswert mit der folgenden Prioritätsreihenfolge:
orca.application_utilizationorca.cpu_utilization- benutzerdefinierte Messwerte in der
orca.named_metrics-Karte
Beschränkungen und Anforderungen
Pro Backend sind maximal zwei benutzerdefinierte Messwerte zulässig. Sie können jedoch
dryRun-Tests mit maximal drei benutzerdefinierten Messwerten durchführen.Wenn zwei Messwerte angegeben werden, behandelt der Load-Balancer sie unabhängig voneinander. Wenn Sie beispielsweise zwei Dimensionen definieren:
custom-metric-util1undcustom-metric-util2, werden sie vom Load-Balancer unabhängig voneinander behandelt. Wenn ein Backend eine hohe Auslastung in Bezug aufcustom-metric-util1aufweist, vermeidet der Load Balancer, Traffic an dieses Backend zu senden. Im Allgemeinen versucht der Load-Balancer, alle Backends mit ungefähr derselben Auslastung auszuführen. Die Fülle wird so berechnet:currentUtilization÷maxUtilization. In diesem Fall verwendet der Load Balancer den höheren der beiden Füllwerte, die von den beiden Messwerten gemeldet werden, um Load-Balancing-Entscheidungen zu treffen.Pro Backend-Dienst sind maximal zwei benutzerdefinierte Messwerte zulässig. Sie können jedoch
dryRun-Tests mit maximal drei benutzerdefinierten Messwerten durchführen. Dieses Limit umfasst nicht die erforderlichen Messwerteorca.epsundorca.rps_fractional. Dieses Limit ist auch unabhängig von Messwerten, die auf Backend-Ebene konfiguriert sind.Reservierte und benannte Messwerte können zusammen verwendet werden. Beispielsweise können sowohl
orca.cpu_utilization = 0.5als auch ein benutzerdefinierter Messwert wieorca.named_metrics.queue_depth_util = 0.2in einem einzigen Lastbericht angegeben werden.Benutzerdefinierte Messwertnamen dürfen keine regulierten, vertraulichen, identifizierbaren oder anderen vertraulichen Informationen enthalten, die für Personen außerhalb Ihrer Organisation nicht sichtbar sein dürfen.
Verfügbare Codierungen für die Spezifikation benutzerdefinierter Messwerte
JSON
Beispiel für die JSON-Codierung eines Ladeberichts:
endpoint-load-metrics-json: JSON {"cpu_utilization": 0.3, "mem_utilization": 0.8, "rps_fractional": 10.0, "eps": 1, "named_metrics": {"custom-metric-util": 0.4}}.Binäres Protobuf
Für Protokollpuffer-kompatiblen Code ist dies ein binär serialisierter, base64-codierter OrcaLoadReport-Protokollpuffer in
endpoint-load-metrics-binoderendpoint-load-metrics: BIN.Natives HTTP
Durch Kommas getrennte Schlüssel/Wert-Paare in
endpoint-load-metrics. Dies ist eine vereinfachte Textdarstellung des OrcaLoadReport:endpoint-load-metrics: TEXT cpu_utilization=0.3, mem_utilization=0.8, rps_fractional=10.0, eps=1, named_metrics.custom_metric_util=0.4
gRPC
Gemäß der gRPC-Spezifikation müssen die Messwerte mithilfe von nachgestellten Metadaten mit dem Schlüssel
endpoint-load-metrics-binbereitgestellt werden.
Backend-Konfiguration zum Melden benutzerdefinierter Messwerte
Nachdem Sie die Messwerte festgelegt haben, die der Load-Balancer verwenden soll, konfigurieren Sie Ihre Back-Ends so, dass die erforderlichen benutzerdefinierten Messwerte in einem ORCA-Lastbericht zusammengestellt und ihre Werte in jedem HTTP-Antwortheader gemeldet werden, der an den Load-Balancer gesendet wird.
Wenn Sie beispielsweise orca.cpu_utilization als benutzerdefinierten Messwert für ein Back-End ausgewählt haben, muss dieses Back-End die aktuelle CPU-Auslastung in jeder Antwort, die an den Load-Balancer gesendet wird, an den Load-Balancer melden. Eine Anleitung finden Sie auf dieser Seite im Abschnitt Messwerte an den Load-Balancer senden.
Load-Balancer-Konfiguration zur Unterstützung benutzerdefinierter Messwerte
Damit der Load-Balancer die von den Back-Ends gemeldeten benutzerdefinierten Messwerte für Entscheidungen zur Trafficverteilung verwenden kann, müssen Sie den Balancing-Modus jedes Back-Ends auf CUSTOM_METRICS und die Load-Balancing-Richtlinie für den Back-End-Dienst auf WEIGHTED_ROUND_ROBIN festlegen.
CUSTOM_METRICS-Balancing-Modus. Jedes Ihrer Back-Ends in einem Back-End-Dienst muss für die Verwendung des Balancing-ModusCUSTOM_METRICSkonfiguriert sein. Wenn ein Back-End mit dem Balancing-ModusCUSTOM_METRICSkonfiguriert ist, leitet der Load-Balancer den Traffic an die Back-Ends entsprechend dem für jeden benutzerdefinierten Messwert konfigurierten maximalen Auslastungsschwellenwert weiter.Für jedes Back-End kann ein anderer Satz von Messwerten für Berichte angegeben werden. Wenn mehrere benutzerdefinierte Messwerte pro Backend konfiguriert sind, versucht der Load Balancer, den Traffic so zu verteilen, dass alle Messwerte unter den konfigurierten maximalen Auslastungsgrenzen bleiben.
Der Traffic wird auf die Back-Ends verteilt, basierend auf dem von Ihnen ausgewählten Load-Balancing-Algorithmus. Der Standardalgorithmus
WATERFALL_BY_REGIONversucht beispielsweise, alle Back-Ends mit derselben Auslastung zu betreiben.WEIGHTED_ROUND_ROBINLoad-Balancing-Richtlinie für den Ort. Die Load-Balancing-Richtlinie für den Ort des Backend-Dienstes muss aufWEIGHTED_ROUND_ROBINfestgelegt sein. Bei dieser Konfiguration verwendet der Load Balancer auch die benutzerdefinierten Messwerte, um die optimale Instanz oder den optimalen Endpunkt im Backend für die Anfrageabwicklung auszuwählen.
Benutzerdefinierte Messwerte konfigurieren
So aktivieren Sie die Verwendung benutzerdefinierter Messwerte für Ihre Application Load Balancer:
- Legen Sie die benutzerdefinierten Messwerte fest, die Sie verwenden möchten.
- Konfigurieren Sie die Back-Ends so, dass benutzerdefinierte Messwerte an den Load Balancer gemeldet werden. Sie müssen einen Datenstream einrichten, der an den Load-Balancer gesendet werden kann, um für das Load-Balancing verwendet zu werden. Diese Messwerte müssen in einem ORCA-Lastbericht zusammengestellt und codiert und dann mithilfe von HTTP-Antwortheadern an den Load Balancer gemeldet werden.
- Konfigurieren Sie den Load Balancer so, dass die benutzerdefinierten Messwerte verwendet werden, die von den Back-Ends gemeldet werden.
Benutzerdefinierte Messwerte festlegen
Dieser Schritt ist sehr subjektiv und hängt von den Anforderungen Ihrer Anwendungen ab. Nachdem Sie festgelegt haben, welche Messwerte Sie verwenden möchten, müssen Sie auch den maximalen Auslastungsschwellenwert für jeden Messwert festlegen. Wenn Sie beispielsweise die Speichernutzung als Messwert verwenden möchten, müssen Sie auch den maximalen Grenzwert für die Speichernutzung für jedes Back-End festlegen.
Bevor Sie den Load-Balancer konfigurieren, sollten Sie sich die verfügbaren Typen von benutzerdefinierten Messwerten (reserviert und benannt) und die Anforderungen für die Messwertauswahl ansehen, die auf dieser Seite im Abschnitt Benutzerdefinierte Messwerte beschrieben sind.
Back-Ends für das Melden von Messwerten an den Load Balancer konfigurieren
Benutzerdefinierte Messwerte werden Load-Balancern im Rahmen jeder HTTP-Antwort von Ihren Anwendungs-Back-Ends mithilfe des ORCA-Standards gemeldet.
Wenn Sie Google Kubernetes Engine verwenden, haben Sie auch die Möglichkeit, benutzerdefinierte Messwerte für Load Balancer zu verwenden.
In diesem Abschnitt erfahren Sie, wie Sie die benutzerdefinierten Messwerte in einem ORCA-Lastbericht zusammenstellen und diese Messwerte in jedem HTTP-Antwortheader melden, der an den Load Balancer gesendet wird.
Wenn Sie beispielsweise die HTTP-Textcodierung verwenden, müssen die Messwerte im Header im folgenden Format angegeben werden.
endpoint-load-metrics: TEXT BACKEND_METRIC_NAME_1=BACKEND_METRIC_VALUE_1,BACKEND_METRIC_NAME_2=BACKEND_METRIC_VALUE_2
Unabhängig vom verwendeten Codierungsformat müssen Sie das Präfix orca. aus dem Messwertnamen entfernen, wenn Sie den Ladebericht erstellen.
Das folgende Code-Snippet zeigt, wie Sie Ihren HTTP-Headern zwei benutzerdefinierte Messwerte (customUtilA und customUtilB) hinzufügen. Dieses Code-Snippet zeigt sowohl die native HTTP-Textcodierung als auch die Base64-Codierung. In diesem Beispiel werden die Werte für customUtilA und customUtilB nur der Einfachheit halber fest codiert.
Ihr Load Balancer empfängt die Werte für die Messwerte, die das Load Balancing beeinflussen sollen.
...
type OrcaReportType int
const (
OrcaText OrcaReportType = iota
OrcaBin
)
type HttpHeader struct {
key string
value string
}
const (
customUtilA = 0.2
customUtilB = 0.4
)
func GetBinOrcaReport() HttpHeader {
report := &pb.OrcaLoadReport{
NamedMetrics: map[string]float64{"customUtilA": customUtilA, "customUtilB": customUtilB}}
out, err := proto.Marshal(report)
if err != nil {
log.Fatalf("failed to serialize the ORCA proto: %v", err)
}
return HttpHeader{"endpoint-load-metrics-bin", base64.StdEncoding.EncodeToString(out)}
}
func GetHttpOrcaReport() HttpHeader {
return HttpHeader{
"endpoint-load-metrics",
fmt.Sprintf("TEXT named_metrics.customUtilA=%.2f,named_metrics.customUtilB=%.2f",
customUtilA, customUtilB)}
}
func GetOrcaReport(t OrcaReportType) HttpHeader {
switch t {
case OrcaText:
return GetHttpOrcaReport()
case OrcaBin:
return GetBinOrcaReport()
default:
return HttpHeader{"", ""}
}
}
...
Load-Balancer für die Verwendung benutzerdefinierter Messwerte konfigurieren
Damit der Load Balancer diese benutzerdefinierten Messwerte bei der Auswahl eines Back-Ends verwendet, müssen Sie den Balancing-Modus für jedes Back-End auf CUSTOM_METRICS festlegen.
Wenn die benutzerdefinierten Messwerte auch die Endpunktauswahl beeinflussen sollen, legen Sie die Load-Balancing-Richtlinie für den Ort auf WEIGHTED_ROUND_ROBIN fest.
Bei den in diesem Abschnitt beschriebenen Schritten wird davon ausgegangen, dass Sie bereits einen Load Balancer mit zonalen NEG-Backends bereitgestellt haben. Sie können jedoch dieselben --custom-metrics-Flags verwenden, die hier gezeigt werden, um ein vorhandenes Back-End mit dem Befehl gcloud compute backend-services update zu aktualisieren.
Sie können den Balancing-Modus eines Back-Ends auf
CUSTOM_METRICSfestlegen, wenn Sie das Back-End dem Back-End-Dienst hinzufügen. Mit dem Flag--custom-metricsgeben Sie den benutzerdefinierten Messwert und den Schwellenwert an, der für Load-Balancing-Entscheidungen verwendet werden soll.gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-zone=NEG_ZONE \ [--global | region=REGION] \ --balancing-mode=CUSTOM_METRICS \ --custom-metrics='name="BACKEND_METRIC_NAME_1",maxUtilization=MAX_UTILIZATION_FOR_METRIC_1' \ --custom-metrics='name="BACKEND_METRIC_NAME_2",maxUtilization=MAX_UTILIZATION_FOR_METRIC_2'Ersetzen Sie Folgendes:
BACKEND_SERVICE_NAME: der Name des Backend-DienstesNEG_NAME: Der Name der zonalen oder hybriden NEG.NEG_ZONE: die Zone, in der die NEG erstellt wurdeREGION: Bei regionalen Load-Balancern die Region, in der der Load-Balancer erstellt wurdeBACKEND_METRIC_NAME: Die hier verwendeten Namen benutzerdefinierter Messwerte müssen mit den Namen benutzerdefinierter Messwerte übereinstimmen, die im ORCA-Bericht des Backends angegeben werden.MAX_UTILIZATION_FOR_METRIC: die maximale Auslastung, die die Load-Balancing-Algorithmen für jeden Messwert anstreben müssen.
Wenn Ihre Backends beispielsweise zwei benutzerdefinierte Messwerte,
customUtilAundcustomUtilB, melden (wie im Abschnitt Backends für das Melden von Messwerten an den Load-Balancer konfigurieren beschrieben), verwenden Sie den folgenden Befehl, um Ihren Load-Balancer für die Verwendung dieser Messwerte zu konfigurieren:gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-zone=NEG_ZONE \ [--global | region=REGION] \ --balancing-mode=CUSTOM_METRICS \ --custom-metrics='name="customUtilA",maxUtilization=0.8' \ --custom-metrics='name="customUtilB",maxUtilization=0.9'Alternativ können Sie eine Liste benutzerdefinierter Messwerte in einer strukturierten JSON-Datei angeben:
{ "name": "METRIC_NAME_1", "maxUtilization": MAX_UTILIZATION_FOR_METRIC_1, "dryRun": true } { "name": "METRIC_NAME_2", "maxUtilization": MAX_UTILIZATION_FOR_METRIC_2, "dryRun": false }
Hängen Sie die Messwertdatei im JSON-Format dann so an das Backend an:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-zone=NEG_ZONE \ [--global | region=REGION] \ --balancing-mode=CUSTOM_METRICS \ --custom-metrics-file='BACKEND_METRIC_FILE_NAME'Wenn Sie testen möchten, ob die Messwerte erfasst werden, ohne den Load Balancer zu beeinträchtigen, können Sie das Flag
dryRunbeim Konfigurieren des Messwerts auftruesetzen:gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-zone=NEG_ZONE \ [--global | region=REGION] \ --balancing-mode=CUSTOM_METRICS \ --custom-metrics 'name="BACKEND_METRIC_NAME",maxUtilization=MAX_UTILIZATION_FOR_METRIC,dryRun=true'Wenn ein Messwert mit
dryRunauftruekonfiguriert ist, wird er an Monitoring gemeldet, aber nicht vom Load-Balancer verwendet.Wenn Sie dies rückgängig machen möchten, aktualisieren Sie den Backend-Dienst so, dass das Flag
dryRunauffalsegesetzt ist.gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-zone=NEG_ZONE \ [--global | region=REGION] \ --balancing-mode=CUSTOM_METRICS \ --custom-metrics 'name="BACKEND_METRIC_NAME",maxUtilization=MAX_UTILIZATION_FOR_METRIC_,dryRun=false'Wenn alle Ihre benutzerdefinierten Messwerte mit
dryRunauftruekonfiguriert sind, hat das Festlegen des Balancing-Modus aufCUSTOM_METRICSoder der Load-Balancing-Richtlinie für den Ort aufWEIGHTED_ROUND_ROBINkeine Auswirkungen auf den Load Balancer.Wenn Sie den Load Balancer so konfigurieren möchten, dass die Auswahl von Endpunkten durch die benutzerdefinierten Messwerte beeinflusst wird, legen Sie die Load-Balancing-Richtlinie für den Ort des Backend-Dienstes auf
WEIGHTED_ROUND_ROBINfest.Wenn Sie beispielsweise einen Backend-Dienst haben, der bereits mit den entsprechenden Backends konfiguriert ist, konfigurieren Sie die Load-Balancing-Richtlinie für den Ort so:
gcloud compute backend-services update BACKEND_SERVICE_NAME \ [--global | region=REGION] \ --custom-metrics='name=BACKEND_SERVICE_METRIC_NAME,dryRun=false' \ --locality-lb-policy=WEIGHTED_ROUND_ROBINWie bereits für die Messwerte auf Backend-Ebene gezeigt, können Sie auch eine Liste benutzerdefinierter Messwerte in einer strukturierten JSON-Datei auf Backend-Dienstebene bereitstellen. Verwenden Sie das Feld
--custom-metrics-file, um die Messwertdatei an den Backend-Dienst anzuhängen.
Nächste Schritte
- Probleme mit externen Application Load Balancern beheben
- Probleme mit internen Anwendungs-Load-Balancern beheben