Service Discovery

Simple Service Discovery Protocol

Subutai Agent use simple service discovery protocol (SSDP) for locating Peer management server.

By default, auto discovery mechanism, based on SSDP, looking for any available peer in the LAN. It takes Management host address from the first received response.

But if within the same LAN installed several Management hosts some collisions could appear.

Server

Subutai Agent daemon starts special goroutine for processing auto discovery. It creates SSDP server if management container installed withing the same RH.

SSDP server listening default port for incomming requests.

It advertise following information to the clients: - ServiceType: urn:subutai:management:peer:4; - DeviceUuid: Management server GPG key fingerprint; - Location: Resource host IP-address; - MaxAge: Default value - 3600;

Client

If there is no management server container installed on RH, Subutai Agent start auto discovery goroutine in a client mode. If there is no manual configuration set, client connects to any of supported Management server.

But sometimes user need to filter responses. It can be done using Subutai Agent configuration file. It allows to find appropriate Management server.

Agent configuration

There are some filters that can be applied to avoid collisions:

  • You can manually set IP address of the Management server:

Set the following values in the Subutai agent configuration: /var/snap/subutai/current/agent.gcfg

``` [management] host = 192.168.1.2

[influxdb]
server = 192.168.1.2

```

  • You can set fingerprint of the desired Management server:

Set the following value in the Subutai agent configuration file: /var/snap/subutai/current/agent.gcfg

[management]     fingerprint = CB7C8A7B567FB2C2ACC2873B04FAC2E9CC21424A

Internal storage

Subutai Agent saves information about the Management server to the internal database to allow CLI interact with it bypassing discovery.

Subutai CLI just use stored addresses when it's required.