Kubernetes Ingress Log zum Debuggen abrufen

Kubernetes Ingress Log Zum Debuggen Abrufen



Wissen Sie, was das Ingress-Log von Get Kubernetes für das Debugging ist? Netzwerkprobleme sind immer schwieriger zu diagnostizieren, da die Bereitstellungen immer größer werden. Dieses Tutorial zeigt Ihnen, wie Sie das ingress-nginx kubectl-Plugin verwenden, um den Zugriff auf Ihre Anwendung über den Ingress-Controller zu debuggen. Sehen wir uns zunächst die Definition von Kubernetes-Ingress an, die wichtig ist, um das Hauptthema besser zu verstehen.

Was ist Kubernetes-Ingress?

Die Definition von Ingress ist „Eintritt“ im wörtlichen Sinne.







In der Kubernetes-Community gilt das auch. Ein Datenverkehr, der in den Cluster eintritt, wird als Ingress bezeichnet, während ein Datenverkehr, der den Cluster verlässt, als Egress bezeichnet wird.




Als native Kubernetes-Ressource ist Ingress mit Pods, Bereitstellungen usw. vergleichbar. Sie können mit Ingress mit den DNS-Routing-Konfigurationen Schritt halten. Der Eingangscontroller führt das Routing durch. Dies geschieht, indem die Routing-Regeln direkt aus den Ingress-Objekten gelesen werden, die in etcd gespeichert sind. Ohne Kubernetes-Ingress können Sie eine Anwendung der Außenwelt zugänglich machen, indem Sie einen Dienst vom Typ Load Balancer in die Bereitstellungen aufnehmen.



Wie funktioniert Kubernetes Ingress?

Es gibt zwei wichtige Dinge, über die Sie sich im Klaren sein müssen. Diese sind:





Kubernetes Ingress-Ressource

Diese Ressource ist für die Verwaltung aller DNS-Routingregeln im Cluster zuständig. Die DNS-Routingregeln werden in der Kubernetes Ingress-Ressource angegeben, einer nativen Kubernetes-Ressource. Mit anderen Worten, Sie ordnen den externen DNS-Datenverkehr den internen Kubernetes-Dienstzielen zu.



Kubernetes-Ingress-Controller

Durch den Zugriff auf die DNS-Regeln, die von den Ingress-Ressourcen implementiert werden, sind die Kubernetes-Ingress-Controller (Nginx/HAProxy usw.) für das Routing zuständig.

Die Implementierung des Ingress Controllers ist nicht nativ für Kubernetes. Daher kann es sich nicht um einen Cluster-Standardwert handeln.

Damit die Ingress-Regeln funktionieren, müssen wir einen Ingress-Controller konfigurieren. Es gibt viele Open-Source- und Business-Ingress-Controller auf dem Markt. Die Cluster-Version eines Reverse-Web-Proxy-Servers dient als Ingress-Controller. Dieser Kubernetes-basierte Reverse-Proxy-Server wird einem Load-Balancer-Dienst ausgesetzt.

Was ist der Ingress-Controller?

Ein im Cluster ausgeführtes Programm namens Ingress Controller konfiguriert einen HTTP-Load-Balancer, der den Ingress-Ressourcen folgt. Der Load Balancer kann ein extern bereitgestellter Hardware- oder Cloud-Load Balancer sein oder als Software innerhalb des Clusters fungieren. Für verschiedene Load Balancer werden unterschiedliche Ingress Controller-Implementierungen benötigt.

Bei der Verwendung von NGINX werden sowohl der Load Balancer als auch der Ingress-Controller in einem Pod bereitgestellt.

Bitte beachten Sie, dass ein aktiver Ingress-Controller im Cluster vorhanden sein muss, damit die Ingress-Ressource funktioniert.

Ingress-Controller werden im Gegensatz zu den anderen Arten von Controllern, die als Komponente der Binärdatei kube-controller-manager fungieren, nicht automatisch mit einem Cluster gestartet.

Voraussetzungen:

Sie benötigen einen Kubernetes-Cluster und müssen das kubectl-Befehlszeilentool konfigurieren, um eine Verbindung mit Ihrem Cluster herzustellen. Sie können die Befehle mit dem kubectl-Befehlszeilentool an Kubernetes-Cluster ausgeben. Die Anwendungen können bereitgestellt werden, die Cluster-Ressourcen können überprüft und verwaltet werden und die Protokolle können mit kubectl angezeigt werden.

Wenn Sie derzeit keinen Cluster haben, kann Minikube verwendet werden, um einen zu erstellen. Minikube ist ein lokales Kubernetes, das darauf abzielt, das Lernen und Entwickeln von Kubernetes einfach zu machen.

Auf Kubernetes kann mit nur einem Befehl zugegriffen werden, wenn Sie eine Umgebung mit virtuellen Maschinen oder eine Docker- (oder ähnlich kompatible) Containerumgebung haben. Beginnen wir jetzt mit dem schrittweisen Prozess:

Schritt 1: Starten Sie den Minikube

Mit dem Minikube-Tool können Sie Kubernetes lokal ausführen. Minikube betreibt auf Ihrem Computer einen lokalen Kubernetes-Cluster mit einem oder mehreren Knoten für die tägliche Entwicklungsarbeit oder zum Testen von Kubernetes (einschließlich Windows, Linux-PCs und macOS). Hier ist der Befehl zum Starten des Minikube:

> minikube start



Schritt 2: Aktivieren Sie den Ingress-Controller

In diesem Schritt zeigen wir, wie Sie den NGINX Ingress-Controller aktivieren. Führen Sie den folgenden Befehl aus:

> Minikube-Addons ermöglichen eindringen



Schritt 3: Überprüfen Sie, ob der NGINX Ingress Controller funktioniert oder nicht

Jetzt 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 erhält Pods -n ingress-nginx



Bitte beachten Sie, dass Sie möglicherweise bis zu einer Minute lang nicht bemerken, dass diese Pods 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 erstellt Bereitstellungsweb --Bild =gcr.io / Google-Beispiele / Hallo-App: 1.0



Der ausgeführte Befehl und seine Ergebnisse sind im vorherigen Bild angehängt. In der Ausgabe ist „hello-app“ zu sehen.

Schritt 5: Stellen Sie die Bereitstellung bereit

Jetzt zeigen wir Ihnen einen Befehl zum Verfügbarmachen einer bestimmten Bereitstellung. Der Befehl wird wie folgt erwähnt:

> kubectl-Expose-Bereitstellung Kalsoom  - -Art =Knotenport --Hafen = 8080



Sie können die Ausgabe „service/kalsoom exponiert“ im vorherigen Bild sehen.

Schritt 6: Besuchen Sie den Dienst ü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, um diesen Zweck zu erreichen, wird im Folgenden gegeben:

> Minikube-Dienst Kalsoom   --url



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

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

Schritt 7: Erstellen Sie einen Ingress

Hier erstellen wir einen Ingress, der den Datenverkehr an Ihren Dienst überträgt. Der Befehl wird wie folgt erwähnt:

> kubectl gelten -f https: // k8s.io / Beispiele / Service / Vernetzung / example-ingress.yaml



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

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

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

> kubectl erhält Zugriff



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

Fazit

Eine Übersicht über die Protokollierung des NGINX Ingress Controllers finden Sie in diesem Artikel. Zusammenfassend lässt sich sagen, dass die Zugriffs- und Fehlerprotokolle für NGINX zusammen mit den Protokollen des Ingress-Controller-Prozesses, der die NGINX-Konfiguration erstellt und NGINX neu lädt, um sie anzuwenden, vom NGINX-Ingress-Controller zur Verfügung gestellt werden.