1 2 3 4 5 6 7 8
|
- **操作系统**:CentOS 7/8 或 Ubuntu 20.04 LTS - **依赖项**: ```bash sudo yum install -y wget unzip curl sudo apt install -y wget unzip curl
|
二、安装步骤
1. 下载并安装二进制文件
1 2 3 4
| wget https://releases.hashicorp.com/consul/1.21.0/consul_1.21.0_linux_amd64.zip unzip consul_1.21.0_linux_amd64.zip sudo mv consul /usr/local/bin/ sudo chmod +x /usr/local/bin/consul
|
2. 创建系统用户和目录
1 2 3 4
| sudo useradd --system --home /etc/consul.d --shell /bin/false consul sudo mkdir -p /etc/consul.d /var/lib/consul sudo chown -R consul:consul /etc/consul.d /var/lib/consul sudo chmod -R 750 /etc/consul.d /var/lib/consul
|
3. 配置文件 (/etc/consul.d/consul.hcl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| datacenter = "dc1" data_dir = "/var/lib/consul" node_name = "consul-server-1" log_level = "INFO"
server = true bootstrap_expect = 1
ui_config { enabled = true }
bind_addr = "0.0.0.0" client_addr = "0.0.0.0"
ports { http = 8500 grpc = 8502 }
enable_local_script_checks = true
|
4. Systemd 服务配置 (/etc/systemd/system/consul.service
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| [Unit] Description="HashiCorp Consul 1.21 Service Mesh" Documentation=https://www.consul.io/docs/1.21 After=network-online.target
[Service] User=consul Group=consul ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d/ ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=5s LimitNOFILE=65536
[Install] WantedBy=multi-user.target
|
5. 启动服务
1 2 3
| sudo systemctl daemon-reload sudo systemctl enable consul sudo systemctl start consul
|
三、验证安装
1 2 3 4 5 6 7 8 9 10 11
| sudo systemctl status consul
consul members
curl http://localhost:8500/v1/agent/self | jq
http://<SERVER_IP>:8500/ui
|
四、防火墙配置
1 2 3 4 5 6 7 8 9
| sudo firewall-cmd --permanent --add-port={8300,8301,8302,8500,8600}/tcp sudo firewall-cmd --permanent --add-port={8301,8302,8600}/udp sudo firewall-cmd --reload
sudo ufw allow 8300,8301,8302,8500,8600/tcp sudo ufw allow 8301,8302,8600/udp sudo ufw reload
|
五、常见问题解决
1. 启动失败检查
1 2 3 4 5
| sudo journalctl -u consul -f
consul validate /etc/consul.d/
|
2. 端口冲突处理
1 2
| sudo netstat -tulnp | grep -E '8500|8300'
|
3. 数据重置
1 2 3
| sudo systemctl stop consul sudo rm -rf /var/lib/consul/* sudo systemctl start consul
|
六、备份建议
- 定期备份
/etc/consul.d/
目录
- 重要数据目录
/var/lib/consul/
建议做快照
注意:单节点部署仅适用于开发和测试环境,生产环境建议至少3个节点组成集群