2015-11-15 10 views

Antwort

4

von watching changes auf eine Liste von Endpunkten:

GET /api/v1/watch/namespaces/{namespace}/endpoints 
+0

Nicht optimal, kann es nicht zum Beispiel in nginx verwenden. Irgendwelche DNS-Optionen? – shaylevi2

+0

@ shaylevi2 Ist es möglich zu klären, wie Sie es nicht in nginx verwenden können? – George

+0

Nginx eine Liste der Server in der Conf-Datei erwartet, können Sie auch DNS verwenden Ein Datensatz, aber man kann nicht zu beobachten verwenden ändert URL: \ – shaylevi2

2

Die DNS-Add-on ist genau das, was Sie nach. Aus der Dokumentation:

Zum Beispiel, wenn Sie einen Dienst namens haben "my-Service" in Kubernetes Namespace "my-ns" einem DNS-Eintrag für "my-service.my-ns" erstellt. Pods , die in dem „my-ns“ Namespace existieren sollte es finden kann durch einfach eine Namen-Suche für „my-Service“ zu tun. Pods, die in anderen Namespaces existieren, müssen den Namen als "my-service.my-ns" qualifizieren. Das Ergebnis von diese Namen-Lookups ist die Cluster-IP.

Und im Fall eines kopflosen Service:

DNS konfiguriert ist, mehrere A-Einträge (Adressen) für den Service-Namen zurückzukehren, die das Sichern des Dienstes direkt an den Schoten zeigen.

Dieser Dienst ist jedoch nur innerhalb des Clusters verfügbar. Aber KubeDNS ist nur ein weiterer pod:

kubectl get po --namespace=kube-system 
kubectl describe po kube-dns-pod-name --namespace=kube-system 

Was bedeutet, dass Sie einen Dienst mit einer von außen zugänglichen Adresse erstellen können diesen Dienst zu belichten. Verwenden Sie einfach einen Selektor, der zu Ihrem kube-dns Pod-Label passt.

http://kubernetes.io/v1.1/docs/user-guide/services.html#dns https://github.com/kubernetes/kubernetes/blob/release-1.1/cluster/addons/dns/README.md

+0

Ich versuchte es und es hat nicht für mich zu arbeiten, haben Sie versuchen es und es hat für dich funktioniert? – shaylevi2

+0

Ja, ich verwende das DNS-Add-On in meinem Cluster erfolgreich, aber ich habe die DNS-Dienst-Idee nicht getestet. – morloch

+0

Innerhalb des Clusters funktioniert es, aber ich habe versucht, den Dienst freizugeben und außerhalb des Clusters zu verwenden, und aus irgendeinem Grund funktioniert es nicht. – shaylevi2

2

Headless Dienstleistungen sind eine Gruppe von Pod IPs. Pod-IPs sind (normalerweise) nicht außerhalb des Clusters/Cloud-Providers verfügbar.

Sind Sie versuchen, externe IP-Adressen für einen Headless-Service zu erhalten oder sind Sie im gleichen Netzwerk (zum Beispiel in der GCE-Projekt), aber nicht im Cluster?

+0

Tim, wenn wir im selben Netzwerk wären, zB. Wie würde das im GCE-Projekt die Dinge ändern? Danke im Voraus. – tzik

+1

Ich folgte den Schritten hier: http://blog.kubernetes.io/2017/01/running-mongodb-on-kubernetes-with-statefulsets.html eine MongoDB Replik innerhalb eines GKE/Cluster zu erstellen, die funktioniert, aber wir wollen auch um vom Projekt aus darauf zuzugreifen (Instanzen, in denen Apps installiert sind, bis wir sie verschieben). Es ist schön, wenn wir die IP nicht verwenden und den Cluster nach Hostnamen referenzieren, wie es im Post erwähnt wird (zB mongo-1.mongo) oder etwas, das immer auf den Pod zeigt. – tzik

+0

Ich bin GCE jede VM kann auf die Pod-IPs zugreifen.Service-IPs benötigen eine statische Route zu einem oder mehreren Knoten –