Dies mag eine sehr grundlegende Frage sein, aber ich kann nirgendwo etwas finden, also entschuldige ich mich.
Ich habe postresql mit helm auf der Google Kubernetes Engine installiert
$ helm install --name staging stable/postgresql
Meine Einsätze:
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
staging-backend 7 7 7 0 3h
staging-postgresql 1 1 1 0 3h
Und meine Dienste:
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
staging-postgresql ClusterIP xx.x.xxx.xx <none> 5432/TCP 3h
Ich habe versucht, eine Verbindung herzustellen staging-backend
mit staging-postgresql
mit Cluster-IP, aber es scheint nicht zu funktionieren. Oder sollte ich externe IP verwenden .. ?? Wo finde ich externe IP .. ??
Danke dir..
Antworten:
3 für die Antwort № 1In Kubernetes haben Sie zwei Möglichkeiten, die IP Ihres Dienstes zu ermitteln.
- Umgebungsvariablen
Kubernetes generiert automatisch Umgebungsvariablen mit allen Daten, die Sie für den Zugriff auf einen Dienst benötigen. Wenn du läufst env
Befehl innerhalb eines Pods, dann sollten Sie eine ähnliche Ausgabe sehen wie:
KUBERNETES_SERVICE_PORT=443
STAGING_POSTGRESQL_SERVICE_HOST=10.0.162.149
KUBERNETES_SERVICE_HOST=10.0.0.1
STAGING_POSTGRESQL_SERVICE_PORT=5432
KUBERNETES_SERVICE_PORT_HTTPS=443
Benutzen STAGING_POSTGRESQL_SERVICE_HOST
Umgebungsvariable in Ihrer App, um die IP des Dienstes zu erhalten.
- DNS (bevorzugt)
Kubernetes weist allen Diensten automatisch DNS-Namen zu. Verwenden Sie Ihren Dienstnamen anstelle von IP und es wird zu Dienst-IP aufgelöst.
Zum Beispiel laufen ping staging-postgresql
in jeder Hülse.
Sie können mehr über die Nutzung des Dienstes lesen Hier.