Auto-configuration automatica di un cluster di tipo DDD come servizio Docker swarm

Voglio trovare un modo per distribuire un cluster eccdd come un servizio Docker Swarm che si configurerebbe automaticamente senza alcuna interazione. Fondamentalmente penso a qualcosa in spirito di questo command:

docker service create --name etcd --replicas 3 my-custom-image/etcd 

Sto supponendo che la networking di sovrapposizione sia configurata per essere sicura e fornisca sia la crittografia che l'authentication, quindi credo che non ho bisogno di TLS, nemless di --auto-tls . Non si desidera che un mal di testa aggiuntivo individua un modo per fornire i certificati, quando questo può essere risolto nell'altro livello.

Ho bisogno di un nome univoco per each istanza, ma posso ottenerlo da uno script di intestazione che userà l' export ETCD_NAME=$(hostname --short) .

Il problema è che sono bloccato sulla configuration iniziale. Sulla base della guida di cluster ci sono tre opzioni, ma nessuno sembra adattarsi:

  • Lo scenario di ricerca DNS è più vicino a quello che cerco, ma Docker non support la scoperta dei record DNS SRV al momento. Posso etcd e etcd tutti gli IP dei miei nodes, ma non ci sono record _etcd-server._tcp .
  • Non posso build automaticamente ETCD_INITIAL_CLUSTER perché, mentre conosco gli IP, non conosco i nomi degli altri nodes e non sono a conoscenza di alcun modo per capirli. (Non voglio esporre la port API Docker a container etcd per questo.)
  • Non esiste un cluster di pre-esistente eccd e, fornendo l'URI di configuration iniziale da discovery.etcd.io, è una soluzione alternativa che mi interessa di non farlo. Sto puntando a "distribuire semplicemente una pila da questo docker-compose.yml e farà automaticamente la cosa giusta, senza domande" lo scenario no-brainer.

C'è un trucco che posso tirare?