kube-prometheus: extract ServiceMonitors into single files

Starting with Kubernetes 1.6 `kubectl apply` works for TPRs so we can
start using it, therefore using multiple files is no issue.
This commit is contained in:
Frederic Branczyk
2017-04-27 12:35:06 +02:00
parent a0e4d3352a
commit 309c677270
9 changed files with 126 additions and 88 deletions

View File

@@ -26,20 +26,6 @@ echo "done!"
kctl apply -f manifests/exporters kctl apply -f manifests/exporters
kctl apply -f manifests/grafana/grafana-credentials.yaml kctl apply -f manifests/grafana/grafana-credentials.yaml
kctl apply -f manifests/grafana kctl apply -f manifests/grafana
kctl apply -f manifests/prometheus/
kctl apply -f manifests/prometheus/prometheus-k8s-rules.yaml kctl apply -f manifests/alertmanager/
kctl apply -f manifests/prometheus/prometheus-k8s-service.yaml
kctl apply -f manifests/prometheus/prometheus-cluster-role-binding.yaml
kctl apply -f manifests/prometheus/prometheus-cluster-role.yaml
kctl apply -f manifests/prometheus/prometheus-k8s-service-account.yaml
kctl apply -f manifests/alertmanager/alertmanager-config.yaml
kctl apply -f manifests/alertmanager/alertmanager-service.yaml
# `kubectl apply` is currently not working for third party resources so we are
# using `kubectl create` here for the time being.
# (https://github.com/kubernetes/kubernetes/issues/29542)
kctl create -f manifests/prometheus/prometheus-k8s-servicemonitors.yaml
kctl create -f manifests/prometheus/prometheus-k8s.yaml
kctl create -f manifests/alertmanager/alertmanager.yaml

View File

@@ -0,0 +1,12 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
labels:
alertmanager: main
name: alertmanager
spec:
endpoints:
- port: web
selector:
matchExpressions:
- {key: alertmanager, operator: In, values: [main]}

View File

@@ -0,0 +1,23 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: kube-apiserver
labels:
k8s-apps: https
spec:
jobLabel: provider
selector:
matchLabels:
component: apiserver
provider: kubernetes
namespaceSelector:
matchNames:
- default
endpoints:
- port: https
interval: 15s
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
serverName: kubernetes
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token

View File

@@ -0,0 +1,23 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: k8s-apps-http
namespace: monitoring
labels:
k8s-apps: http
spec:
jobLabel: k8s-app
selector:
matchExpressions:
- {key: k8s-app, operator: Exists}
- {key: k8s-app, operator: NotIn, values: [kubelet]}
namespaceSelector:
matchNames:
- kube-system
endpoints:
- port: http-metrics
interval: 15s
- port: http-metrics-dnsmasq
interval: 15s
- port: http-metrics-skydns
interval: 15s

View File

@@ -0,0 +1,19 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: kube-state-metrics
namespace: monitoring
labels:
k8s-apps: http
spec:
jobLabel: k8s-app
selector:
matchLabels:
k8s-app: kube-state-metrics
namespaceSelector:
matchNames:
- monitoring
endpoints:
- port: http-metrics
interval: 15s
honorLabels: true

View File

@@ -0,0 +1,17 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: kubelet
labels:
k8s-apps: http
spec:
jobLabel: k8s-app
selector:
matchLabels:
k8s-app: kubelet
namespaceSelector:
matchNames:
- kube-system
endpoints:
- port: http-metrics
interval: 15s

View File

@@ -0,0 +1,18 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: node-exporter
namespace: monitoring
labels:
k8s-apps: http
spec:
jobLabel: k8s-app
selector:
matchLabels:
k8s-app: node-exporter
namespaceSelector:
matchNames:
- monitoring
endpoints:
- port: http-metrics
interval: 15s

View File

@@ -0,0 +1,12 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: prometheus
labels:
prometheus: k8s
spec:
endpoints:
- port: web
selector:
matchExpressions:
- {key: prometheus, operator: In, values: [k8s]}

View File

@@ -1,72 +0,0 @@
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: kube-apiserver
labels:
k8s-apps: https
spec:
jobLabel: provider
selector:
matchLabels:
component: apiserver
provider: kubernetes
namespaceSelector:
matchNames:
- default
endpoints:
- port: https
interval: 15s
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
serverName: kubernetes
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
---
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: k8s-apps-http
labels:
k8s-apps: http
spec:
jobLabel: k8s-app
selector:
matchExpressions:
- {key: k8s-app, operator: Exists}
namespaceSelector:
matchNames:
- kube-system
- monitoring
endpoints:
- port: http-metrics
interval: 15s
- port: http-metrics-dnsmasq
interval: 15s
- port: http-metrics-skydns
interval: 15s
---
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
name: prometheus
labels:
prometheus: k8s
spec:
endpoints:
- port: web
selector:
matchExpressions:
- {key: prometheus, operator: In, values: [k8s]}
---
apiVersion: monitoring.coreos.com/v1alpha1
kind: ServiceMonitor
metadata:
labels:
alertmanager: main
name: alertmanager
spec:
endpoints:
- port: web
selector:
matchExpressions:
- {key: alertmanager, operator: In, values: [main]}