kube-vip: optional Prometheus metrics (default port 2112) (#13229)

Add kube_vip_metrics_enabled and kube_vip_metrics_port; wire
prometheus_server and container port in the static pod manifest.
Default metrics port to 2112 to match kube-vip upstream. Document
and sample inventory updated.
This commit is contained in:
Sumit Solanki
2026-05-19 11:15:02 +05:30
committed by GitHub
parent 17f270325d
commit 7fd29b5529
4 changed files with 24 additions and 0 deletions

View File

@@ -86,3 +86,12 @@ kube_vip_leaseduration: 30
kube_vip_renewdeadline: 20 kube_vip_renewdeadline: 20
kube_vip_retryperiod: 4 kube_vip_retryperiod: 4
``` ```
To expose [Prometheus metrics](https://kube-vip.io/docs/installation/flags/#environment-variables) from the kube-vip static pod, set `kube_vip_metrics_enabled`. `kube_vip_metrics_port` is an integer; the manifest sets `prometheus_server` to `:PORT` because kube-vip passes that value to Go's HTTP listen address (see [`servePrometheusHTTPServer` in kube-vip](https://github.com/kube-vip/kube-vip/blob/main/cmd/kube-vip.go)). The manifest `ports` entry uses the same number for tooling that reads the pod spec.
Kubespray defaults `kube_vip_metrics_port` to `2112`, matching upstream kube-vip's `--prometheusHTTPServer` default. Override it if your scrape config expects another port.
```yaml
kube_vip_metrics_enabled: true
# kube_vip_metrics_port: 2112
```

View File

@@ -201,6 +201,8 @@ kube_vip_enabled: false
# kube_vip_lb_fwdmethod: local # kube_vip_lb_fwdmethod: local
# kube_vip_bgp_sourceip: # kube_vip_bgp_sourceip:
# kube_vip_bgp_sourceif: # kube_vip_bgp_sourceif:
# kube_vip_metrics_enabled: false
# kube_vip_metrics_port: 2112
# Node Feature Discovery # Node Feature Discovery
node_feature_discovery_enabled: false node_feature_discovery_enabled: false

View File

@@ -88,6 +88,9 @@ kube_vip_retryperiod: 1
kube_vip_enable_node_labeling: false kube_vip_enable_node_labeling: false
kube_vip_bgp_sourceip: kube_vip_bgp_sourceip:
kube_vip_bgp_sourceif: kube_vip_bgp_sourceif:
kube_vip_metrics_enabled: false
# TCP port for kube-vip Prometheus metrics; manifest sets prometheus_server to :PORT (same as kube-vip upstream default, see cmd/kube-vip.go).
kube_vip_metrics_port: 2112
# Requests for load balancer app # Requests for load balancer app
loadbalancer_apiserver_memory_requests: 32M loadbalancer_apiserver_memory_requests: 32M

View File

@@ -109,11 +109,21 @@ spec:
{% if kube_vip_lb_fwdmethod %} {% if kube_vip_lb_fwdmethod %}
- name: lb_fwdmethod - name: lb_fwdmethod
value: {{ kube_vip_lb_fwdmethod | string | to_json }} value: {{ kube_vip_lb_fwdmethod | string | to_json }}
{% endif %}
{% if kube_vip_metrics_enabled %}
- name: prometheus_server
value: {{ (':' ~ (kube_vip_metrics_port | string)) | to_json }}
{% endif %} {% endif %}
image: {{ kube_vip_image_repo }}:{{ kube_vip_image_tag }} image: {{ kube_vip_image_repo }}:{{ kube_vip_image_tag }}
imagePullPolicy: {{ k8s_image_pull_policy }} imagePullPolicy: {{ k8s_image_pull_policy }}
name: kube-vip name: kube-vip
resources: {} resources: {}
{% if kube_vip_metrics_enabled %}
ports:
- name: metrics
containerPort: {{ kube_vip_metrics_port }}
protocol: TCP
{% endif %}
{% if kube_vip_lb_fwdmethod == "masquerade" %} {% if kube_vip_lb_fwdmethod == "masquerade" %}
securityContext: securityContext:
privileged: true privileged: true