Hi all,
I’m trying to deploy Loki in Simple Scalable mode in Nomad, using Consul DNS for service discovery.
The dnssrv+ prefix works correctly in some parts of the config — for example:
common.compactor_addressmemberlist.join_members
However, when I use dnssrv+ or dns+ for the following:
frontend.scheduler_addressfrontend_worker.scheduler_address
it fails with:
caller=dns_resolver.go:225 msg="failed DNS A record lookup" err="lookup dnssrv+_loki-backend._grpc.service.dev.consul.: no such host"
To isolate the problem, I reproduced this setup using Docker Compose + Consul + CoreDNS, and the issue still persists.
Here’s a trimmed version of my loki-config.yml:
yaml
common:
path_prefix: ${LOKI_DATA_PATH}
replication_factor: 2
ring:
kvstore:
store: memberlist
compactor_address: dnssrv+_loki-backend._grpc.service.dev.consul.
frontend:
scheduler_address: dnssrv+_loki-backend._grpc.service.dev.consul.
grpc_client_config:
tls_enabled: false
frontend_worker:
scheduler_address: dnssrv+_loki-backend._grpc.service.dev.consul.
grpc_client_config:
tls_enabled: false
server:
http_listen_address: 0.0.0.0
grpc_listen_address: 0.0.0.0
http_listen_port: 3100
grpc_listen_port: 9096
I’ve verified that the SRV record resolves manually using dig, The query succeeds, and compactor_address works fine using the same format. So the DNS resolution itself is working. It appears that scheduler_address may not support dnssrv+ or may be parsing it differently.
Questions:
- Is
dnssrv+supported inscheduler_addressfields? - Is there any difference in how Loki internally resolves
compactor_addressvsscheduler_address? - Any recommended workaround?
Any guidance would be appreciated — thank you!