Kubernetes

Kubernetes-Metrikenserver

Kubernetes-Metrikenserver
Bei einem so großen und komplizierten System wie Kubernetes kann die Überwachung oft mühsam werden.Monitoring ist immer ein kniffliges Geschäft, weil Sie einerseits keine kritischen Bugs und Ausfälle verpassen möchten, andererseits aber nicht in einem Meer von trivialen Fehlern versinken möchten, die weder durch Ihre Anwendung noch durch Ihre Anwendung ausgelöst werden es sowieso.

Mit seinem eigenen Stapel von Schedulern und Controllern kann Kubernetes sich von kleineren Ausfällen, Knotenausfällen oder Apps, die in ihren Pods abstürzen, wiederherstellen. Wenn jedoch viele Abstürze auftreten, hat dies möglicherweise nichts mit der Infrastruktur zu tun, sondern mit Ihrer App, die Kubernetes möglicherweise immer wieder neu startet, aber da der Code fehlerhaft ist, bleibt der Fehler bestehen und kann sogar unbemerkt bleiben.

Die Art von Fehlern, die die meiste Zeit unbemerkt bleiben, sind diejenigen, bei denen Apps nicht abstürzen, sondern am Ende die Systemressourcen überlasten und die Cluster über die gesamte Leistung beeinträchtigen. Dies sind die besonders schlimmen Fälle und Kubernetes Metrics Server kann ein nützliches Werkzeug sein, um sie im Auge zu behalten.

Das Projekt ist offiziell Teil des Kubernetes-Projekts, ist aber in den meisten Kubernetes-zertifizierten Distributionen nicht voraktiviert. Es enthält zwei wichtige Teile, die es wert sind, die Metrics API und den Metrics Server selbst zu diskutieren. Aber zuerst stellen wir es auf unserem Kubernetes (K8)-Cluster bereit.

Ein experimentelles Kubernetes-Setup

Ab Juli 2018 sind Docker für Mac und Windows beide mit einer Kubernetes-zertifizierten Implementierung von K8 selbst ausgestattet. So einfach wie die Installation von K8 auf einer Linux-Distribution. Sie können zu den Docker-Einstellungen gehen und wenn die Docker-Instanz auf dem neuesten Stand ist, finden Sie im Menü einen Kubernetes-Tab. Aktivieren Sie einfach Kubernetes anstelle von Docker Swarm und Sie haben einen Single-Node-Cluster, der bereit für Experimente ist.

Als Nächstes benötigen wir einige einfache Anwendungen, die für unseren Anwendungsfall ausgeführt werden. Erstellen Sie einen Ordner namens Deployments und erstellen Sie darin einen nginx-Bereitstellung.yaml Dateien, die zustandslose Nginx-Pods bereitstellen würden.

apiVersion: apps/v1 # für Versionen vor 1.9.0 verwende Apps/v1beta2
Art: Bereitstellung
Metadaten:
Name: nginx-Bereitstellung
spezifikation:
Wähler:
matchLabels:
App: nginx
Repliken: 2 # weist die Bereitstellung an, 2 Pods auszuführen, die der Vorlage entsprechen
Vorlage:
Metadaten:
Etiketten:
App: nginx
spezifikation:
Behälter:
- Name: nginx
Bild: nginx:1.7.9
Häfen:
- ContainerPort: 80

Speichern Sie die Datei und führen Sie im selben Verzeichnis, in dem sich diese Datei befindet, den Befehl aus:

$ kubectl create -f nginx-deployment.yaml

Wir müssen möglicherweise ein paar Minuten warten, damit Kubernetes die Container-Images herunterladen, die Container bereitstellen und ein bisschen verschiedene Buchhaltungen durchführen kann. Sobald dies erledigt ist, können Sie die Liste der Pods wie folgt sehen:

$ kubectl Pods erhalten

Wie Sie sehen können, haben wir zwei Instanzen des Pods, als die .yaml-Datei hatte vorgeschrieben.

Da wir nun etwas zu überwachen haben, müssen wir Metrics Server aktivieren enable. Überprüfen Sie zuerst die Version von Kubernetes, die Sie ausführen. Wenn die Version 1 . ist.8 oder höher, dann würden wir eine andere Bereitstellung ausführen und wenn es 1 ist.7 dann greifen wir auf das alte zurück:

$kubectl-Version

Sie können das offizielle Image abrufen und beginnen, indem Sie dieses GitHub-Repository klonen und dann im Stammverzeichnis des Repositorys das kubectl create -f mit dem passenden .yaml abhängig von der K8-Version, die Sie ausführen.

$ git-Klon https://github.com/kubernetes-incubator/metrics-server.git
 
$ cd Metrik-Server
# Wenn Sie Kubernetes-Version 1 ausführen.8 oder höher
$ kubectl create -f deploy/1.8+/
# Wenn die Version 1 . ist.7, dann
$ kubectl create -f deploy/1.7/

Geben Sie den Kubernetes eine Weile, um die Bilder herunterzuladen und den Metrikserver hochzufahren. Es kann ein paar Minuten dauern. Sobald dies erledigt ist, können Sie den Metrikserver ausführen. Der Grundbefehl ist inspiriert von der oben Befehl, der häufig ausgeführt wird, um ein Linux-System zu überwachen. Aber es gibt zwei Varianten, eine zum Überprüfen der Ressourcennutzungen auf dem rechner Knoten und zweitens, um die zu messen Ressourcenverbrauch durch die eingesetzten Schoten und der. So sehen Sie diese beiden Details:

$ kubectl oberster Knoten
$ kubectl top pod

Sie können sehen, wie viel ein Pod Ihr System in Bezug auf Arbeitsspeicher oder CPU-Zeit beansprucht, und mithilfe der Metrik-API können Sie auch Warnungen entsprechend einrichten.

Wohin wird es von hier aus gehen?

Die aufkommenden Anwendungsfälle des Metrikservers werden in der Zukunft von Kubernetes entscheidend sein. Dieses Projekt ist noch in Version 0.2.x, sobald es ausgereift und in die Mainstream-Kubernetes-Architektur integriert ist, sammelt es wichtige Daten für den Scheduler und hilft ihm dabei, Pods effizienter und effizienter zu Knoten zuzuweisen.

Ebenso wird Horizontal Pod Autoscaler stark von dem Projekt profitieren und Ihnen helfen, hoch- oder herunterzuskalieren, damit die Ressourcen von den Anwendungen optimal genutzt werden.

Verweise

  1. Nginx-Bereitstellungen
  2. Kubernetes-Metrikenserver
  3. Design Docs für die Metrics API finden Sie hier und ähnliche Informationen zum Metrics Server finden Sie hier.
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...
So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...
Top Oculus App Lab-Spiele
Wenn Sie Besitzer eines Oculus-Headsets sind, müssen Sie über Sideloading informiert sein. Sideloading ist der Prozess der Installation von Inhalten, ...