mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-05-17 22:37:45 -02:30
Allow to scrape etcd metrics using a service (#8203)
Signed-off-by: Mathieu Parent <math.parent@gmail.com>
This commit is contained in:
@@ -25,6 +25,13 @@ dns_autoscaler_cpu_requests: 20m
|
||||
dns_autoscaler_memory_requests: 10Mi
|
||||
dns_autoscaler_deployment_nodeselector: "kubernetes.io/os: linux"
|
||||
|
||||
# etcd metrics
|
||||
# etcd_metrics_service_labels:
|
||||
# k8s-app: etcd
|
||||
# app.kubernetes.io/managed-by: Kubespray
|
||||
# app: kube-prometheus-stack-kube-etcd
|
||||
# release: prometheus-stack
|
||||
|
||||
# Netchecker
|
||||
deploy_netchecker: false
|
||||
netchecker_port: 31081
|
||||
|
||||
21
roles/kubernetes-apps/ansible/tasks/etcd_metrics.yml
Normal file
21
roles/kubernetes-apps/ansible/tasks/etcd_metrics.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
- name: Kubernetes Apps | Lay down etcd_metrics templates
|
||||
template:
|
||||
src: "{{ item.file }}.j2"
|
||||
dest: "{{ kube_config_dir }}/{{ item.file }}"
|
||||
with_items:
|
||||
- { file: etcd_metrics-endpoints.yml, type: endpoints, name: etcd-metrics }
|
||||
- { file: etcd_metrics-service.yml, type: service, name: etcd-metrics }
|
||||
register: manifests
|
||||
when: inventory_hostname == groups['kube_control_plane'][0]
|
||||
|
||||
- name: Kubernetes Apps | Start etcd_metrics
|
||||
kube:
|
||||
name: "{{ item.item.name }}"
|
||||
namespace: kube-system
|
||||
kubectl: "{{ bin_dir }}/kubectl"
|
||||
resource: "{{ item.item.type }}"
|
||||
filename: "{{ kube_config_dir }}/{{ item.item.file }}"
|
||||
state: "latest"
|
||||
with_items: "{{ manifests.results }}"
|
||||
when: inventory_hostname == groups['kube_control_plane'][0]
|
||||
@@ -63,6 +63,12 @@
|
||||
loop_control:
|
||||
label: "{{ item.item.file }}"
|
||||
|
||||
- name: Kubernetes Apps | Etcd metrics endpoints
|
||||
import_tasks: etcd_metrics.yml
|
||||
when: etcd_metrics_port is defined and etcd_metrics_service_labels is defined
|
||||
tags:
|
||||
- etcd_metrics
|
||||
|
||||
- name: Kubernetes Apps | Netchecker
|
||||
import_tasks: netchecker.yml
|
||||
when: deploy_netchecker
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: etcd-metrics
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: etcd
|
||||
app.kubernetes.io/managed-by: Kubespray
|
||||
subsets:
|
||||
{% for etcd_metrics_address in etcd_metrics_addresses.split(',') %}
|
||||
- addresses:
|
||||
- ip: {{ etcd_metrics_address | urlsplit('hostname') }}
|
||||
ports:
|
||||
- name: http-metrics
|
||||
port: {{ etcd_metrics_address | urlsplit('port') }}
|
||||
protocol: TCP
|
||||
{% endfor %}
|
||||
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: etcd-metrics
|
||||
namespace: kube-system
|
||||
labels:
|
||||
{{ etcd_metrics_service_labels | to_yaml(indent=2, width=1337) | indent(width=4) }}
|
||||
spec:
|
||||
ports:
|
||||
- name: http-metrics
|
||||
protocol: TCP
|
||||
port: {{ etcd_metrics_port }}
|
||||
# targetPort:
|
||||
Reference in New Issue
Block a user