Expand description
Service Discovery Module
This module provides service discovery integration using pingora-load-balancing’s ServiceDiscovery trait. Supports:
- Static: Fixed list of backends (default)
- DNS: Resolve backends from DNS A/AAAA records
- DNS SRV: Resolve backends from DNS SRV records
- Consul: Discover backends from Consul service catalog
- Kubernetes: Discover backends from Kubernetes endpoints
- File: Watch configuration file for backend changes
§Example KDL Configuration
upstream "api" {
discovery "dns" {
hostname "api.example.com"
port 8080
refresh-interval 30
}
}
upstream "backend" {
discovery "consul" {
address "http://localhost:8500"
service "backend-api"
datacenter "dc1"
refresh-interval 10
only-passing true
}
}
upstream "k8s-service" {
discovery "kubernetes" {
namespace "default"
service "my-service"
port-name "http"
refresh-interval 10
}
}Structs§
- Consul
Discovery - Consul-based service discovery
- Discovery
Manager - Service discovery manager
- DnsDiscovery
- DNS-based service discovery
- Kubernetes
Discovery - Kubernetes endpoint discovery
Enums§
- Discovery
Config - Service discovery configuration