Holen Sie sich Kubernetes Log Log zum Debuggen

Holen Sie sich Kubernetes Log Log zum Debuggen

Weißt du, was du zum Debugging des Kubernetes eindringst? Netzwerkprobleme werden immer schwieriger zu diagnostizieren, wenn die Bereitstellungen immer größer werden. Dieses Tutorial zeigt, wie Sie das Ingress-Nginx Kubectl-Plugin verwenden, um den Zugriff auf Ihre Anwendung über den Ingress-Controller zu debuggen. Lassen Sie uns zunächst die Definition von Kubernetes -Eingang sehen, was wichtig ist, um das Hauptthema besser zu verstehen.

Was ist Kubernetes -Eindringen?

Die Definition von Ein-.

In der Kubernetes -Community ist das auch wahr. Ein Verkehr, der in den Cluster eintritt.


Als native Kubernetes -Ressource ist Eindringung vergleichbar mit Pods, Bereitstellungen usw. Sie können mit den DNS -Routing -Konfigurationen mithilfe von Ingress Schritt halten. Der Eingangsregler führt das Routing durch. Dies geschieht durch das Lesen der Routing -Regeln direkt aus den Eingangsobjekten, die in etcd gespeichert sind. Ohne Kubernetes -Ein-.

Wie funktioniert Kubernetes ein, das eindringt??

Es gibt zwei wichtige Dinge, über die Sie sich klar machen müssen. Diese sind:

Kubernetes Eindringliche Ressource

Diese Ressource ist für die Aufrechterhaltung aller DNS -Routing -Regeln im Cluster verantwortlich. Die DNS -Routing -Regeln sind in der Kubernetes Ingress Resource, einer nativen Kubernetes -Ressource, festgelegt. Mit anderen Worten, Sie kartieren den externen DNS -Verkehr auf die internen Kubernetes -Serviceziele.

Kubernetes -Eingrenzungsregler

Durch den Zugang zu den DNS -Regeln, die von den Eindringungsressourcen, den Kubernetes -Eingrenzungscontrollern (Nginx/Haproxy usw. usw.) sind für das Routing verantwortlich.

Die Implementierung des Ingress -Controllers stammt nicht in Kubernetes. Infolgedessen kann es kein Cluster -Standard sein.

Damit die Eingangsregeln funktionieren, müssen wir einen Eingress -Controller konfigurieren. Auf dem Markt gibt es viele Open-Source- und Business-Eindringlinge-Controller. Die Version eines Clusters eines Reverse -Web -Proxy -Servers dient als Eindringlinge -Controller. Dieser Kubernetes-basierte Reverse-Proxy-Server ist einem Last-Balancer-Dienst ausgesetzt.

Was ist der Eindringlinge -Controller??

Ein Cluster-Running-Programm namens Ingress Controller konfiguriert einen HTTP-Last-Balancer nach den Ingress-Ressourcen. Der Load Balancer kann eine extern bereitgestellte Hardware- oder Cloud -Last -Balancer sein oder als Software innerhalb des Clusters fungiert. Für verschiedene Lastausgleiche sind unterschiedliche Implementierungen für Ingress -Controller erforderlich.

Bei der Verwendung von Nginx werden beide Lastausgleiche und Eindringungscontroller in einer POD eingesetzt.

Bitte beachten Sie, dass im Cluster ein Active Ingress Controller vorhanden sein muss, damit die Eindring -Ressource funktionieren kann.

Ingress-Controller werden im Gegensatz zu den anderen Arten von Controllern, die als Komponente des Kube-Controller-Manager-Binärs fungieren, nicht automatisch mit einem Cluster gestartet.

Voraussetzungen:

Sie benötigen einen Kubernetes-Cluster und müssen das Kubectl-Befehlszeilen-Tool so konfigurieren, dass Sie mit Ihrem Cluster eine Verbindung herstellen können. Sie können die Befehle an Kubernetes-Cluster über das Kubectl-Befehlszeilen-Tool ausstellen. Die Anwendungen können bereitgestellt werden, die Cluster -Ressourcen können überprüft und verwaltet werden, und die Protokolle können mit Kubectl gesehen werden.

Wenn Sie derzeit keinen Cluster haben, kann Minikube verwendet werden, um einen zu konstruieren. Minikube ist ein lokaler Kubernetes, der das Lernen und die Entwicklung von Kubernetes einfach machen soll.

Auf Kubernetes kann nur mit einem Befehl zugegriffen werden, wenn Sie eine virtuelle Maschinenumgebung oder eine Docker -Containerumgebung (oder eine ähnlich kompatible) Containerumgebung haben. Beginnen wir jetzt mit dem Schritt-für-Schritt-Prozess:

Schritt 1: Starten Sie den Minikube

Mit dem Minikube -Tool können Sie die Kubernetes lokal ausführen. Minikube leitet einen All-in-One- oder Multi-Knoten-Kubernetes-Cluster auf Ihrem Computer für tägliche Entwicklungsarbeiten oder um die Kubernetes (einschließlich Windows, Linux-PCs und MacOS) zu testen. Hier ist der Befehl, den Minikube zu starten:

> Minikube Start



Schritt 2: Aktivieren Sie den Eingangsregler

Wir werden zeigen. Führen Sie den folgenden Befehl aus:

> Minikube -Addons ermöglichen die Ein-



Schritt 3: Überprüfen Sie, ob der Nginx -Eingress -Controller funktioniert oder nicht

Nun ist es wichtig zu überprüfen, ob der Nginx -Controller aktiv ist oder nicht. Der folgende Befehl kann verwendet werden, um dies zu bestätigen:

> Kubectl Get Pods -n Ingress -Nginx



Bitte beachten Sie, dass Sie möglicherweise nicht bemerken, dass diese Schoten bis zu einer Minute ordnungsgemäß funktionieren. Die Ausgabe wird im vorherigen Bild angezeigt.

Schritt 4: Erstellen Sie eine Hello World -App

Hier verwenden wir den folgenden Befehl, um eine Bereitstellung zu erstellen:

> kubectl erstellen Bereitstellungsweb -IMage = GCR.IO/Google-Samples/Hallo-App: 1.0



Der ausführende Befehl und seine Ergebnisse sind im vorherigen Bild beigefügt. In der Ausgabe ist „Hallo-App“ zu sehen.

Schritt 5: Entdecken Sie die Bereitstellung

Jetzt zeigen wir Ihnen einen Befehl, um eine bestimmte Bereitstellung aufzudecken. Der Befehl wird wie folgt erwähnt:

> kubectl entdecken Sie die Bereitstellung kalsoom --typ = nodeport --port = 8080



Sie können die Ausgabe „Service/Kalsoom Exposed“ im vorherigen Bild sehen.

Schritt 6: Besuchen Sie den Service über Nodeport

Dies ist ein wichtiger Schritt, bei dem wir Ihnen zeigen, wie Sie den erstellten Dienst über den Nodeport besuchen können. Der Befehl zur Erreichung dieses Zwecks ist im Folgenden angegeben:

> Minikube Service Kalsoom --Url



Der Befehl zusammen mit der Ausgabe ist im vorherigen Bild angehängt.

Jetzt machen die Minikube -IP -Adresse und Nodeport es einfach, die Beispiel -App anzuzeigen. Sie können die Ingress -Ressource verwenden, um im folgenden Schritt auf die App zugreifen zu können.

Schritt 7: Erstellen Sie eine Ein-

Hier erstellen wir eine Ein-. Der Befehl wird wie folgt erwähnt:

> kubectl anwenden -f https: // k8s.IO/Beispiele/Service/Networking/Beispiel-Eingangskleid.Yaml



Wie Sie sehen können, wird der Befehl erfolgreich ausgeführt.

Schritt 8: Überprüfen Sie die IP -Adresse

Wir überprüfen, ob die IP -Adresse festgelegt ist oder nicht. Dafür verwenden wir den folgenden Befehl:

> Kubectl werden eindringen



In der Ausgabe sollten Sie in der Adressspalte eine IPv4 -Adresse sehen.

Abschluss

In diesem Artikel finden Sie eine Übersicht über die Protokollierung des Nginx Ingress Controllers. Zusammenfassend lässt sich sagen.