Consul

  1. 最近在学习Ocelot,发现里面集成Consul,所有部署一下多机版集群,后来发现网上都是在一台虚拟机中的Docker部署,而且大同小异,没有真正解释清楚。

    前提准备

  2. 4台Centos虚拟机,本人安装VM虚拟机,用复制镜像快速搭建环境。
  3. 第一台安装好后,把Docker安装好,设置docker开机启动,关掉防火墙,设置静态IP等。
  4. 然后用copy虚拟机,修改ip地址后,全部启动

    这些操作可自行百度

    Consul

  5. Consul分client和server模式,过段时间解释。
  6. 还有多数据中心也是,今天不说。

    在客户端模式下运行Consul Agent

  7. --net=host:docker内部对于虚拟机的来说也是localhost
    >如果主机上的其他容器也使用–net=host,这将是一个很好的配置,它还会将代理暴露给直接在容器外部的主机上运行的进程
  8. -bind:这是给其他consul server来加入集群的ip
  9. -join:加入集群
  10. -client:使用此配置,Consul的客户端接口将绑定到网桥IP,并可供该网络上的其他容器使用,但不能在主机网络上使用。

    Consul还将接受-client=0.0.0.0绑定到所有接口的选项。

  11. -bootstrap-expect设置服务数量,当达到设定数量启动集群。-bind的这台机器成为leader
  12. -ui管理界面
  13. -h:设置node的名称,集群的服务器不能取同名的node名称
  14. CONSUL_BIND_INTERFACE:ifconfig查看,好像虚拟机的这个名称不一样,我的脚ens33,还有叫eth0的。

    需要用到的命令

  15. Docker中Consul部署
  • docker inspect -f '{{.NetworkSettings.IPAddress}}' consul1查看容器内Consul1的ip
  • docker exec -t consul名称 consul members 查看集群成员
  • ifconfig 查看ip配置
  • /sbin/ifconfig ens33 | sed -n 's/.*inet \(addr:\)\?\([0-9.]\{7,15\}\) .*/\2/p'
  • docker run -d -p 8500:8500 --name consul1 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -bind=192.168.110.100 -ui -bootstrap-expect=3  leader 服务
  • docker run -d -p 8500:8500 --name consul2 -h=node1 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -join=192.168.110.100 -ui  follower

    启动

    现有四台虚拟机,ip地址分别是:

  1. 192.168.110.100
  2. 192.168.110.101
  3. 192.168.110.102
  4. 192.168.110.103
    在第一台服务器中运行server作为leader
    docker run -d -p 8500:8500 --name consul1 -h=node1 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -bind=192.168.110.100 -ui -bootstrap-expect=3
    接下来两台加入集群
    docker run -d -p 8500:8500 --name consul2 -h=node2 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -join=192.168.110.100 -ui
    docker run -d -p 8500:8500 --name consul3 -h=node3 --net=host -e CONSUL_BIND_INTERFACE=ens33 consul agent -server=true -client=0.0.0.0 -join=192.168.110.100 -ui
    至此,三台服务端集群部署完毕,可查看集群成员,未完待续

版权声明:本文为gudanshiyigerendekuanghuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gudanshiyigerendekuanghuan/p/10603516.html