116 lines
2.7 KiB
YAML
116 lines
2.7 KiB
YAML
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: monitoring
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: prometheus
|
|
namespace: monitoring
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: prometheus
|
|
rules:
|
|
- apiGroups: [""]
|
|
resources: [nodes, nodes/proxy, services, endpoints, pods]
|
|
verbs: [get, list, watch]
|
|
- apiGroups: ["extensions", "networking.k8s.io"]
|
|
resources: [ingresses]
|
|
verbs: [get, list, watch]
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: prometheus
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: prometheus
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: prometheus
|
|
namespace: monitoring
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: prometheus-config
|
|
namespace: monitoring
|
|
data:
|
|
prometheus.yml: |
|
|
global:
|
|
scrape_interval: 15s
|
|
external_labels:
|
|
cluster: planck
|
|
scrape_configs:
|
|
- job_name: prometheus
|
|
static_configs:
|
|
- targets: ["localhost:9090"]
|
|
- job_name: node-exporter
|
|
kubernetes_sd_configs:
|
|
- role: node
|
|
relabel_configs:
|
|
- source_labels: [__meta_kubernetes_node_address_InternalIP]
|
|
target_label: instance_ip
|
|
- action: labelmap
|
|
regex: __meta_kubernetes_node_label_(.+)
|
|
metric_relabel_configs:
|
|
- source_labels: [__name__]
|
|
regex: go_.*
|
|
action: drop
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: prometheus
|
|
namespace: monitoring
|
|
spec:
|
|
serviceName: prometheus
|
|
replicas: 1
|
|
selector:
|
|
matchLabels: {app: prometheus}
|
|
template:
|
|
metadata:
|
|
labels: {app: prometheus}
|
|
spec:
|
|
serviceAccountName: prometheus
|
|
containers:
|
|
- name: prometheus
|
|
image: prom/prometheus:v3.6.0
|
|
args:
|
|
- --config.file=/etc/prometheus/prometheus.yml
|
|
- --storage.tsdb.retention.time=15d
|
|
- --storage.tsdb.path=/data
|
|
ports:
|
|
- containerPort: 9090
|
|
resources:
|
|
requests: {cpu: 150m, memory: 512Mi}
|
|
limits: {memory: 1Gi}
|
|
volumeMounts:
|
|
- {name: config, mountPath: /etc/prometheus}
|
|
- {name: data, mountPath: /data}
|
|
volumes:
|
|
- name: config
|
|
configMap: {name: prometheus-config}
|
|
volumeClaimTemplates:
|
|
- metadata: {name: data}
|
|
spec:
|
|
accessModes: [ReadWriteOnce]
|
|
storageClassName: local-path
|
|
resources:
|
|
requests: {storage: 20Gi}
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: prometheus
|
|
namespace: monitoring
|
|
spec:
|
|
selector: {app: prometheus}
|
|
ports:
|
|
- port: 9090
|
|
targetPort: 9090
|