Consul server集群安装
1、机器准备
-
准备三台机器:2CPU 4G内存
-
修改三台机器的hostname分别为consul1、consul2、consul3
-
配置host
vim /etc/hosts
10.0.0.11 consul1
10.0.0.12 consul2
10.0.0.13 consul3
2. 创建相应的目录
mkdir -p /opt/server/consul
mkdir -p /data/logs
mkdir -p /data/consul_data
3. 下载安装包
wget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zip
unzip consul_1.6.1_linux_amd64.zip
cp consul /usr/local/bin/
4、编写启动脚本
cd /opt/server/consul
vim start.sh
- consul1(注意node、bind参数)
#!/bin/bash
nohup consul agent -server -bootstrap-expect=3 -data-dir=/data/consul_data -bind=10.0.0.11 -client=0.0.0.0 -datacenter=shenzhen -ui >> /data/logs/consul.log 2>&1
- consul2(注意node、bind、join参数)
#!/bin/bash
nohup consul agent -server -bootstrap-expect=3 -data-dir=/data/consul_data -bind=10.0.0.12 -client=0.0.0.0 -datacenter=shenzhen -join=10.0.0.11 -ui >> /data/logs/consul.log 2>&1
- consul3(注意node、bind、join参数)
#!/bin/bash
nohup consul agent -server -bootstrap-expect=3 -data-dir=/data/consul_data -bind=10.0.0.13 -client=0.0.0.0 -datacenter=shenzhen -join=10.0.0.11 -ui >> /data/logs/consul.log 2>&1 &
命令参数说明
-
-server:定义agent运行在server模式还是Client模式,提供时即为Server端,每个集群至少有一个server并且每台机器上不要超过5个dataceter.所有服务器采用一致性算法Raft保证数据一致,确保在故障的情况下的可用性。
-
-bootstrap-expect:在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用(推荐使用的方式)
-
-data-dir:提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在
-
-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名(代表一个机器)
扫描二维码关注公众号,回复: 9780776 查看本文章 -
-datacenter:该标记控制agent运行的datacenter的名称,默认是dc1
赋予可执行权限
chmod +x start.sh
5、将consul注册为Systemd服务
cd /usr/lib/systemd/system/
vim consul.service
[Unit]
Description=consul
After=network.target
[Service]
ExecStart=/opt/server/consul/start.sh
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target
6、 启动consul
systemctl start consul
6、查询服务状态
systemctl status consul
8、查询日志
tailf /data/logs/consul.log
9、 集群状态查看
[root@dev004 tmp]# consul operator raft list-peers
Node ID Address State Voter RaftProtocol
consul1 ca182aa4-2e1e-b7d3-91b4-fa1e4cfb332a 10.0.0.11:8300 leader true 3
consul2 62534895-35a4-5204-aca8-d7c89118c747 10.0.0.12:8300 follower true 3
consul3 c333280d-d9e0-1f51-9249-637aedc19c7e 10.0.0.13:8300 follower true 3
10、 查看members状态
[root@dev004 tmp]# consul members
Node Address Status Type Build Protocol DC Segment
consul1 10.0.0.11:8301 alive server 1.6.1 2 shenzhen <all>
consul2 10.0.0.12:8301 alive server 1.6.1 2 shenzhen <all>
consul3 10.0.0.13:8301 alive server 1.6.1 2 shenzhen <all>
11、访问UI
打开浏览器访问 http://10.0.0.11:8500
12、删除注册的服务
去client节点执行
curl http://127.0.0.1:8500/v1/agent/service/deregister/service2-8080
或者
consul services deregister -id=service2-8080