• Linux中Consul集群部署


    分配三台虚拟机:

    192.168.5.125

    192.168.5.128

    192.168.5.129

    在每台虚拟机上创建  /usr/consul 文件件  命令: mkdir /usr/consul mkdir /usr/consul-ui

    常用命令command

    • agent作用:运行一个consul agent
    • Join  作用:将agent加入到consul cluster
    • members作用:列出consul cluster集群中的members

    常用选项option

    • -data-dir 作用:指定agent储存状态的数据目录,这是所有agent都必须的,对于server尤其重要,因为他们必须持久化集群的状态
    • -config-dir作用:指定service的配置文件和检查定义所在的位置,通常会指定为"某一个路径/consul.d"(通常情况下,.d表示一系列配置文件存放的目录)
    • -config-file作用:指定一个要装载的配置文件,该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
    • -dev作用:创建一个开发环境下的server节点,该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘,这种模式不能用于生产环境(因为第二条)
    • -bootstrap-expect作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。
    • -node作用:指定节点在集群中的名称,该名称在集群中必须是唯一的(默认采用机器的host)推荐:直接采用机器的IP
    • -bind作用:指明节点的IP地址
    • -server作用:指定节点为server,每个数据中心(DC)的server数推荐为3或5(理想的是,最多不要超过5),所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性,server也是与其他DC交互的门面(gateway)
    • -client作用:指定节点为client,若不指定为-server,其实就是-client
    • -join作用:将节点加入到集群
    • -dc作用:指定机器加入到哪一个dc

    1.下载解压

    wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip

    unzip consul_0.6.4_linux_amd64.zip

    解压出来的是一个consul文件

    2.    分别把生成consul文件copy到刚才创建的三个虚拟机的/usr/consul文件夹里

    命令 :cd  /usr/consul

           cp  ./consul (空格) /usr/consul

    3.    下载consul web-UI

    首先在usr创建consul-ui文件夹

    mkdir /usr/consul-ui  

    cd /usr/consul-ui

    wget https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_web_ui.zip

    unzip consul_0.6.4_web_ui.zip

    4.开启端口配置

    Vi /etc/sysconfig/iptables 文件中增加配置项

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8400 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8500 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8300 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8301 -j ACCEPT

    -A INPUT -m state --state NEW -m udp -p udp --dport 8301 -j ACCEPT

    然后重启service iptables restart

    5.搭建consul集群

    首先启动192.168.5.125

    命令: ./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.125 -bind=192.168.5.125 -dc=dc1 -advertise=192.168.5.125 -client=0.0.0.0 -ui-dir=/usr/consul-ui

    特别注意:-ui-dir=/usr/consul-ui   此处事启动consul web ui的关键

    server 表示启动的为consul server ,构建一个consul cluster 一般建议使用3或者5个consul server

    bootstrap-expect 2表示期望的服务节点数目为2

    -data-dir 数据目录,如果该文件夹不存在则手工创建,如果在consul发生错误后,建议先清理该目录文件

    advertise 设置广播地址,ip可以设置为公网ip

    client 设置client访问的地址

    ui-dir web控制台目录位置

    注意 通过advertise client 才能在WAN上访问consul,否则只能在LAN内访问.

    下面分别启动192.168.5.128和192.168.5.129,修改node节点和bind地址,

    命令:

    ./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.128 -bind=192.168.5.128 -dc=dc1 -client=0.0.0.0

    ./consul agent -server -bootstrap-expect 3 -data-dir=/usr/consul/data -node=192.168.5.129 -bind=192.168.5.129 -dc=dc1 -client=0.0.0.0

    其中:

    -server : consul服务 一般启动都是3-5个

    -bootstrap-expect 1 :服务的节点数目

    -data-dir : 数据目录 就是我们上面建的data所在的目录

    -advertise:广播地址 填写IP地址

    -client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0

    -ui-dir : web-ui 所在的目录

    只有设置了advertise、client我们才能在公网上访问

    如果以局域网中,直接使用 consul members

    如果是广域网中,使用 consul members --rpc-addr=ip:8400

    6. 启动后访问http://你的IP地址:8500/ui

     

  • 相关阅读:
    【LeetCode】456. 132 Pattern
    【Python&Sort】QuickSort
    Python虚拟环境的配置
    【LeetCode】459. Repeated Substring Pattern
    【LeetCode】462. Minimum Moves to Equal Array Elements II
    【LeetCode】20. Valid Parentheses
    radio 获取选中值
    页面加载时自动执行(加载)js的几种方法
    加一个字段: updateTime 更新时间
    多用户同时处理同一条数据解决办法
  • 原文地址:https://www.cnblogs.com/wangjunguang/p/9334235.html
Copyright © 2020-2023  润新知