Website-Suche

Verwalten und Beheben von Problemen mit Kubernetes-Protokollen


Kubernetes ist eine Open-Source-Software, die es uns ermöglicht, containerisierte Anwendungen über Knotensysteme hinweg zu verwalten. Wenn es um die Verwaltung eines Kubernetes-Clusters geht, besteht einer der wichtigsten Aspekte der Verwaltung darin, die Protokolle ständig im Auge zu behalten. Diese Protokolle geben uns wertvolle Informationen über die Leistung und den allgemeinen Zustand unseres Kubernetes-Clusters. In diesem Tutorial erfahren Sie, wie Sie Kubernetes-Protokolle auf einem Linux-System verwalten und Fehler beheben.

In diesem Tutorial lernen Sie:

  • So überprüfen Sie Protokolle mit dem Befehl kubectl
  • So überprüfen Sie Protokolle mit Docker
  • So überprüfen Sie das Verzeichnis /var/logs

Überprüfen von Protokollen mit kubectl

Die Verwendung des Befehls kubectl auf Ihrem Master-Knoten sollte der erste Ort sein, an dem Sie nach relevanten Protokollen für die Pods und Container in Ihrem Kubernetes-Cluster suchen. Hier sind einige Befehlsbeispiele:

  1. Rufen Sie die Protokolle für einen Pod mit dem Namen nginx ab:

    
    kubectl logs nginx
    
  2. Wenn auf dem betreffenden Pod mehrere Container ausgeführt werden, können wir mit der Option --all-containers=true Protokolle für alle seine Container abrufen:

    
    kubectl logs nginx --all-containers=true
    
  3. Um Streaming-Protokolle anzuzeigen (ähnlich wie beim Linux-Befehl tail -f), können wir die Option -f anhängen.

    
    kubectl logs -f nginx
    
  4. Um die Protokolle eines bestimmten Containers auf einem Knoten anzuzeigen, verwenden Sie die Option -c und geben Sie den Containernamen an. So sehen Sie beispielsweise die Protokolle für den Container nginx1 auf worker2:

    
    kubectl logs -c nginx1 worker2
    
  5. So zeigen Sie die 30 letzten Zeilen der Protokollausgabe von einem Pod mit dem Namen nginx an:

    
    kubectl logs --tail=30 nginx
    
  6. Um weitere Beispiele und Befehlszeilenoptionen anzuzeigen, verwenden Sie die Option -h für kubectl:

    
    kubectl logs -h
    

Überprüfen von Protokollen mit Docker

Wir können die Logs auch mit unserer Container-Runtime überprüfen. In den meisten Fällen handelt es sich dabei wahrscheinlich um Docker, obwohl dies von Ihrer Umgebung abhängt. Dies ist ein guter zusätzlicher Schritt, um mehr Protokolle für einzelne Container anzuzeigen, insbesondere wenn der Befehl kubectl aufgrund eines Kubernetes-Fehlers nicht funktioniert.

Überprüfen Sie zunächst die Container-IDs in Docker:


docker ps
CONTAINER ID   IMAGE                                 COMMAND                  CREATED       STATUS
705a163eaac3   gcr.io/k8s-minikube/kicbase:v0.0.37   "/usr/local/bin/entr…"   3 hours ago   Up 3 hours
truncated...

Verwenden Sie dann den Befehl docker logs zusammen mit der Container-ID, auf die Sie die Protokolle überprüfen möchten:


docker logs 705a163eaac3

Überprüfen des Verzeichnisses /var/logs

Einige Kubernetes-Implementierungen wie kubeadm erstellen auch Protokolle unter dem typischen Linux-Verzeichnis /var/log. Wir können sie sehen mit:


ls /var/log/pods
kube-flannel_kube-flannel-ds-9wdfm_9f1d0211
kube-system_coredns-787d4945fb-2nwxh_1f01271c
kube-system_coredns-787d4945fb-6sh26_2203c902
kube-system_etcd-kubernetes-master_884126e4a26b
kube-system_kube-apiserver-kubernetes-master_c6ea17320e910d
kube-system_kube-controller-manager-kubernetes-master_0dfeb
kube-system_kube-proxy-mgbwz_6a15d06d-0191-4ec1
kube-system_kube-scheduler-kubernetes-master_6b19524e5ea8b

Navigieren Sie in eines dieser Verzeichnisse, um die relevanten Protokolldateien und deren Einträge anzuzeigen. Diese Methode ermöglicht es uns, Protokolle speziell über Kubernetes-Coredns, API-Server usw., Scheduler, Controller-Manager, Proxy und Pod-Netzwerk anzuzeigen (in unserem Beispiel ist dies Flanell).

NOTE
Kubernetes-Protokolle können leicht überwältigend werden, was die Fehlerbehebung erschwert. Sehen Sie sich unser Tutorial zu Advanced Logging and Auditing unter Linux an, um mehr über Tools zu erfahren, mit denen Kubernetes-Protokolle an einem zentralen Ort gesammelt und kompiliert werden können.

Abschließende Gedanken

In diesem Tutorial haben wir gesehen, wie Sie Kubernetes-Protokolle auf einem Linux-System verwalten und Fehler beheben können. Dazu gehörten die Verwendung des Befehls kubectl logs, die Überprüfung der Containerlaufzeitprotokolle (in diesem Fall Docker) und die Überprüfung der Linux-Protokolldateien selbst. Da sich Protokolle an mehreren Orten befinden, ist es eine gute Idee, ein Tool eines Drittanbieters zu verwenden, das uns helfen kann, die Daten zu sammeln und zu visualisieren, wie im obigen Tutorial-Link erwähnt.

Verwandte Artikel: