Become a sponsor

集群部署
在 CentOS Stream 上部署 Consul 集群服务,需要准备三台服务器,分别安装并配置为集群模式。通过配置 server 模式和 bootstrap_expect 参数,确保三台服务器能够互相通信并形成集群。
1. 服务器数量:3台,IP地址分别如下:
S206服务器:192.168.10.206
S207服务器:192.168.10.207
S208服务器:192.168.10.208
2. 操作系统:CentOS Stream 8 或者 Rocky Linux (官方推荐)。
3. 网络要求:确保三台服务器之间网络互通,开放以下端口:
8300(RPC通信)
8301(LAN Gossip通信)
8302(WAN Gossip通信)
8500(HTTP API/UI)
4. 配置要求:每台服务器至少2核CPU、4 GB内存、20 GB存储。访问 Consul 官网 下载适用于 Linux 的二进制文件。

选择版本
选择适用于 Linux 的版本(通常是 64 位 .zip 文件,如:consul_1.20.5_linux_amd64.zip 软件包)。
使用 XShell 客户端工具远程登录服务器,并上传软件包 consul_1.20.5_linux_amd64.zip 至目录 /usr/local/src。

上传成功后查看软件包信息:
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ll
总用量 393720
-rw-r--r--. 1 root root 66534209 3月 20 02:16 consul_1.20.5_linux_amd64.zip
[root@localhost src]# du -sh *
64M consul_1.20.5_linux_amd64.zip温馨提示
客户端工具除了 XShell 也可以使用其他工具,安装包存放目录可自定义,如 /usr/local/src。
[root@localhost src]# unzip consul_1.20.5_linux_amd64.zip
Archive: consul_1.20.5_linux_amd64.zip
inflating: LICENSE.txt
inflating: consulConsul 移动到 /usr/local/bin:mv consul /usr/local/bin/执行命令 consul --version 查看版本信息:
[root@localhost src]# consul --version
Consul v1.20.5
Revision 74efe419
Build Date 2025-03-11T10:16:18Z
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)特别说明
需要在 3 台服务器S206、S207、S208 服务器上分别安装 Consul 服务。
在每台服务器上创建 Consul 配置文件。
mkdir /etc/consul.d/etc/consul.d/consul.hcl 并输入以下内容:datacenter = "dc1"
data_dir = "/opt/consul"
client_addr = "0.0.0.0"
bind_addr = "192.168.10.206"
server = true
bootstrap_expect = 3
ui = true
retry_join = ["192.168.10.207", "192.168.10.208"]datacenter = "dc1"
data_dir = "/opt/consul"
client_addr = "0.0.0.0"
bind_addr = "192.168.10.207"
server = true
bootstrap_expect = 3
ui = true
retry_join = ["192.168.10.206", "192.168.10.208"]datacenter = "dc1"
data_dir = "/opt/consul"
client_addr = "0.0.0.0"
bind_addr = "192.168.10.208"
server = true
bootstrap_expect = 3
ui = true
retry_join = ["192.168.10.206", "192.168.10.207"]配置说明:
在每台服务器上执行以下命令创建数据目录:
mkdir -p /opt/consul
chown -R consul:consul /opt/consul
chown -R consul:consul /etc/consul.d在每台服务器上创建 Systemd 服务文件 /etc/systemd/system/consul.service:
[Unit]
Description=Consul Service
Documentation=https://www.consul.io/
After=network.target
[Service]
ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT
Restart=on-failure
User=consul
Group=consul
[Install]
WantedBy=multi-user.target参数说明:
Consul 专用用户和组groupadd --system consul
useradd --system --home /etc/consul.d --shell /bin/false -g consul consulchown -R consul:consul /etc/consul.d
chown -R consul:consul /opt/consul重新加载 Systemd 配置以应用新服务文件:
systemctl daemon-reload# 启动Consul服务
systemctl enable consul
# 设置Consul开机自启动
systemctl start consul通过以上步骤,Consul 已成功配置为 Systemd 服务,并可以通过以下命令管理:
1. 启动服务:systemctl start consul
2. 停止服务:systemctl stop consul
3. 重启服务:systemctl restart consul
4. 查看状态:systemctl status consul
5. 查看日志:journalctl -u consul在任意一台服务器上检查集群成员:
consul members输出应显示三台服务器的信息,状态为 alive。
http://<任意服务器IP>:8500,确保UI中显示三台服务器。
Consul 的 Web 界面,用于查看节点、服务和配置,说明安装成功。

在每台服务器上开放 Consul 所需的端口:
8500 端口:firewall-cmd --permanent --add-port={8300,8301,8302,8500}/tcp
firewall-cmd --reload通过以上步骤,您已在三台 CentOS Stream 服务器上成功部署了 Consul 集群服务。集群会自动选举 Leader,并通过 Gossip 协议保持通信。您可以通过 Consul Web UI 或命令行工具管理集群。