Gibt es einen Weg, um alle Endpunkte eine Made Service entdecken von außerhalb des Clusters?Wie zu entdecken kopflos Service-Endpunkte
vorzugsweise unter Verwendung von DNS oder statischem IPs
Gibt es einen Weg, um alle Endpunkte eine Made Service entdecken von außerhalb des Clusters?Wie zu entdecken kopflos Service-Endpunkte
vorzugsweise unter Verwendung von DNS oder statischem IPs
von watching changes auf eine Liste von Endpunkten:
GET /api/v1/watch/namespaces/{namespace}/endpoints
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
Ich versuchte es und es hat nicht für mich zu arbeiten, haben Sie versuchen es und es hat für dich funktioniert? – shaylevi2
Ja, ich verwende das DNS-Add-On in meinem Cluster erfolgreich, aber ich habe die DNS-Dienst-Idee nicht getestet. – morloch
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
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?
Tim, wenn wir im selben Netzwerk wären, zB. Wie würde das im GCE-Projekt die Dinge ändern? Danke im Voraus. – tzik
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
Ich bin GCE jede VM kann auf die Pod-IPs zugreifen.Service-IPs benötigen eine statische Route zu einem oder mehreren Knoten –
Nicht optimal, kann es nicht zum Beispiel in nginx verwenden. Irgendwelche DNS-Optionen? – shaylevi2
@ shaylevi2 Ist es möglich zu klären, wie Sie es nicht in nginx verwenden können? – George
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