【问题标题】:How to init docker swarm with consul如何使用领事初始化 docker swarm
【发布时间】:2017-10-29 21:51:44
【问题描述】:

如何使用 consul 后端启动 docker swarm 集群?

我在 docker swarm init 命令中看不到任何发现参数?还是 docker swarm join 命令?我成功跑了

docker swarm 初始化 ....

码头工人群加入

在内部 swarm 发现机制上启动集群,但不建议用于生产。那我错过了什么?

【问题讨论】:

    标签: docker docker-swarm consul


    【解决方案1】:

    您正在运行较新的 Swarm 模式命令,但询问作为容器运行的经典 Swarm 的用法,这是两个截然不同的事情。

    Swarm 模式对管理器状态使用 raft 实现,该实现不可与外部键/值存储交换。您使用列出的命令(docker swarm initdocker swarm join)运行 swarm 模式。 join 命令消除了对外部节点发现数据库的需要。 https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/

    经典 swarm 使用外部节点发现,默认使用不推荐用于生产的 docker hub 令牌。要实现经典的 Swarm,您可以运行 docker run swarm manage 并选择发布端口以访问管理器和发现 swarm 中的节点的选项。 Classic Swarm 与 docker api 的反向代理相比,与 Swarm Mode 或 Kubernetes 等编排工具有更多共同点。 https://docs.docker.com/swarm/reference/manage/

    因此,您的问题的答案是要么不使用 Swarm 模式命令,而是运行经典的 Swarm 容器,或者如果您想要 Swarm 模式,则不要尝试实现您自己的外部节点发现数据库,因为这不是一个选项。除非您对经典 Swarm 有特殊需求,否则我会推荐后者。

    【讨论】:

    • 感谢详细解答,文档有待改进。我有“无法完成原子操作,密钥已修改”的问题,在我的错误中我认为这与我没有使用领事有关
    • 听起来你正在看到这个 P1,他们正在积极地工作:github.com/moby/moby/issues/35310
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 2023-03-14
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多