drd*_*man 18 deployment configuration docker etcd docker-swarm-mode
我想找到一种方法将etcd集群部署为Docker Swarm服务,该服务将自动配置而无需任何交互.基本上,我想到了这个命令的精神:
docker service create --name etcd --replicas 3 my-custom-image/etcd
Run Code Online (Sandbox Code Playgroud)
我假设覆盖网络配置为安全并提供加密和身份验证,所以我相信我不需要TLS,甚至不需要--auto-tls.当这可以在另一层上解决时,不希望额外的头痛找到提供证书的方法.
我需要--name为每个实例都有一个唯一的,但是我可以从一个可以使用的入口点脚本中获得它export ETCD_NAME=$(hostname --short).
问题是,我坚持初始配置.根据聚类指南,有三个选项,但似乎都不适合:
etcd,我将获得节点容器的所有IP,但没有_etcd-server._tcp记录.ETCD_INITIAL_CLUSTER因为虽然我知道IP,但我不知道其他节点的名称,我不知道有任何方法可以解决这些问题.(我不打算将Docker API套接字暴露给etcd容器.)docker-compose.yml,它就会自动做正确的事情,没有问题就是这样".有什么技巧可以拉吗?
正如您正确所说,您知道节点\xe2\x80\x99 容器的 IP,因此建议的技巧是简单地将所需名称构建etcd为每个节点\xe2\x80\x99s IP 地址的派生物。
etcd都使用该特定容器的 IP 进行命名,即etcd-$ipETCD_INITIAL_CLUSTER以类似的方式使用其他容器的 IP 进行填充名称可以简单etcd-$ip甚至更好,即我们可以使用 来netmask计算该网络上的节点\xe2\x80\x99s IP,以使名称更漂亮。
在这种情况下,在一个简单的 3 节点配置中,最终可能会具有诸如等的etcd-02 etcd-03名称
name属性没有具体要求,只需唯一且人类可读即可。虽然它确实看起来像一个技巧,但它可能会起作用
\n| 归档时间: |
|
| 查看次数: |
1092 次 |
| 最近记录: |