Consul 安装说明(Linux)

Consul 下载

下载地址:Install | Consul | HashiCorp Developer

下载解压后,可看到consul.exe文件

二、Consul Server配置
为了方便使用增加server-config.hcl和server-start.bat文件

(一) server-config.hcl配置文件

节点名称

node_name = “my-consul-sever”

启用当前节点作为 Consul 服务器

server = true

设置预期的服务器节点数量,当达到这个数量时,集群将自动启动

bootstrap_expect = 1

指定 Consul 数据的存储目录

data_dir = “Data”

设置当前节点的绑定地址(用于集群内的通信)

bind_addr = “127.0.0.1”

设置允许的客户端连接地址

client_addr = “0.0.0.0”

启用 Consul Web UI

ui_config {
enabled = true
}

配置端口

ports {
serf_lan = 8301 # 默认 Serf LAN 端口
serf_wan = 8302 # 默认 Serf WAN 端口
server = 8300 # Consul 服务器端口
http = 8500 # HTTP API 端口(UI 端口)
dns = 8600 # DNS 端口
}

设置日志级别(可选,默认为 “INFO”)

log_level = “INFO”
(二) 启动consul
consul agent -config-file=server-config.hcl

访问Consul UI页面

http://127.0.0.1:8500/ui/

(三) 使用bat启动脚本
@echo off
echo Starting Consul agent…

REM 设置 Consul 的路径和配置文件路径
SET CONSUL_PATH=consul.exe
SET CONFIG_FILE_PATH=server-config.hcl

REM 创建 logs 目录(如果不存在)
if not exist logs (
mkdir logs
)

REM 启动 Consul agent,将标准输出和错误输出重定向到 logs 目录中的 consul.log
REM 仅将 Consul 启动成功与否的状态输出到控制台
%CONSUL_PATH% agent -config-file=%CONFIG_FILE_PATH% > logs\consul.log 2>&1
SET ERRORLEVEL=%ERRORLEVEL%

REM 检查是否启动成功
IF %ERRORLEVEL% NEQ 0 (
echo Consul failed to start. Check logs\consul.log for details.
exit /b %ERRORLEVEL%
)

echo Consul started successfully. Logs are being written to logs\consul.log
pause
三、Consul Server集群
修改配置文件,bootstrap_expect参数设置节点数量,当前有三台机器改为3

retry_join 加入另外两台需要加入的IP

retry_join = [

“<当前服务器IP>:8301”, # 服务器 2 的 IP 地址

“<当前服务器IP>:8301” # 服务器 3 的 IP 地址

]

节点名称

node_name = “my-consul-sever2”

启用当前节点作为 Consul 服务器

server = true

设置预期的服务器节点数量,当达到这个数量时,集群将自动启动

bootstrap_expect = 3

指定 Consul 数据的存储目录

data_dir = “Data”

设置当前节点的绑定地址(用于集群内的通信)

bind_addr = “<当前服务器IP>”

设置允许的客户端连接地址

client_addr = “0.0.0.0”

启用 Consul Web UI

ui_config {
enabled = true
}

配置端口

ports {
serf_lan = 8301 # 默认 Serf LAN 端口
serf_wan = 8302 # 默认 Serf WAN 端口
server = 8300 # Consul 服务器端口
http = 8500 # HTTP API 端口(UI 端口)
dns = 8606 # DNS 端口
}

设置日志级别(可选,默认为 “INFO”)

log_level = “INFO”

配置服务器节点的互联

retry_join = [
“<当前服务器IP>:8301”, # 服务器 2 的 IP 地址
“<当前服务器IP>:8301” # 服务器 3 的 IP 地址
]

当Leader 不可用时将会触发选举,选出新的leader

四、Consul Client配置
(一) client-config.hcl

节点名称

node_name = “my-consul-client”

数据目录

data_dir = “Data”

绑定地址

bind_addr = “当前机器IP”

客户端监听地址

client_addr = “0.0.0.0”

指定需要加入的 Consul server 的 IP 地址

retry_join = [“当前机器IP:8301”]

启用 UI

ui_config {
enabled = false
}

端口配置

ports {
serf_lan = 8301
serf_wan = 8302
http = 8500 # HTTP API 端口(可以与服务器的端口不同,因为客户端通常不暴露 HTTP API)
dns = 8600
}

设置日志级别(可选,默认为 “INFO”)

log_level = “INFO”
(二) client-start.bat
@echo off
echo Starting Consul agent…

REM 设置 Consul 的路径和配置文件路径
SET CONSUL_PATH=consul.exe
SET CONFIG_FILE_PATH=client-config.hcl

REM 创建 logs 目录(如果不存在)
if not exist logs (
mkdir logs
)

REM 启动 Consul agent,将标准输出和错误输出重定向到 logs 目录中的 consul.log
REM 仅将 Consul 启动成功与否的状态输出到控制台
%CONSUL_PATH% agent -config-file=%CONFIG_FILE_PATH% > logs\consul.log 2>&1
SET ERRORLEVEL=%ERRORLEVEL%

REM 检查是否启动成功
IF %ERRORLEVEL% NEQ 0 (
echo Consul failed to start. Check logs\consul.log for details.
exit /b %ERRORLEVEL%
)

echo Consul started successfully. Logs are being written to logs\consul.log
pause

天行健,君子以自强不息; 地势坤,君子以厚德载物;

作者:Jeebiz  创建时间:2025-04-12 14:49
最后编辑:Jeebiz  更新时间:2025-04-13 16:32