Skip to content

Commit c064f1c

Browse files
committed
add prometheus and kubernetes talk
1 parent f32576b commit c064f1c

11 files changed

+347
-0
lines changed
132 KB
Binary file not shown.

2018-06-19/demo/kad/deploy.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
apiVersion: extensions/v1beta1
2+
kind: Deployment
3+
metadata:
4+
name: kad
5+
spec:
6+
replicas: 1
7+
selector:
8+
matchLabels:
9+
app: kad
10+
template:
11+
metadata:
12+
labels:
13+
app: kad
14+
spec:
15+
containers:
16+
- name: kad
17+
image: tomkukral/kad
18+
imagePullPolicy: Always
19+
ports:
20+
- containerPort: 5000

2018-06-19/demo/kad/svc.yml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
kind: Service
2+
apiVersion: v1
3+
metadata:
4+
name: kad
5+
annotations:
6+
prometheus.io/scrape: 'true'
7+
prometheus.io/probe: 'true'
8+
spec:
9+
type: LoadBalancer
10+
selector:
11+
app: kad
12+
ports:
13+
- protocol: TCP
14+
port: 80
15+
targetPort: 5000
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: extensions/v1beta1
2+
kind: Deployment
3+
metadata:
4+
name: blackbox-exporter
5+
namespace: prometheus
6+
annotations:
7+
verion: 0.2
8+
spec:
9+
replicas: 1
10+
strategy:
11+
rollingUpdate:
12+
maxSurge: 0
13+
maxUnavailable: 1
14+
type: RollingUpdate
15+
selector:
16+
matchLabels:
17+
app: blackbox-exporter
18+
template:
19+
metadata:
20+
name: blackbox-exporter
21+
labels:
22+
app: blackbox-exporter
23+
spec:
24+
containers:
25+
- name: blackbox-exporter
26+
image: prom/blackbox-exporter
27+
ports:
28+
- containerPort: 9115

2018-06-19/demo/prometheus/be-svc.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
kind: Service
2+
apiVersion: v1
3+
metadata:
4+
name: blackbox-exporter
5+
namespace: prometheus
6+
spec:
7+
selector:
8+
app: blackbox-exporter
9+
ports:
10+
- protocol: TCP
11+
port: 9115
+118
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: prometheus-configmap
5+
namespace: prometheus
6+
data:
7+
prometheus.yml: |-
8+
rule_files:
9+
- "/etc/prometheus/*.rules"
10+
global:
11+
scrape_interval: 10s
12+
scrape_configs:
13+
- job_name: 'kubernetes-apiservers'
14+
scheme: https
15+
kubernetes_sd_configs:
16+
- role: endpoints
17+
18+
tls_config:
19+
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
20+
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
21+
22+
relabel_configs:
23+
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
24+
action: keep
25+
regex: default;kubernetes;https
26+
27+
- job_name: 'kubernetes-kubelets'
28+
scheme: http
29+
kubernetes_sd_configs:
30+
- role: node
31+
32+
relabel_configs:
33+
- action: labelmap
34+
regex: __meta_kubernetes_node_label_(.+)
35+
- source_labels: [__address__]
36+
regex: '(.*):10250'
37+
replacement: '${1}:10255'
38+
target_label: __address__
39+
40+
- job_name: 'kubernetes-node-exporter'
41+
scheme: http
42+
kubernetes_sd_configs:
43+
- role: node
44+
45+
relabel_configs:
46+
- action: labelmap
47+
regex: __meta_kubernetes_node_label_(.+)
48+
- source_labels: [__meta_kubernetes_role]
49+
action: replace
50+
target_label: kubernetes_role
51+
- source_labels: [__address__]
52+
regex: '(.*):10250'
53+
replacement: '${1}:9100'
54+
target_label: __address__
55+
- source_labels: [__meta_kubernetes_node_label_kubernetes_io_hostname]
56+
regex: '(.*)'
57+
replacement: '${1}:9100'
58+
target_label: instance
59+
60+
# set "name" value to "job"
61+
- source_labels: [job]
62+
regex: 'kubernetes-(.*)'
63+
replacement: '${1}'
64+
target_label: name
65+
66+
- job_name: 'kubernetes-services'
67+
kubernetes_sd_configs:
68+
- role: endpoints
69+
70+
relabel_configs:
71+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
72+
action: keep
73+
regex: true
74+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
75+
action: replace
76+
target_label: __scheme__
77+
regex: (https?)
78+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
79+
action: replace
80+
target_label: __metrics_path__
81+
regex: (.+)
82+
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
83+
action: replace
84+
target_label: __address__
85+
regex: (.+)(?::\d+);(\d+)
86+
replacement: $1:$2
87+
- action: labelmap
88+
regex: __meta_kubernetes_service_label_(.+)
89+
- source_labels: [__meta_kubernetes_service_namespace]
90+
action: replace
91+
target_label: kubernetes_namespace
92+
- source_labels: [__meta_kubernetes_service_name]
93+
action: replace
94+
target_label: kubernetes_name
95+
96+
- job_name: 'kubernetes-services-probe'
97+
params:
98+
module: [http_2xx]
99+
100+
kubernetes_sd_configs:
101+
- role: service
102+
103+
relabel_configs:
104+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_probe]
105+
action: keep
106+
regex: true
107+
- source_labels: [__address__]
108+
target_label: __param_target
109+
- target_label: __address__
110+
replacement: blackbox-exporter.prometheus.svc:9115
111+
- source_labels: [__param_target]
112+
target_label: instance
113+
- action: labelmap
114+
regex: __meta_kubernetes_service_label_(.+)
115+
- source_labels: [__meta_kubernetes_namespace]
116+
target_label: kubernetes_namespace
117+
- source_labels: [__meta_kubernetes_service_name]
118+
target_label: kubernetes_name

2018-06-19/demo/prometheus/deploy.yml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
apiVersion: extensions/v1beta1
2+
kind: Deployment
3+
metadata:
4+
name: prometheus
5+
namespace: prometheus
6+
annotations:
7+
verion: 0.2
8+
spec:
9+
replicas: 1
10+
strategy:
11+
rollingUpdate:
12+
maxSurge: 0
13+
maxUnavailable: 1
14+
type: RollingUpdate
15+
selector:
16+
matchLabels:
17+
app: prometheus
18+
template:
19+
metadata:
20+
name: prometheus
21+
labels:
22+
app: prometheus
23+
spec:
24+
serviceAccountName: prometheus
25+
initContainers:
26+
- name: chown
27+
image: busybox
28+
command: ["chown", "-R", "nobody", "/prometheus"]
29+
volumeMounts:
30+
- name: prometheus-data
31+
mountPath: /prometheus
32+
33+
containers:
34+
- name: prometheus
35+
image: prom/prometheus
36+
args:
37+
- "--config.file=/etc/prometheus/prometheus.yml"
38+
- "--storage.tsdb.path=/prometheus"
39+
- "--web.console.libraries=/usr/share/prometheus/console_libraries"
40+
- "--web.console.templates=/usr/share/prometheus/consoles"
41+
ports:
42+
- name: web
43+
containerPort: 9090
44+
volumeMounts:
45+
- name: config-volume
46+
mountPath: /etc/prometheus
47+
- name: etcd-tls-client-certs
48+
mountPath: /etc/etcd/ssl
49+
readOnly: true
50+
- name: prometheus-data
51+
mountPath: /prometheus
52+
volumes:
53+
- name: config-volume
54+
configMap:
55+
name: prometheus-configmap
56+
- name: etcd-tls-client-certs
57+
hostPath:
58+
path: /etc/ssl/etcd/
59+
- name: prometheus-data
60+
persistentVolumeClaim:
61+
claimName: prometheus-data
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apiVersion: extensions/v1beta1
2+
kind: DaemonSet
3+
metadata:
4+
name: node-exporter
5+
namespace: prometheus
6+
spec:
7+
template:
8+
metadata:
9+
labels:
10+
app: node-exporter
11+
name: node-exporter
12+
spec:
13+
hostNetwork: true
14+
hostPID: true
15+
containers:
16+
- image: prom/node-exporter
17+
name: node-exporter
18+
ports:
19+
- containerPort: 9100
20+
hostPort: 9100
21+
name: scrape
22+
volumeMounts:
23+
- name: root-disk
24+
mountPath: /root-disk
25+
readOnly: true
26+
volumes:
27+
- name: root-disk
28+
hostPath:
29+
path: /
30+

2018-06-19/demo/prometheus/pvc.yml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
kind: PersistentVolumeClaim
3+
apiVersion: v1
4+
metadata:
5+
name: prometheus-data
6+
namespace: prometheus
7+
spec:
8+
accessModes:
9+
- ReadWriteOnce
10+
resources:
11+
requests:
12+
storage: 50Gi

2018-06-19/demo/prometheus/rbac.yml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: prometheus
6+
namespace: prometheus
7+
---
8+
apiVersion: rbac.authorization.k8s.io/v1beta1
9+
kind: ClusterRole
10+
metadata:
11+
name: prometheus
12+
rules:
13+
- apiGroups: [""]
14+
resources:
15+
- nodes
16+
- services
17+
- endpoints
18+
- pods
19+
verbs: ["get", "list", "watch"]
20+
- apiGroups: [""]
21+
resources:
22+
- configmaps
23+
verbs: ["get"]
24+
- nonResourceURLs: ["/metrics"]
25+
verbs: ["get"]
26+
---
27+
apiVersion: rbac.authorization.k8s.io/v1beta1
28+
kind: ClusterRoleBinding
29+
metadata:
30+
name: prometheus
31+
roleRef:
32+
apiGroup: rbac.authorization.k8s.io
33+
kind: ClusterRole
34+
name: prometheus
35+
subjects:
36+
- kind: ServiceAccount
37+
name: prometheus
38+
namespace: prometheus

2018-06-19/demo/prometheus/svc.yml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
kind: Service
2+
apiVersion: v1
3+
metadata:
4+
name: prometheus
5+
namespace: prometheus
6+
annotations:
7+
prometheus.io/scrape: 'true'
8+
spec:
9+
selector:
10+
app: prometheus
11+
ports:
12+
- protocol: TCP
13+
port: 9090
14+
targetPort: 9090

0 commit comments

Comments
 (0)