From e462e5a0020c515633d33cbf579fc97d29fbdb13 Mon Sep 17 00:00:00 2001 From: Markus Pesch Date: Tue, 3 Dec 2024 09:18:14 +0100 Subject: [PATCH] doc(README): Avoid deploying on same node / bare metal host --- README.md | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a7383c9..50ca034 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ for customizations. These can be configured in more detail via `values.yaml`. The following examples serve as individual configurations and as inspiration for how deployment problems can be solved. -### TLS authentication and encryption +#### TLS authentication and encryption The first example shows how to deploy the metric exporter with TLS encryption. The verification of the custom TLS certification will be skipped by Prometheus. @@ -116,7 +116,7 @@ replaced: + --set 'prometheus.metrics.serviceMonitor.tlsConfig.keyFile=/etc/prometheus/tls/tls.key' ``` -### Grafana dashboard +#### Grafana dashboard The helm chart includes Grafana dashboards. These can be deployed as a configMap by activating Grafana integration. It is assumed that the dashboard is consumed by Grafana or a sidecar container itself and that the dashboard is stored in @@ -132,6 +132,31 @@ helm install prometheus-postgres-exporter prometheus-exporters/prometheus-postgr --set 'grafana.enabled=true' ``` +#### Avoid deploying on same node / bare metal host as PostgresDB + +As a best practice, avoid running the postgres-exporter on the same node / bare-metal host as the PostgresDB. This is +because if the postgres-exporter is running on the same node and this node fails, Prometheus can send an alert about the +failure of the node or that the postgres-exporter cannot be reached. However, it is not possible to react based on the +metrics that the postgres-exporter explicitly provides. Depending on the configuration of alerts, this may mean that the +corresponding notifications are not sent to the right person or group of people. + +The following example prevent the postgres-exporter from running on nodes with a PostgresDB. The PostgresDB nodes has an +additional label `database=postgres`. The configuration is carried out in `values.yaml`. + +```yaml +deployment: + affinity: + nodeAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + preference: + matchExpressions: + - key: database + operator: NotIn + values: + - postgres +``` + ## Parameters ### Global