在同一主机上的不同领事客户端 运行 中添加服务

Adding services in different consul clients running on same host

我已经按照 Testing a Consul cluster on a single host 中使用 consul 的部分进行操作。三个领事服务器已成功添加,并且 运行 在同一主机中用于测试目的。之后,我也按照教程创建了一个 consul 客户端 node4 来暴露端口。是否可以添加更多服务并绑定到其中一个领事客户?

Consul 的最佳做法是 运行 每个 HOST 一个 consul,当你想与 consul 交谈时,你总是在本地交谈。一般来说,1 个 consul 节点知道的一切,其他每个 consul 节点也知道。所以你可以只与你的本地领事 (127.0.0.1:8500) 交谈并做你需要做的一切。添加服务时,会将它们添加到具有服务进程的本地 consul 节点。有像 Registrator (https://github.com/gliderlabs/registrator) 这样的项目,它会自动从 运行ning docker 个容器中添加服务,这让生活更轻松。

总的来说,欢迎使用 Consul,它很棒!

使用新的 'swarm mode' 而不是旧的 Swarm。 Swarm 模式不需要 Consul。服务发现和 key/value 存储现在是 docker 守护进程的一部分。下面介绍如何创建一个 3 节点高可用集群(3 个主节点)。

  1. 创建三个节点

    docker-machine create --driver vmwarefusion node01
    docker-machine create --driver vmwarefusion node02
    docker-machine create --driver vmwarefusion node03
    
  2. 找到node01的ip

    docker-machine ls
    
  3. 设置一个作为初始 swarm master

    docker $(docker-machine config node01) swarm init --advertise-addr <ip-of-node01>
    
  4. 获取token让其他节点加入master

    docker $(docker-machine config node01) swarm join-token manager
    

    这将打印出类似

    的内容
    docker swarm join \
    --token SWMTKN-1-0siwp7rzqeslnhuf42d16zcwodk543l99liy0wuq1mern8s8u9-8mbsrxzu9mgfw7x6ehpxh0dof \
    192.168.40.144:2377
    
  5. 将另外两个节点添加到 swarm 作为 masters

    docker $(docker-machine config node02) swarm join \
    --token SWMTKN-1-0siwp7rzqeslnhuf42d16zcwodk543l99liy0wuq1mern8s8u9-8mbsrxzu9mgfw7x6ehpxh0dof \
    192.168.40.144:2377
    
    docker $(docker-machine config node03) swarm join \
    --token SWMTKN-1-0siwp7rzqeslnhuf42d16zcwodk543l99liy0wuq1mern8s8u9-8mbsrxzu9mgfw7x6ehpxh0dof \
    192.168.40.144:2377
    
  6. 检查群

    docker node ls
    

您现在应该能够关闭领导节点并看到另一个接任经理。