Name: mmsd
Owner: DaWanda Engineering Team
Description: Mesos Marathon Service Discovery Agent
Created: 2016-01-07 14:54:24.0
Updated: 2018-03-14 16:27:08.0
Pushed: 2018-03-14 16:27:10.0
Size: 225
Language: Go
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
mmsd
links your cloud together.
A
and SRV
query types). --marathon-host=localhost --marathon-port=8080
ild mmsd docker container image
er build -t mmsd .
n mmsd docker container in background
er run --net=host -d --name mmsd mmsd \
--marathon-host=$YOUR_MARATHON_IP --marathon-port=8080
e: mmsd [flags ...]
api-port uint
MMSD API TCP port (default 8082)
bind-ip value
IP address for handlers to bind (default 0.0.0.0)
dns-basename string
DNS service discovery's base name (default "mmsd.")
dns-port uint
DNS service discovery port (default 53)
dns-push-srv
DNS service discovery to also push SRV on A
dns-ttl duration
DNS service discovery's reply message TTL (default 5s)
enable-dns
Enables DNS-based service discovery
enable-files
enables file based service discovery (default true)
enable-gateway
Enables gateway support
enable-health-checks
Enable local health checks (if available) instead of relying on Marathon health checks alone. (default true)
enable-tcp
enables haproxy TCP load balancing (default true)
enable-udp
enables UDP load balancing (default true)
filter-groups string
Application group filter (default "*")
gateway-bind value
gateway bind address (default 0.0.0.0)
gateway-port-http uint
gateway port for HTTP (default 80)
gateway-port-https uint
gateway port for HTTPS (default 443)
haproxy-after-cmd string
Command to execute after Haproxy start/reload
haproxy-before-cmd string
Command to execute before Haproxy start/reload
haproxy-bin string
path to haproxy binary (default "/usr/local/bin/haproxy")
haproxy-cfgtail string
path to haproxy tail config file (default "/etc/mmsd/haproxy-tail.cfg")
haproxy-enable-reuse-socket
Enable haproxy feature to share a socket for listing ports
haproxy-port uint
haproxy management port (default 8081)
haproxy-reload-interval duration
Interval between reload haproxy for bulk changes; default 5s (default 5s)
marathon-ip value
Marathon endpoint TCP IP address (default 127.0.0.1)
marathon-port uint
Marathon endpoint TCP port number (default 8080)
reconnect-delay duration
Marathon reconnect delay (default 4s)
run-state-dir string
Path to directory to keep run-state (default "/var/run/mmsd")
, --verbose
Set verbosity level
, --version
Shows version and exits
An application, such as /developer/trapni/php
will be written
into a upstream-confd file with the name developer.trapni.php.instances
with the following content
ice-Name: token
ice-Port: number
ice-Transport-Proto: tcp | udp
ice-Application-Proto: http | redis | redis-master | ...
th-Check-Proto: tcp | http
1:port1
2:port2
3:port3
Where hostN:portN is the actual host (Mesos Slave) your application has been spawned on.
Your application may read them upon startup and whenever this file changes (in realtime) to always have an up-to-date list of address:port pairs your other application is running on.
proto
= APP_PROTO
an app type name that identifies the given service, such as redis, smtp, …
lb-accept-proxy
= 1
Enables proxy-protocol on service port.
lb-proxy-protocol
= 1
\| 2
Enables proxy-protocol to the backend communication. 1
enables proxy-protocol
version 1 (clear text) whereas 2
enables version 2 (binary).
Any other value does not activate proxy-protocol.
lb-group
= GROUP_NAME
Load-balancer group this app should be exposed to
lb-vhost
= VHOST,...
list of virtual hosts to be served on gateway port 80
lb-vhost-default
= PORT_INDEX
if set, this HTTP application (at port index) will serve as default application on port 80.
lb-vhost-ssl
= VHOST,...
list of vhosts to be proxied via SSL, with SNI enabled, but no SSL termination performed.
lb-vhost-ssl-default
= PORT_INDEX
if set, this HTTPS application (at port index) will serve as default application on the application gateway's SSL port (usually 443)
proto
tcp
(default), TCP transport mode and simple TCP-connect health checkhttp
HTTP transport mode, with HTTP health checksmtp
SMTP protococol, enables SMTP-restrictive health check.redis
mode tcp and health check is using Redis text protocolredis-master
same as redis
but only masters will be healthyredis-slave
same as redis
but only slaves will be healthy/v1/apps
retrieves the list of all apps in Marathon, one app name by line/v1/instances/NAME
retrieves list of instances by hostname:port tuple in
each line for given application path, for example:
/v1/instances/production/sqltap1
New flags:
--haproxy-enable-reuse-socket
Following flags are removed:
--haproxy-bind
--managed-ip
New flags:
--api-port
--bind-ip
--haproxy-before-cmd
--haproxy-after-cmd