Skip to content

christian-blades-cb/desoto

Repository files navigation

DeSoto

Service discovery and publication for docker containers.

DeSoto is designed to solve the problem of publishing containerized services in a distributed cluster. An instance of DeSoto runs on each node in the cluster, watching for changes to service definitions and docker containers. It then updates the appropriate VulcanD backend, which handles routing incoming requests.

Usage

Service Definition

A service definition defines what type of vulcand backend (http, tcp, etc), what container port, and a container name pattern.

Fields

  • type - see vulcand documentation
  • container port - which container port to publish*
  • name_pattern - regex pattern for the container name (optional, defaults to /^<key>-app-\S+/)

* container port MUST be mapped to a host port

Example

$ docker ps
CONTAINER ID        IMAGE                      COMMAND                CREATED             STATUS              PORTS                                             NAMES
3e571a34a564        alpine:3.2                 "bundle exec rackup"   7 seconds ago       Up 2 seconds        0.0.0.0:25454->8080/tcp                           super-web-app-1

$ etcdctl set /publication/super-web '{ "type": "http", "container_port": 8080, "name_pattern": "^super-web-app-\\d+" }'

* Note that regex escapes must be properly escaped for JSON

About

service publication for docker containers in a distributed cluster

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published