Module discovery

Module discovery 

Source
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§

ConsulDiscovery
Consul-based service discovery
DiscoveryManager
Service discovery manager
DnsDiscovery
DNS-based service discovery
KubernetesDiscovery
Kubernetes endpoint discovery

Enums§

DiscoveryConfig
Service discovery configuration