[bitnami/prometheus-operator] Adding kube-proxy scraping (#2717)

This commit is contained in:
Scott Crooks
2020-06-26 15:18:07 +02:00
committed by GitHub
parent 6413a163d3
commit ad6d662455
7 changed files with 194 additions and 18 deletions

View File

@@ -2,7 +2,7 @@ apiVersion: v1
appVersion: 0.40.0
description: The Prometheus Operator for Kubernetes provides easy monitoring definitions for Kubernetes services and deployment and management of Prometheus instances.
name: prometheus-operator
version: 0.20.7
version: 0.21.0
keywords:
- prometheus
- alertmanager

View File

@@ -312,23 +312,34 @@ The following table lists the configurable parameters of the Prometheus Operator
### Exporters
| Parameter | Description | Default |
|-------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `exporters.enabled` | Deploy exporters | `true` |
| `exporters.node-exporter.enabled` | Deploy `node-exporter` | `true` |
| `exporters.kube-state-metrics.enabled` | Deploy `kube-state-metrics` | `true` |
| `kubelet.namespace` | Namespace where kubelet service is deployed. Related configuration `operator.kubeletService.namespace` | `kube-system` |
| `kubelet.enabled` | Create a ServiceMonitor to scrape kubelet service | `true` |
| `kubelet.serviceMonitor.https` | Enable scraping of the kubelet over HTTPS | `true` |
| `kubelet.serviceMonitor.interval` | Scrape interval (use by default, falling back to Prometheus' default) | `nil` |
| `kubelet.serviceMonitor.metricRelabelings` | Metric relabeling | `[]` |
| `kubelet.serviceMonitor.relabelings` | Relabel configs | `[]` |
| `kubelet.serviceMonitor.cAdvisorMetricRelabelings` | Metric relabeling for scraping cAdvisor | `[]` |
| `kubelet.serviceMonitor.cAdvisorRelabelings` | Relabel configs for scraping cAdvisor | `[]` |
| `kubeApiServer.enabled` | Create a ServiceMonitor to scrape kube-apiserver service | `true` |
| `kubeApiServer.serviceMonitor.interval` | Scrape interval (use by default, falling back to Prometheus' default) | `nil` |
| `kubeApiServer.serviceMonitor.metricRelabelings` | Metric relabeling | `[]` |
| `kubeApiServer.serviceMonitor.relabelings` | Relabel configs | `[]` |
| Parameter | Description | Default |
| -------------------------------------------------- | ------------------------------------------------------------ | ------------- |
| `exporters.enabled` | Deploy exporters | `true` |
| `exporters.node-exporter.enabled` | Deploy `node-exporter` | `true` |
| `exporters.kube-state-metrics.enabled` | Deploy `kube-state-metrics` | `true` |
| `kubelet.namespace` | Namespace where kubelet service is deployed. Related configuration `operator.kubeletService.namespace` | `kube-system` |
| `kubelet.enabled` | Create a ServiceMonitor to scrape kubelet service | `true` |
| `kubelet.serviceMonitor.https` | Enable scraping of the kubelet over HTTPS | `true` |
| `kubelet.serviceMonitor.interval` | Scrape interval (use by default, falling back to Prometheus' default) | `nil` |
| `kubelet.serviceMonitor.metricRelabelings` | Metric relabeling | `[]` |
| `kubelet.serviceMonitor.relabelings` | Relabel configs | `[]` |
| `kubelet.serviceMonitor.cAdvisorMetricRelabelings` | Metric relabeling for scraping cAdvisor | `[]` |
| `kubelet.serviceMonitor.cAdvisorRelabelings` | Relabel configs for scraping cAdvisor | `[]` |
| `kubeApiServer.enabled` | Create a ServiceMonitor to scrape kube-apiserver service | `true` |
| `kubeApiServer.serviceMonitor.interval` | Scrape interval (use by default, falling back to Prometheus' default) | `nil` |
| `kubeApiServer.serviceMonitor.metricRelabelings` | Metric relabeling | `[]` |
| `kubeApiServer.serviceMonitor.relabelings` | Relabel configs | `[]` |
| `kubeProxy.enabled` | Create a ServiceMonitor to scrape the kube-proxy Service | `true` |
| `kubeProxy.endpoints` | If your kube-proxy is not deployed as a pod, specify IPs it can be found on | `[]` |
| `kubeProxy.namespace` | Namespace where cube-proxy service is deployed. | `kube-system` |
| `kubeProxy.service.enabled` | Whether or not to create a Service object for kube-proxy | `true` |
| `kubeProxy.service.port` | Listening port of the kube-proxy Service object | `10249` |
| `kubeProxy.service.targetPort` | Port to target on the kube-proxy Pods. This should be the port that kube-proxy is listening on | `10249` |
| `kubeProxy.service.selector` | Service label selector to discover the kube-proxy Pods | `{}` |
| `kubeProxy.serviceMonitor.enabled` | Create a ServiceMonitor object | `true` |
| `kubeProxy.serviceMonitor.interval` | Scrape interval (use by default, falling back to Prometheus' default) | `""` |
| `kubeProxy.serviceMonitor.metricRelabelings` | Metric relabeling | `[]` |
| `kubeProxy.serviceMonitor.relabelings` | Relabel configs | `[]` |
The above parameters map to the env variables defined in [bitnami/prometheus-operator](http://github.com/bitnami/bitnami-docker-prometheus-operator). For more information please refer to the [bitnami/prometheus-operator](http://github.com/bitnami/bitnami-docker-prometheus-operator) image documentation.

View File

@@ -0,0 +1,18 @@
{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.endpoints }}
apiVersion: v1
kind: Endpoints
metadata:
name: {{ template "prometheus-operator.fullname" . }}-kube-proxy
namespace: {{ .Values.kubeProxy.namespace }}
labels: {{- include "prometheus-operator.labels" . | nindent 4 }}
app.kubernetes.io/component: kube-proxy
subsets:
- addresses:
{{- range .Values.kubeProxy.endpoints }}
- ip: {{ . }}
{{- end }}
ports:
- name: http-metrics
port: {{ .Values.kubeProxy.service.port }}
protocol: TCP
{{- end }}

View File

@@ -0,0 +1,25 @@
{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.service.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ template "prometheus-operator.fullname" . }}-kube-proxy
namespace: {{ .Values.kubeProxy.namespace }}
labels: {{- include "prometheus-operator.labels" . | nindent 4 }}
app.kubernetes.io/component: kube-proxy
spec:
clusterIP: None
ports:
- name: http-metrics
port: {{ .Values.kubeProxy.service.port }}
protocol: TCP
targetPort: {{ .Values.kubeProxy.service.targetPort }}
{{- if .Values.kubeProxy.endpoints }}{{- else }}
selector:
{{- if .Values.kubeProxy.service.selector }}
{{ toYaml .Values.kubeProxy.service.selector | nindent 4 }}
{{- else }}
k8s-app: kube-proxy
{{- end }}
{{- end }}
type: ClusterIP
{{- end -}}

View File

@@ -0,0 +1,36 @@
{{- if .Values.kubeProxy.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "prometheus-operator.fullname" . }}-kube-proxy
namespace: {{ .Release.Namespace }}
labels: {{- include "prometheus-operator.labels" . | nindent 4 }}
app.kubernetes.io/component: kube-proxy
spec:
jobLabel: k8s-app
selector:
matchLabels:
app.kubernetes.io/component: kube-proxy
namespaceSelector:
matchNames:
- {{ .Values.kubeProxy.namespace }}
endpoints:
- port: http-metrics
{{- if .Values.kubeProxy.serviceMonitor.interval }}
interval: {{ .Values.kubeProxy.serviceMonitor.interval }}
{{- end }}
bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
{{- if .Values.kubeProxy.serviceMonitor.https }}
scheme: https
tlsConfig:
caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
{{- end}}
{{- if .Values.kubeProxy.serviceMonitor.metricRelabelings }}
metricRelabelings:
{{ toYaml .Values.kubeProxy.serviceMonitor.metricRelabelings | indent 4 }}
{{- end }}
{{- if .Values.kubeProxy.serviceMonitor.relabelings }}
relabelings:
{{ toYaml .Values.kubeProxy.serviceMonitor.relabelings | indent 4 }}
{{- end }}
{{- end }}

View File

@@ -1025,6 +1025,49 @@ kubeApiServer:
##
relabelings: []
## Component scraping the kube-proxy
kubeProxy:
## Create a ServiceMonitor to scrape kube-proxy service
enabled: true
## If your kube-proxy is not deployed as a pod, specify IPs it can be found on
endpoints: []
# - 10.141.4.22
# - 10.141.4.23
# - 10.141.4.24
## Namespace where kube-proxy service is deployed
namespace: kube-system
## Service ports and selector information
service:
enabled: true
port: 10249
targetPort: 10249
# selector:
# k8s-app: kube-proxy
serviceMonitor:
## Enable scraping kube-proxy over https.
## Requires proper certs (not self-signed) and delegated authentication/authorization checks
##
https: false
## Scrape interval. If not set, the Prometheus default scrape interval is used.
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
##
interval: ""
## Metric relabeling
## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
##
metricRelabelings: []
## Relabel configs
## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
##
relabelings: []
# Component scraping for kubelet and kubelet hosted cAdvisor
kubelet:
## Create a ServiceMonitor to scrape kubelet service

View File

@@ -1026,6 +1026,49 @@ kubeApiServer:
##
relabelings: []
## Component scraping the kube-proxy
kubeProxy:
## Create a ServiceMonitor to scrape kube-proxy service
enabled: true
## If your kube-proxy is not deployed as a pod, specify IPs it can be found on
endpoints: []
# - 10.141.4.22
# - 10.141.4.23
# - 10.141.4.24
## Namespace where kube-proxy service is deployed
namespace: kube-system
## Service ports and selector information
service:
enabled: true
port: 10249
targetPort: 10249
# selector:
# k8s-app: kube-proxy
serviceMonitor:
## Enable scraping kube-proxy over https.
## Requires proper certs (not self-signed) and delegated authentication/authorization checks
##
https: false
## Scrape interval. If not set, the Prometheus default scrape interval is used.
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
##
interval: ""
## Metric relabeling
## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
##
metricRelabelings: []
## Relabel configs
## ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
##
relabelings: []
# Component scraping for kubelet and kubelet hosted cAdvisor
kubelet:
## Create a ServiceMonitor to scrape kubelet service