- Notifications
You must be signed in to change notification settings - Fork224
Programmatic load balancer backed by Etcd
License
vulcand/vulcand
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Vulcand is a programmatic extendable proxy for microservices and API management.It is inspired byHystrix and powers Mailgun microservices infrastructure.
Vulcand is focused on microservices and API use-cases.
- Uses etcd as a configuration backend.
- API and command line tool.
- Pluggable middlewares.
- Support for canary deployments, realtime metrics and resilience.
documentation | https://vulcand.github.io/ |
---|---|
status | Used in production@Mailgun on moderate workloads. Under active development. |
discussions | https://groups.google.com/d/forum/vulcan-proxy |
roadmap | roadmap.md |
build status |
Vulcand has support for open tracing via theJaeger clientlibraries. Users who wishto use tracing support should use the--enableJaegerTracing
flag and musteither run the Jaeger client listening onlocalhost:6831/udp
or set theenvironment variablesJAEGER_AGENT_HOST
andJAEGER_AGENT_POST
. (See theJaeger client librariesfor all available configuration environment variables.)
When enabled vulcand will create 2 spans: one span calledvulcand
whichcovers the entire downstream request and another span calledmiddleware
whichonly spans the processing of the middleware before the request is routeddownstream.
When running vulcand in a kubernetes DaemonSet vulcand needs to know requestsfrom the local node can matchHost("localhost")
rules. This--aliases
flagallows an author of a vulcand DaemonSet to tell vulcand the name of the node it'scurrently running on, such that vulcand correctly routes requests forHost("localhost")
. The--aliases
flag allows the user to pass in multiplealiases separated by commas.
Example
$ vulcand --aliases 'Host("localhost")=Host("192.168.1.1")'
About
Programmatic load balancer backed by Etcd