自动将etcd集群自configuration为Docker群集服务

我想find一种将etcd集群部署为Docker Swarm服务的方法,该服务可以自动configuration而不需要任何交互。 基本上,我想到了这个命令的精神:

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

我假设覆盖networking被configuration为安全的,并提供encryption和身份validation,所以我相信我不需要TLS,甚至不需要--auto-tls 。 不希望额外的头痛findconfiguration证书的方式,这可以在另一层上解决。

我需要一个唯一的名称为每个实例,但我可以从一个入口点脚本,将使用export ETCD_NAME=$(hostname --short)

问题是,我卡在初始configuration。 基于聚类指南有三个选项,但没有一个适合:

  • DNS发现场景与我正在查找的距离最近,但此时Docker 不支持DNS SRVlogging发现。 我可以查找etcd ,我会得到我节点的容器的所有IP,但没有_etcd-server._tcplogging。
  • 我不能自动构buildETCD_INITIAL_CLUSTER因为当我知道IP时,我不知道其他节点的名称,我不知道有什么方法可以解决这些问题。 (我不打算暴露Docker的API套接字的etcd容器为此。)
  • 没有预先存在的etcd集群,并提供来自discovery.etcd.io的初始configurationURI是一种可能的解决方法,我感兴趣的不是这样做。 我的目标是“只从这个docker-compose.yml部署一个堆栈,它会自动做正确的事情,没有问题的问题”毫不费力的情况。

有什么我可以拉的技巧吗?