Die Technik, Geräte und Dienste in einem Netzwerk automatisch zu finden, wird als Service Discovery bezeichnet. Das Service Discovery Protocol (SDP) ist ein Netzwerkstandard für das Erkennen von Netzwerken und die Suche nach Ressourcen, wenn Benutzer mit geeigneten Ressourcen zur Verfügung gestellt werden, z.
Die Serviceerkennung erfolgt in Kubernetes mit automatisch erstellten Dienstnamen, die der IP -Adresse des Dienstes entsprechen. In Kubernetes bietet das Dienstemodell die grundlegendste und dennoch wichtigste Komponente der Microservices -Entdeckung. Das Erkennen, wie eine Anwendung auf Kubernetes arbeitet. Kubernetes Service Syncs standardisiert und automatisiert die Konnektivität zwischen Diensten, wodurch Containerprobleme in einem Microservices -Design behandelt werden. Services verknüpfen Pods auf das Netzwerk auf konsistente Weise über Cluster hinweg konsistent.
Der Prozess der Bestimmung, wie der Service beitritt, wird als Service Discovery bezeichnet. Serverseitige und clientseitige Service-Erkennung sind die Haupttypen der Serviceerkennung. Client-Anwendungen können serverseitige Service Discovery-Ansätze verwenden, um über einen Router oder einen Ladebalancer zu unterstützen. Mit dem Kunden-Seite-Service-Erkennung können Kundenanwendungen Dienste finden, indem Sie eine Serviceregistrierung mit Serviceinstanzen und Endpunkten suchen oder fragen.
Serviceinstanzen können mit in zwei verschiedenen Methoden mit dem Dienstregister registriert und vorübergehend ausgesetzt werden. Das Selbstregistrierungsmuster ermöglicht es den Dienstleistungsunternehmen, sich unabhängig vom Service-Register zu registrieren. Das Registrierungsmuster von Drittanbietern umfasst die Ausführung einer anderen Systemkomponente die Registrierung und die Deregistrierung aufgrund des Dienstes. Eine der Komponenten, die diese Containerplattform fähig und anpassungsfähig machen, ist Kubernetes Service Discovery. Durch die Standardisierung rendern fortschrittliche Technologien wie Service Mesh Kubernetes Service Discovery effektiver. Wir werden uns einige der grundlegenden Prozesse der Serviceerkennung in Kubernetes in diesem Thema ansehen.
Beginnen wir damit, einige notwendige Dienste zusammenzustellen, um zu untersuchen. Lassen Sie uns auf das Terminal des Ubuntu 20 zugreifen.04 LTS OS, um über Service Discovery in Kubernetes zu sprechen. Zu diesem Zweck können Sie den Anwendungsbereich oder einen Abkürzungschlüssel verwenden, der "Strg+Alt+T" lautet.
Führen Sie den unten aufgeführten Befehl aus, um Minikube zu initialisieren, um den Befehl zu initialisieren.
$ minikube Start
Die aktuelle Ausgabe von Minikube wird in der Ausgabe dieser Anweisung angezeigt. Jetzt werden wir einen Namespace mit dem Namen "entwickeln", indem wir den CAT -Befehl in der Shell verwenden.
$ cat << ENDL > Entwicklungsnamespace.YML
Der Inhalt wird direkt zum Terminal hinzugefügt, ohne ihn aus der Datei zu öffnen.
Verwenden Sie den Befehl zum Erstellen eines Namespace im Terminal als:
$ kubectl anwenden -f -n -namespace anwenden.YML
Der Namespace wurde effektiv erstellt. Jetzt werden wir einen anderen Namespace mit dem Namen "Produktion" erstellen, indem wir den CAT -Befehl in der Shell verwenden.
Führen Sie den Befehl als:
$ kubectl anwenden -f production -namespace.YML
Auch hier wurde der Namespace effektiv erstellt. Jetzt werden wir unsere Beispielanwendungen in den zuvor erstellten Namespaces bereitstellen. Zu diesem Zweck erstellen wir eine Bereitstellung mit dem Namen „Hello“ für den Entwicklungsnamespace, indem wir den CAT -Befehl in der Shell verwenden.
$ cat << ENDL > App-Deployment-Develop.YML
Der Inhalt wird direkt zum Terminal hinzugefügt, ohne ihn aus der Datei zu öffnen.
Führen Sie den Befehl als:
$ kubectl anwenden -f App-Deployment-Develop.YML
Die Bereitstellung wurde effektiv erstellt. Auch hier erstellen wir eine weitere Bereitstellung für einen Namespace mit dem Namen „Produktion“, indem wir den CAT -Befehl in der Shell verwenden.
$ cat << ENDL > App-Deployment-Produktion.YML
Verwenden Sie den Befehl als:
$ kubectl anwenden -f App-Deployment-Produktion anwenden.YML
Die Bereitstellung wurde effizient erstellt, wie aus der angezeigten Ausgabe ersichtlich ist. Um nun die Pods zu definieren und ihre IP-Adresse zu finden, werden wir den Befehl unten ausführen als:
$ kubectl beschreibt Pods-All-NamesPaces
Die IP -Adressen für jede POD im obigen Ausgang sind intern und einzigartig für jedes Vorkommen. Jedes Mal, wenn wir die Anwendung neu anwenden, würde sie eine neue IP -Adresse erhalten. Wir können jetzt testen, ob wir eine Schote in den Cluster pingen können oder nicht. Erstellen Sie eine Datei, indem Sie den Befehl Cat als verwenden.
$ cat << ENDL >> Jumpod.YML
Führen Sie den Befehl als:
kubectl anwenden -f sprungod.YML
Die Pod wurde erstellt, wie aus dem oben genannten Bild ersichtlich ist. Ping der IP -Adresse eines temporären POD im Standard -Namespace mit dem Befehl cat in der Shell mit dem Befehl kubectl exec verwendet.
$ kubectl exec -es Jumpod Ping 10.244.0.149
Das Domainnamensystem gehört zu den wesentlichen Aspekten des effektiven Internetdienstes (DNS). Alle Internetinhalte und Webdienste hängen von DNS ab, sodass Sie in der Lage sein müssen, alle Probleme schnell zu lösen. Ein Tool namens nslookup ist eine Methode, um dies zu tun. NSLookup steht für „Namens -Server -Lookup“. Sie können die Informationen zu einem Domänennamen überprüfen und Probleme entdecken. Wir können den FQDN des Pod mit dem NSLookup -Tool erwerben:
$ kubectl exec -es Jumpod nslookup 10.244.0.149
Um nun die extern bereitgestellte IP -Adresse zu überprüfen, werden wir den folgenden Befehl ausführen:
$ kubectl Get Services-All-NamesPaces
Abschluss
Bei der Migration zu Microservices ist die Service -Erkennung wahrscheinlich das wichtigste Infrastruktur, um sie zu implementieren. In diesem Tutorial haben wir gesehen, wie einfach es ist, eine App der Öffentlichkeit mit Kubernetes -Diensten auszusetzen.