Bereitstellung von Prometheus in Kubernetes – SouToub


Die Bereitstellung von Prometheus in Kubernetes umfasst einige einfache Schritte, unterscheidet sich jedoch erheblich von einer klassischen Installation. mit dem bekannten Systemd oder sogar Docker. Im folgenden Artikel analysieren wir schrittweise, was dafür zu tun ist.

Prometheus in Kubernetes bereitstellen

Ich gehe davon aus, dass Sie im Moment bereits einen bereitgestellten und konfigurierten k8s-Cluster sowie ein konfiguriertes kubectl-Dienstprogramm haben.

Erstellen Sie einen Namensraum

Wenn nicht explizit angegeben, wird standardmäßig der Standardnamespace zum Erstellen von Ressourcen verwendet. Besser ist es, die Überwachung auf einen separaten Namensraum zu beschränken, und in Zukunft ist es möglich, für alle Fälle Limits für CPU und RAM festzulegen. Sie können mit dem einfachsten Befehl einen Namensraum erstellen:

… oder Sie können eine yaml-Datei verwenden:


Die zweite Option ist meiner Meinung nach vorzuziehen, da Sie alle Vorteile des Speicherns der Konfiguration im Code nutzen können, aber es liegt an Ihnen.

Berechtigungen

Namespaces sollen Benutzer und Befehle voneinander isolieren, sowohl aus Ressourcen- als auch aus Sicherheitssicht.

Hinweis: Lesen Sie mehr über Namespaces im Walkthrough zu Namespaces è Namensräume offizielle Dokumentation.

Unsere zukünftige Prometheus-Installation ist für die Überwachung inkl. k8s, und daher benötigt sie Berechtigungen für den Zugriff auf die Clusterressourcen, und wir müssen sie ihr erteilen. Kurz gesagt, zuerst müssen wir erstellen ClusterRolle und Dienstkontound dann verlinke sie mit ClusterRoleBinding.

Hinweis: Wenn Sie dies nicht tun, werden Sie höchstwahrscheinlich auf HTTP 401/403-Fehler in der Prometheus-Weboberfläche stoßen.

Ich möchte eine so einfache Aufgabe nicht komplizieren, indem ich die Grundlagen der RBAC-Implementierung auf k8s erlerne. Anscheinend haben die Prometheus-Entwickler aus diesem Grund bereits die nötigen Configs für uns vorbereitet, die ihr mit dem Befehl herunterladen könnt:

Der einzige Moment ist, dass es dort verwendet wird. Namensraum: Standard. Ersetzen Überwachung:

Übernehmen Sie die Änderungen:

Gehen wir weiter.

Prometheus-Konfiguration

Lassen Sie uns nun eine grundlegende Prometheus-Konfiguration erstellen, die nur den globalen Abschnitt enthält. Wir werden den Rest des Inhalts in den folgenden Artikeln hinzufügen.

Wenden wir es an:

Nun, jetzt ist es an der Zeit, Prometheus selbst zu starten. Denken Sie daran, dass wir die oben erstellte Konfiguration in den Container weiterleiten müssen.

Beachten Sie den Abschnitt, in dem wir Volumes definieren. Konfig-Lautstärke Ist keine Scheibe im klassischen Sinne, aber ConfigMap, die nur eine Datei enthält – die Prometheus-Konfiguration:

Und hier montieren wir es im Container genau dort, wo Prometheus darauf wartet:

Wir wenden die Konfiguration an:

Aber das ist nicht alles.

Veröffentlichung

Jetzt ist es wünschenswert, unsere Anwendung innerhalb des Clusters zu veröffentlichen. Dies kann mithilfe von k8s-Diensten erfolgen. Wie sie in der offiziellen Dokumentation sagen , der Dienst ist:

Eine abstrakte Möglichkeit, eine Anwendung, die auf einer Reihe von Pods ausgeführt wird, als Netzwerkdienst bereitzustellen.

Hinweis: Es ist erwähnenswert, dass Sie Ingress verwenden müssen, um Dienste nach außen zu veröffentlichen , und Service wird für die Kommunikation innerhalb des Clusters verwendet.

Erstellen wir also eine weitere Konfigurationsdatei:

Wenden wir es an:

Prometheus-Weboberfläche

Wir haben nichts außerhalb veröffentlicht, aber das hindert uns nicht daran, Ports vom k8s-Cluster an Ihren Arbeitsplatz weiterzuleiten. Führen Sie dazu einfach den Befehl aus:

wobei 19090 der lokale Port ist und 9090 der Port ist, auf dem Prometheus früher veröffentlicht wurde. Führen Sie den Befehl aus, um die Ressourcen in Ihrem Namespace aufzulisten:

Das ist alles. Wir werden uns im nächsten Artikel mit der Einrichtung von Prometheus für die Überwachung der Ressourcen des k8s-Clusters befassen, aber im Moment haben wir einen vorgefertigten Prometheus, in den Sie problemlos externe Ziele hinzufügen können.

Kommentare powered by HyperComments

Leave a Reply

Your email address will not be published. Required fields are marked *