2016-04-14 8 views
3

Ich versuche, einen Load Balancer auf GCE für 2 Tomcat-Server einzurichten, die einzeln auf 2 VMs laufen (vm-1 und vm-2). Beide hören auf Port 80 und die Netzwerk-Firewall-Regeln erlauben Verkehr auf Port 80 von jeder Quelle (0.0.0.0/0). Nun habe ich eine Instanzgruppe dieser beiden VMs zusammen vm-group erstellt und einen benannten Port mit dem Namen http auf Port 80 festgelegt.Load Balancer: Health Check schlägt ohne Grund fehl

Ich erstellte auch einen Gesundheitscheck, auf Port 80, zeigt auf /<app_name>/<health_url>, die eine HTTP 200 meldet, wenn die App gesund ist.

Dann habe ich einen HTTP Load Balancer mit Anweisungen in this video eingerichtet. Nach der Einrichtung stelle ich fest, dass der Load Balancer meldet, dass 0/2 Instanzen fehlerfrei sind, was bedeutet, dass die Integritätsprüfungen fehlschlagen.

Wenn ich manuell auf die Health Check-URLs klicke, geben sie eine HTTP 200 zurück - meine App ist also gesund.

Nun bin ich mir nicht sicher, warum der Load Balancer die VMs als fehlerhaft meldet und keine Anforderungen weiterleiten kann. Wie kann ich das weiter debuggen?

bearbeiten: prüft ich, dass die google-address-manager in this question wie erwähnt ausgeführt wird.

+0

Könnten Sie 'gcloud compute http-health-checks ausführen und healthcheck-name' beschreiben und die Ergebnisse am Ende Ihrer Frage einfügen? – Grzenio

Antwort

2

Ich habe das gleiche Problem. Zusätzlich bei der Verwendung von gcloud Werkzeug:

gcloud compute backend-services get-health mybackendservice 

ich

- healthState: UNHEALTHY 
    instance: https://www.googleapis.com/compute/v1/projects/myproject/.../instances/mycluster-4gim 
    port: 8000 

Das Problem ist, dass in der Gesundheitscheck für den Back-End-Dienst http definiert verwendet wird (nicht https) und die Portnummer 80. nicht Erklärung gefunden für diese Diskrepanz.

+0

Es stellt sich heraus, dass die Portnummer aus der Einstellung der Instanzgruppe stammt (Port Name Mapping-Abschnitt). Aber der Gesundheitscheck funktioniert immer noch nicht ... – fuego666

1

Es stellt sich heraus, dass die Portnummer aus der Einstellung für die Instanzgruppe (Abschnitt Port Name Mapping) stammt. Aber der Gesundheits-Check immer noch nicht funktioniert ... Ergebnis Vergleich der Prüfung mit Ziel umsäumt gleiche Instanzen wie beispielsweise Gruppe

gcloud compute target-pools get-health targetpoolname 

--- 
healthStatus: 
- healthState: HEALTHY 
    instance: https://www.googleapis.com/compute/v1/projects/inst 
    ipAddress: an.ip.addr.es 
kind: compute#targetPoolInstanceHealth 
--- 

...

2

Haben Sie Google Health Checker auf Ihre Firewall-Liste hinzugefügt: 130.211.0.0/22 ​​

Verwandte Themen