__meta_kubernetes_service_loadbalancer_ip not working as expected
#14,398 opened on Jul 3, 2024
Description
What did you do?
used following config snippet to set LB service external IP as param_target for DNS probes
....
relabel_configs:
- action: keep
regex: powerdns-external;pdns-udp
source_labels:
- __meta_kubernetes_service_name
- __meta_kubernetes_service_port_name
- source_labels:
- __meta_kubernetes_service_loadbalancer_ip
target_label: __param_target
...
now with following config __param_target not set, it is empty. If I check powerdns-external service I see that it has loadBalancer IP only under status.loadBalancer.ingress so no .spec.loadBalancerIP defined automatically, looks like after 1.24 Kubernetes dropped this .spec.loadBalancerIP setting.
apiVersion: v1
kind: Service
metadata:
name: powerdns-external
.....
status:
loadBalancer:
ingress:
- ip: 192.168.1.15
spec:
ports:
- name: pdns-udp
protocol: UDP
port: 53
targetPort: 53
nodePort: 30937
selector:
application: powerdns
clusterIP: 10.96.26.217
clusterIPs:
- 10.96.26.217
type: LoadBalancer
sessionAffinity: None
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
allocateLoadBalancerNodePorts: true
internalTrafficPolicy: Cluster
Main point if I set .spec.loadBalancerIP manually from service then scrape job starts to work and thus __meta_kubernetes_service_loadbalancer_ip returns loadBalancerIP value. So could it be that __meta_kubernetes_service_loadbalancer_ip relies on .spec.loadBalancerIP and not compatible with latest Kubernetes?
What did you expect to see?
No response
What did you see instead? Under which circumstances?
__meta_kubernetes_service_loadbalancer_ip returned no value
System information
No response
Prometheus version
No response
Prometheus configuration file
No response
Alertmanager version
No response
Alertmanager configuration file
No response
Logs
No response