|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
Prometheus Federator
Der Prometheus Federator, auch bekannt als Projektüberwachung v2, stellt einen Helm-Projektoperator (basierend auf dem rancher/helm-project-operator) bereit, einen Operator, der die Bereitstellung von Helm-Charts verwaltet, die jeweils einen Projektüberwachungs-Stack enthalten, wobei jeder Stack Folgendes enthält:
-
Prometheus (extern verwaltet durch Prometheus Operator)
-
Alertmanager (extern verwaltet durch Prometheus Operator)
-
Grafana (bereitgestellt über ein eingebettetes Helm-Chart)
-
Standard-PrometheusRules und Grafana-Dashboards basierend auf der Sammlung von von der Community kuratierten Ressourcen aus kube-prometheus
-
Standard-ServiceMonitors, die die bereitgestellten Ressourcen überwachen
|
Wichtig:
Der Prometheus Federator ist so konzipiert, dass er zusammen mit einer bestehenden Bereitstellung des Prometheus Operators in einem Cluster, in dem die CRDs des Prometheus Operators bereits installiert sind, bereitgestellt wird. |
Wie funktioniert der Operator?
-
Bei der Bereitstellung dieses Charts können Benutzer ProjectHelmCharts-CRs mit
spec.helmApiVersionaufmonitoring.cattle.io/v1alpha1(auch bekannt als "Projektmonitore" in der Rancher-Benutzeroberfläche) in einem Projektregistrierungs-Namespace (cattle-project-<id>) erstellen. -
Bei der Sichtung jedes ProjectHelmChartCR wird der Operator automatisch einen Projekt-Prometheus-Stack im Namen des Projektinhabers im Projektfreigabe-Namespace (
cattle-project-<id>-monitoring) basierend auf einem HelmChart-CR und einem HelmRelease-CR bereitstellen, die automatisch vom ProjectHelmChart-Controller im Operator / System-Namespace erstellt wurden. -
RBAC wird automatisch im Projektfreigabe-Namespace zugewiesen, um Benutzern zu ermöglichen, die Benutzeroberflächen von Prometheus, Alertmanager und Grafana des bereitgestellten Projektüberwachungs-Stacks anzuzeigen; dies basiert auf dem RBAC, das im Projektregistrierungs-Namespace gegen die Standard-Kubernetes-Benutzerrollen definiert ist. Für weitere Informationen siehe den Abschnitt über RBAC konfigurieren.
Was ist ein Projekt?
Im Prometheus Federator ist ein Projekt eine Gruppe von Namespaces, die durch ein metav1.LabelSelector identifiziert werden können. Standardmäßig ist das Label, das zur Identifizierung von Projekten verwendet wird, field.cattle.io/projectId, das Label, das zur Identifizierung von Namespaces verwendet wird, die innerhalb eines bestimmten Rancher-Projekts enthalten sind.
Konfiguration des Helm-Releases, das von einem ProjectHelmChart erstellt wurde
Die spec.values der Ressourcen dieses ProjectHelmCharts entspricht dem values.yaml Override, das dem zugrunde liegenden Helm-Chart, das vom Operator im Namen des Benutzers bereitgestellt wird, zugeführt wird; um die values.yaml Spezifikation des zugrunde liegenden Charts zu sehen, entweder:
-
Sehen Sie sich die Chart-Definition an, die sich unter
rancher/prometheus-federatoruntercharts/rancher-project-monitoringbefindet (wobei die Chart-Version an die Version dieses Operators gebunden ist). -
Suchen Sie nach der ConfigMap mit dem Namen
monitoring.cattle.io.v1alpha1, die automatisch in jedem Project Registration Namespace erstellt wird und sowohlvalues.yamlals auchquestions.yamlenthält, die zur Konfiguration des Charts verwendet wurden (welche direkt in dieprometheus-federator-Binärdatei eingebettet wurden).
Namespaces
Als Project Operator, der auf rancher/helm-project-operator basiert, hat der Prometheus Federator drei verschiedene Klassifikationen von Namespaces, auf die der Operator achtet:
-
Operator / System Namespace: Der Namespace, in den der Operator bereitgestellt wird (z. B.
cattle-monitoring-system). Dieser Namespace enthält alle HelmCharts und HelmReleases für alle ProjectHelmCharts, die von diesem Operator überwacht werden. Nur Cluster-Administratoren sollten Zugriff auf diesen Namespace haben. -
Project Registration Namespace (
cattle-project-<id>): Die Menge der Namespaces, in denen der Operator nach ProjectHelmCharts sucht. Die RoleBindings und ClusterRoleBindings, die auf diesen Namespace zutreffen, werden auch die Quelle der Wahrheit für die automatisch zugewiesene RBAC sein, die im Project Release Namespace erstellt wurde. Für Details, siehe die RBAC-Seite. Projektbesitzer (Admin), Projektmitglieder (Bearbeiten) und Nur-Lese-Mitglieder (Anzeigen) sollten Zugriff auf diesen Namespace haben.Hinweise:-
Project Registration Namespaces werden vom Operator automatisch generiert und in das Projekt importiert, mit dem sie verbunden sind, wenn
.Values.global.cattle.projectLabelbereitgestellt wird, was standardmäßig auffield.cattle.io/projectIdgesetzt ist. Dies zeigt an, dass ein Project Registration Namespace vom Operator erstellt werden sollte, wenn mindestens ein Namespace mit diesem Label beobachtet wird. Der Operator wird nicht zulassen, dass diese Namespaces gelöscht werden, es sei denn, alle Namespaces mit diesem Label sind verschwunden (z. B. ist dies der letzte Namespace in diesem Projekt, in diesem Fall wird der Namespace mit dem Label"helm.cattle.io/helm-project-operator-orphaned": "true"markiert, was signalisiert, dass er gelöscht werden kann), oder er überwacht dieses Projekt nicht mehr, weil die Projekt-ID unter.Values.helmProjectOperator.otherSystemProjectLabelValuesbereitgestellt wurde, was als Negativliste für Projekte dient. Diese Namespaces werden auch niemals automatisch gelöscht, um zu vermeiden, dass Benutzerdaten zerstört werden; es wird empfohlen, dass Benutzer diese Namespaces manuell bereinigen, wenn sie ein Projekt erstellen oder löschen möchten. -
Wenn
.Values.global.cattle.projectLabelnicht bereitgestellt wird, wird der Operator / System Namespace auch der Project Registration Namespace sein.
-
-
Project Release Namespace (
cattle-project-<id>-monitoring): Die Menge der Namespaces, in denen der Operator Projektüberwachungsstapel im Auftrag eines ProjectHelmCharts bereitstellt; der Operator wird auch automatisch RBAC für Rollen zuweisen, die in diesem Namespace durch den Projektüberwachungsstapel basierend auf Bindungen im Projektregistrierungs-Namespace erstellt wurden. Nur Cluster-Administratoren sollten Zugriff auf diesen Namespace haben; Projektbesitzer (Admin), Projektmitglieder (Bearbeiten) und Nur-Lese-Mitglieder (Ansehen) erhalten eingeschränkten Zugriff auf diesen Namespace durch das bereitgestellte HelmChart und den Prometheus-Federator.Hinweise:-
Projektfreigabe-Namespaces werden automatisch bereitgestellt und in das Projekt importiert, dessen ID unter
.Values.helmProjectOperator.projectReleaseNamespaces.labelValueangegeben ist, was standardmäßig den Wert von.Values.global.cattle.systemProjectIdannimmt, wenn nicht angegeben, wann immer ein ProjectHelmChart in einem Projektregistrierungs-Namespace angegeben wird. -
Projektfreigabe-Namespaces folgen denselben Orphaning-Richtlinien wie Projektregistrierungs-Namespaces (siehe Hinweis oben).
-
Wenn
.Values.projectReleaseNamespaces.enabledfalsch ist, wird der Projektfreigabe-Namespace derselbe sein wie der Projektregistrierungs-Namespace.
-
Helm-Ressourcen (HelmChart, HelmRelease)
Bei der Bereitstellung eines ProjectHelmCharts wird der Prometheus-Federator automatisch zwei untergeordnete benutzerdefinierte Ressourcen erstellen und verwalten, die wiederum die zugrunde liegenden Helm-Ressourcen verwalten:
-
Ein HelmChart CR (verwaltet über ein eingebettetes k3s-io/helm-contoller im Operator): Diese benutzerdefinierte Ressource erstellt automatisch einen Job im selben Namespace, der ein
helm install,helm upgradeoderhelm uninstallauslöst, abhängig von der Änderung, die auf das HelmChart CR angewendet wird. Dieses CR wird automatisch bei Änderungen am ProjectHelmChart (z. B. Ändern der values.yaml) oder Änderungen an der zugrunde liegenden Projektdefinition (z. B. Hinzufügen oder Entfernen von Namespaces aus einem Projekt) aktualisiert.
|
Wichtig:
Wenn ein ProjectHelmChart aus irgendeinem Grund den zugrunde liegenden Projektüberwachungsstapel nicht bereitstellt oder aktualisiert, sollte der Job, der von dieser Ressource im Operator/System-Namensraum erstellt wurde, der erste Ort sein, den Sie überprüfen, um festzustellen, ob etwas mit dem Helm-Betrieb nicht stimmt. Dies ist jedoch in der Regel nur für einen Cluster-Administrator. zugänglich. |
-
Ein HelmRelease CR (verwaltet über ein eingebettetes rancher/helm-locker im Operator): Diese benutzerdefinierte Ressource sperrt automatisch ein bereitgestelltes Helm-Release fest und überschreibt automatisch Aktualisierungen an zugrunde liegenden Ressourcen, es sei denn, die Änderung erfolgt über einen Helm-Betrieb (
helm install,helm upgradeoderhelm uninstall, der vom HelmChart CR durchgeführt wird).
|
HelmRelease-CRs geben Kubernetes-Ereignisse aus, die erkennen, wann ein zugrunde liegendes Helm-Release geändert wird, und sperren es wieder an seinen Platz. Um diese Ereignisse anzuzeigen, können Sie |
Beide dieser Ressourcen werden für alle Helm-Charts in den Operator/System-Namespaces erstellt, um eine Eskalation von Berechtigungen für benachteiligte Benutzer zu vermeiden.
Erweiterte Helm-Projekt-Operator-Konfiguration
Für weitere Informationen zu erweiterten Konfigurationen siehe diese Seite.