搭建单节点和集群consul
注:关闭防火墙,或者放开防火墙策略端口
1、单节点部署
1.1.1、创建相应的部署路径
mkdir -p /data/consul/{conf,data,log}
说明: conf:配置文件目录 log:日志存放目录 data:数据存放目录
1.1.2、下载consul包 https://developer.hashicorp.com/consul/downloads
目录创建完成将 consul 物料包存放至/data/consul/目录
chmod +x /data/consul/consul
将consul二进制包放进全局变量
mv consul /usr/local/bin/
1.1.3、配置环境变量
export CONSUL_HOME=/data/consul
export PATH= C O N S U L H O M E : CONSUL_HOME: CONSULHOME:PATH
1.1.4、更新环境变量让其生效
source /etc/profile
1.2创建配置文件
1.2.1 编写配置文件
vim /data/consul/conf/server.json
{
"bind_addr": "服务器ip地址",
"client_addr": "0.0.0.0",
"datacenter": "citycode-jkm",
"data_dir": "/data/consul/data",
"log_level": "INFO",
"log_file": "/data/consul/log/consul.log",
"log_rotate_duration": "24h",
"enable_syslog": false,
"enable_debug": true,
"node_name": "服务器ip地址",
"server": true,
"ui": true,
"bootstrap_expect": 1,
"leave_on_terminate": false,
"skip_leave_on_interrupt": true
}
1.3 创建开机自启动
1.3.1创建启动文件
vim /usr/lib/systemd/system/consul.service
[Unit]
Description=Consul service
Documentation=https://www.consul.io/docs/
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/data/consul/consul agent -config-dir=/data/consul/conf
[Install]
WantedBy=multi-user.target
1.3.2启动服务加入开机自启
systemctl daemon-reload
systemctl enable --now consul
systemctl status consul
1.4验证服务
1.4.1 确认服务是否启动正常
consul members
1.4.2 验证接口是否正常
curl localhost:8500/v1/catalog/nodes?pretty
2、集群部署
2.1.1 准备工作
1.1.1、创建相应的部署路径
mkdir -p /data/consul/{conf,data,log}
说明: conf:配置文件目录 log:日志存放目录 data:数据存放目录
1.1.2、下载consul包 https://developer.hashicorp.com/consul/downloads
目录创建完成将 consul 物料包存放至/data/consul/目录
chmod +x /data/consul/consul
将consul二进制包放进全局变量
mv consul /usr/local/bin/
1.1.3、配置环境变量
export CONSUL_HOME=/data/consul
export PATH= C O N S U L H O M E : CONSUL_HOME: CONSULHOME:PATH
1.1.4、更新环境变量让其生效
source /etc/profile
2.1.2 创建配置文件
简单搭建集群,以 A B C 三节点为例(ABC 为各自 ip 地址,端口均为 8500,如果需要改端口,自行 配置 json 配置,建议默认即可)
vim /data/consul/conf/server.json
{
"bind_addr": "A 节点 IP",
"client_addr": "0.0.0.0",
"datacenter": "citycode",
"data_dir": "/data/consul/data",
"log_level": "INFO",
"log_file": "/data/consul/log/consul.log",
"log_rotate_duration": "24h",
"enable_syslog": false,
"enable_debug": true,
"node_name": "A 节点 IP",
"server": true,
"ui": true,
"bootstrap_expect": 3,
"leave_on_terminate": false,
"skip_leave_on_interrupt": true,
"rejoin_after_leave": true,
"retry_join": [
"A 节点 IP",
"B 节点 IP",
"C 节点 IP"
]
}
2.1.3 加入开机自启(三个节点配置一致即可)
vim /usr/lib/systemd/system/consul.service
[Unit]
Description=Consul service
Documentation=https://www.consul.io/docs/
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/data/consul/consul agent -config-dir=/data/consul/conf
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now consul
systemctl status consul
2.1.4 验证集群
2.1.4.1 验证集群状态是否正常
consul members
2.1.4.2 验证集群状态是否正常,是否有选举成功
consul operator raft list-peers
2.1.4.3 查看各个节点是否在集群内
curl localhost:8500/v1/catalog/nodes?pretty
2.1.4.4 登录ui管理界面(concul 默认端口是8500)http://192.168.2.11:8500 查看集群是否正常