Skip to content

Commit 6d7213f

Browse files
authored
Improve docs of leaderelection configuration (elastic#20601)
1 parent 24fc444 commit 6d7213f

5 files changed

Lines changed: 70 additions & 373 deletions

File tree

deploy/kubernetes/metricbeat-kubernetes.yaml

Lines changed: 29 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -16,45 +16,39 @@ data:
1616
1717
metricbeat.autodiscover:
1818
providers:
19+
- type: kubernetes
20+
scope: cluster
21+
node: ${NODE_NAME}
22+
unique: true
23+
templates:
24+
- config:
25+
- module: kubernetes
26+
hosts: ["kube-state-metrics:8080"]
27+
period: 10s
28+
add_metadata: true
29+
metricsets:
30+
- state_node
31+
- state_deployment
32+
- state_replicaset
33+
- state_pod
34+
- state_container
35+
- state_cronjob
36+
- state_resourcequota
37+
- state_statefulset
38+
# Uncomment this to get k8s events:
39+
#- event
40+
- module: kubernetes
41+
metricsets:
42+
- apiserver
43+
hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
44+
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
45+
ssl.certificate_authorities:
46+
- /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
47+
period: 30s
1948
# To enable hints based autodiscover uncomment this:
2049
#- type: kubernetes
2150
# node: ${NODE_NAME}
2251
# hints.enabled: true
23-
# Uncomment the following to enable leader election provider that handles
24-
# singleton instance configuration across the Daemonset Pods of the whole cluster
25-
# in order to monitor some unique data sources, like kube-state-metrics.
26-
# When enabling this remember to also delete the Deployment or just set the replicas of the
27-
# Deployment to 0.
28-
#- type: kubernetes
29-
# scope: cluster
30-
# node: ${NODE_NAME}
31-
# unique: true
32-
# # identifier: <lease_lock_name>
33-
# templates:
34-
# - config:
35-
# - module: kubernetes
36-
# hosts: ["kube-state-metrics:8080"]
37-
# period: 10s
38-
# add_metadata: true
39-
# metricsets:
40-
# - state_node
41-
# - state_deployment
42-
# - state_replicaset
43-
# - state_pod
44-
# - state_container
45-
# - state_cronjob
46-
# - state_resourcequota
47-
# - state_statefulset
48-
# # Uncomment this to get k8s events:
49-
# #- event
50-
# - module: kubernetes
51-
# metricsets:
52-
# - apiserver
53-
# hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
54-
# bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
55-
# ssl.certificate_authorities:
56-
# - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
57-
# period: 30s
5852
5953
processors:
6054
- add_cloud_metadata:
@@ -224,138 +218,6 @@ spec:
224218
path: /var/lib/metricbeat-data
225219
type: DirectoryOrCreate
226220
---
227-
apiVersion: v1
228-
kind: ConfigMap
229-
metadata:
230-
name: metricbeat-deployment-config
231-
namespace: kube-system
232-
labels:
233-
k8s-app: metricbeat
234-
data:
235-
metricbeat.yml: |-
236-
metricbeat.config.modules:
237-
# Mounted `metricbeat-daemonset-modules` configmap:
238-
path: ${path.config}/modules.d/*.yml
239-
# Reload module configs as they change:
240-
reload.enabled: false
241-
242-
processors:
243-
- add_cloud_metadata:
244-
245-
cloud.id: ${ELASTIC_CLOUD_ID}
246-
cloud.auth: ${ELASTIC_CLOUD_AUTH}
247-
248-
output.elasticsearch:
249-
hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}']
250-
username: ${ELASTICSEARCH_USERNAME}
251-
password: ${ELASTICSEARCH_PASSWORD}
252-
---
253-
apiVersion: v1
254-
kind: ConfigMap
255-
metadata:
256-
name: metricbeat-deployment-modules
257-
namespace: kube-system
258-
labels:
259-
k8s-app: metricbeat
260-
data:
261-
# This module requires `kube-state-metrics` up and running under `kube-system` namespace
262-
kubernetes.yml: |-
263-
- module: kubernetes
264-
metricsets:
265-
- state_node
266-
- state_deployment
267-
- state_replicaset
268-
- state_pod
269-
- state_container
270-
- state_cronjob
271-
- state_resourcequota
272-
- state_statefulset
273-
# Uncomment this to get k8s events:
274-
#- event
275-
period: 10s
276-
host: ${NODE_NAME}
277-
hosts: ["kube-state-metrics:8080"]
278-
#- module: kubernetes
279-
# metricsets:
280-
# - apiserver
281-
# hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
282-
# bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
283-
# ssl.certificate_authorities:
284-
# - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
285-
# period: 30s
286-
---
287-
# Deploy singleton instance in the whole cluster for some unique data sources, like kube-state-metrics
288-
apiVersion: apps/v1
289-
kind: Deployment
290-
metadata:
291-
name: metricbeat
292-
namespace: kube-system
293-
labels:
294-
k8s-app: metricbeat
295-
spec:
296-
# Set to 0 if using leader election provider with the Daemonset
297-
replicas: 1
298-
selector:
299-
matchLabels:
300-
k8s-app: metricbeat
301-
template:
302-
metadata:
303-
labels:
304-
k8s-app: metricbeat
305-
spec:
306-
serviceAccountName: metricbeat
307-
hostNetwork: true
308-
dnsPolicy: ClusterFirstWithHostNet
309-
containers:
310-
- name: metricbeat
311-
image: docker.elastic.co/beats/metricbeat:8.0.0
312-
args: [
313-
"-c", "/etc/metricbeat.yml",
314-
"-e",
315-
]
316-
env:
317-
- name: ELASTICSEARCH_HOST
318-
value: elasticsearch
319-
- name: ELASTICSEARCH_PORT
320-
value: "9200"
321-
- name: ELASTICSEARCH_USERNAME
322-
value: elastic
323-
- name: ELASTICSEARCH_PASSWORD
324-
value: changeme
325-
- name: ELASTIC_CLOUD_ID
326-
value:
327-
- name: ELASTIC_CLOUD_AUTH
328-
value:
329-
- name: NODE_NAME
330-
valueFrom:
331-
fieldRef:
332-
fieldPath: spec.nodeName
333-
securityContext:
334-
runAsUser: 0
335-
resources:
336-
limits:
337-
memory: 200Mi
338-
requests:
339-
cpu: 100m
340-
memory: 100Mi
341-
volumeMounts:
342-
- name: config
343-
mountPath: /etc/metricbeat.yml
344-
readOnly: true
345-
subPath: metricbeat.yml
346-
- name: modules
347-
mountPath: /usr/share/metricbeat/modules.d
348-
readOnly: true
349-
volumes:
350-
- name: config
351-
configMap:
352-
defaultMode: 0640
353-
name: metricbeat-deployment-config
354-
- name: modules
355-
configMap:
356-
defaultMode: 0640
357-
name: metricbeat-deployment-modules
358-
---
359221
apiVersion: rbac.authorization.k8s.io/v1
360222
kind: ClusterRoleBinding
361223
metadata:

deploy/kubernetes/metricbeat/metricbeat-daemonset-configmap.yaml

Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,45 +16,39 @@ data:
1616
1717
metricbeat.autodiscover:
1818
providers:
19+
- type: kubernetes
20+
scope: cluster
21+
node: ${NODE_NAME}
22+
unique: true
23+
templates:
24+
- config:
25+
- module: kubernetes
26+
hosts: ["kube-state-metrics:8080"]
27+
period: 10s
28+
add_metadata: true
29+
metricsets:
30+
- state_node
31+
- state_deployment
32+
- state_replicaset
33+
- state_pod
34+
- state_container
35+
- state_cronjob
36+
- state_resourcequota
37+
- state_statefulset
38+
# Uncomment this to get k8s events:
39+
#- event
40+
- module: kubernetes
41+
metricsets:
42+
- apiserver
43+
hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
44+
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
45+
ssl.certificate_authorities:
46+
- /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
47+
period: 30s
1948
# To enable hints based autodiscover uncomment this:
2049
#- type: kubernetes
2150
# node: ${NODE_NAME}
2251
# hints.enabled: true
23-
# Uncomment the following to enable leader election provider that handles
24-
# singleton instance configuration across the Daemonset Pods of the whole cluster
25-
# in order to monitor some unique data sources, like kube-state-metrics.
26-
# When enabling this remember to also delete the Deployment or just set the replicas of the
27-
# Deployment to 0.
28-
#- type: kubernetes
29-
# scope: cluster
30-
# node: ${NODE_NAME}
31-
# unique: true
32-
# # identifier: <lease_lock_name>
33-
# templates:
34-
# - config:
35-
# - module: kubernetes
36-
# hosts: ["kube-state-metrics:8080"]
37-
# period: 10s
38-
# add_metadata: true
39-
# metricsets:
40-
# - state_node
41-
# - state_deployment
42-
# - state_replicaset
43-
# - state_pod
44-
# - state_container
45-
# - state_cronjob
46-
# - state_resourcequota
47-
# - state_statefulset
48-
# # Uncomment this to get k8s events:
49-
# #- event
50-
# - module: kubernetes
51-
# metricsets:
52-
# - apiserver
53-
# hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
54-
# bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
55-
# ssl.certificate_authorities:
56-
# - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
57-
# period: 30s
5852
5953
processors:
6054
- add_cloud_metadata:

deploy/kubernetes/metricbeat/metricbeat-deployment-configmap.yaml

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)