174 lines
5.4 KiB
YAML
174 lines
5.4 KiB
YAML
# =====================================================================
|
|
# values.yaml per kube-prometheus-stack su RKE2 (installazione diretta,
|
|
# senza Rancher Manager)
|
|
#
|
|
# Repo: https://prometheus-community.github.io/helm-charts
|
|
# Chart: kube-prometheus-stack
|
|
#
|
|
# Install:
|
|
# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
|
|
# helm repo update
|
|
# helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \
|
|
# -n monitoring --create-namespace \
|
|
# -f 01-kube-prometheus-stack-values.yaml
|
|
# =====================================================================
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Prometheus
|
|
# ---------------------------------------------------------------------
|
|
prometheus:
|
|
prometheusSpec:
|
|
retention: 15d
|
|
retentionSize: "10GB"
|
|
|
|
# Adatta alla storageClass disponibile nel tuo cluster RKE2
|
|
# (es. longhorn, local-path-provisioner, ceph-rbd, ecc.)
|
|
storageSpec:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: longhorn # <-- CAMBIA con la tua storageClass
|
|
accessModes: ["ReadWriteOnce"]
|
|
resources:
|
|
requests:
|
|
storage: 50Gi
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 250m
|
|
memory: 1Gi
|
|
limits:
|
|
memory: 2Gi
|
|
|
|
# Permette a Prometheus di scoprire ServiceMonitor/PodMonitor
|
|
# creati in QUALSIASI namespace (importante per uno stack "generico"
|
|
# dove le verticali applicative, es. CNPG, vivono in namespace propri)
|
|
serviceMonitorSelectorNilUsesHelmValues: false
|
|
podMonitorSelectorNilUsesHelmValues: false
|
|
ruleSelectorNilUsesHelmValues: false
|
|
|
|
# Su RKE2 il control-plane espone metriche ma va abilitato esplicitamente
|
|
# lo scraping (vedi sezioni kubeEtcd/kubeControllerManager/kubeScheduler
|
|
# più sotto). Se il tuo cluster è "hardened" e non espone questi endpoint
|
|
# sui nodi worker, valuta di disabilitare le relative sezioni.
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Control plane RKE2 — di default questi componenti su RKE2 girano come
|
|
# pod statici raggiungibili sul nodo server; verificare le porte reali
|
|
# con `kubectl get pods -n kube-system` e `netstat` sul nodo se lo
|
|
# scraping non trova i target.
|
|
# ---------------------------------------------------------------------
|
|
kubeEtcd:
|
|
enabled: true
|
|
service:
|
|
port: 2381
|
|
targetPort: 2381
|
|
|
|
kubeControllerManager:
|
|
enabled: true
|
|
service:
|
|
port: 10257
|
|
targetPort: 10257
|
|
# RKE2 espone il controller-manager in HTTPS con cert self-signed:
|
|
# potrebbe servire scrapeConfig con tlsConfig.insecureSkipVerify: true
|
|
# (vedi kube-prometheus-stack docs, sezione "kubeControllerManager").
|
|
|
|
kubeScheduler:
|
|
enabled: true
|
|
service:
|
|
port: 10259
|
|
targetPort: 10259
|
|
|
|
# Traefik è deployato di default su RKE2 ed è considerato componente
|
|
# interno. Se lo usi come ingress controller, aggiungi un ServiceMonitor
|
|
# dedicato puntato al suo endpoint /metrics (di solito porta 9100).
|
|
kubeProxy:
|
|
enabled: true
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Alertmanager
|
|
# ---------------------------------------------------------------------
|
|
alertmanager:
|
|
alertmanagerSpec:
|
|
retention: 120h
|
|
storage:
|
|
volumeClaimTemplate:
|
|
spec:
|
|
storageClassName: longhorn # <-- CAMBIA con la tua storageClass
|
|
accessModes: ["ReadWriteOnce"]
|
|
resources:
|
|
requests:
|
|
storage: 5Gi
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 128Mi
|
|
limits:
|
|
memory: 256Mi
|
|
|
|
# Config di base; per la config completa vedi il file
|
|
# 04-alertmanager-config.yaml (AlertmanagerConfig CRD, più gestibile
|
|
# in modo dichiarativo/GitOps rispetto a alertmanager.config qui).
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Grafana (incluso nel chart)
|
|
# ---------------------------------------------------------------------
|
|
grafana:
|
|
enabled: true
|
|
defaultDashboardsTimezone: Europe/Rome
|
|
|
|
persistence:
|
|
enabled: true
|
|
storageClassName: longhorn # <-- CAMBIA con la tua storageClass
|
|
size: 5Gi
|
|
|
|
# Cambia in produzione: usa un Secret invece di plaintext
|
|
adminPassword: "CHANGE_ME"
|
|
|
|
# Loki come datasource aggiuntivo (vedi file 03-loki-alloy)
|
|
additionalDataSources:
|
|
- name: Loki
|
|
type: loki
|
|
access: proxy
|
|
url: http://loki.monitoring.svc.cluster.local:3100
|
|
isDefault: false
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
memory: 256Mi
|
|
|
|
# Import automatico dashboard CNPG (ID 20417) via sidecar dashboards
|
|
# già incluso nel chart: basta creare un ConfigMap con label
|
|
# grafana_dashboard=1 (vedi file 02-cnpg-monitoring.yaml in fondo,
|
|
# sezione dashboard, oppure importa manualmente da Grafana UI).
|
|
|
|
# ---------------------------------------------------------------------
|
|
# node-exporter
|
|
# ---------------------------------------------------------------------
|
|
nodeExporter:
|
|
enabled: true
|
|
|
|
prometheus-node-exporter:
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 30Mi
|
|
limits:
|
|
memory: 50Mi
|
|
|
|
# ---------------------------------------------------------------------
|
|
# kube-state-metrics
|
|
# ---------------------------------------------------------------------
|
|
kubeStateMetrics:
|
|
enabled: true
|
|
|
|
kube-state-metrics:
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 64Mi
|
|
limits:
|
|
memory: 128Mi
|