- 上传文件consul_1.4.0_linux_amd64.zip到/opt下
- Unzip consul_1.4.0_linux_amd64.zip #后出现一个文件consul
- sudo chown root:root consul #如果没有root权限,给与
- sudo mv consul /usr/local/bin/
- consul –version #检查是否成功
- consul -autocomplete-install #设置子命令自动安装
- complete -C /usr/local/bin/consul consul
- 创建非特权用户操作consl
sudo useradd --system --home /etc/consul.d --shell /bin/false consul
sudo mkdir --parents /opt/consul
sudo chown --recursive consul:consul /opt/consul
- 配置
sudo touch /etc/systemd/system/consul.service
#在consul.service上创建consul服务
[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl
[Service]
User=consul
Group=consul
ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/usr/local/bin/consul reload
KillMode=process
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
为该[Unit]节设置以下参数:
- Description - 描述领事服务的自由格式字符串
- Documentation - 链接到领事文档
- Requires - 配置对网络服务的需求依赖性
- After - 在领事服务之前配置对正在启动的网络服务的排序依赖性
- ConditionFileNotEmpty - 在启动consul之前检查非零大小的配置文件
为该[Service]节设置以下参数:
- User,Group - 作为领事用户运行领事
- ExecStart- 使用agent参数和配置文件的路径 开始consul
- ExecReload - 向consul发送重载信号以触发领事中的配置重新加载
- KillMode - 将领事视为一个过程
- Restart - 重新启动consul,除非它返回一个干净的退出代码
- LimitNOFILE - 为文件描述符设置增加的限制
为该[Install]节设置以下参数:
- WantedBy - 创建由多用户运行级别启动的consul的弱依赖性
- 配置consul服务器
创建配置文件
sudo mkdir --parents /etc/consul.d
sudo touch /etc/consul.d/consul.hcl
sudo chown --recursive consul:consul /etc/consul.d
sudo chmod 640 /etc/consul.d/consul.hcl
vim / etc/consul.d/consul.hcl
#用于部署Consul集群的数据中心的标识符
datacenter = "dc1"
data_dir = "/opt/consul"
#指定用于加密Consul网络流量的密钥
encrypt = "Luj2FZWwlt8475wD1WtwUQ=="
- 集群自动加入
将retry_join参数添加到consul.hc
l
配置文件中:
Vim /etc/consul.d/consul.hcl
retry_join = ["172.16.0.11"]
- 性能参数配置
raft_multiplier - Consul服务器用于缩放关键Raft时序参数的整数乘数。将此值设置为1将将Raft配置为其最高性能模式,相当于0.7之前的Consul的默认时间,建议用于生产Consul服务器。
Vim /etc/consul.d/consul.hcl
performance {
raft_multiplier = 1
}
- 可配置监控遥测配置参数
- 配置consul server的数量
sudo touch /etc/consul.d/server.hcl
sudo chmod 640 /etc/consul.d/server.hcl
vim /etc/consul.d/server.hcl
#此标志用于控制代理是处于服务器模式还是客户端模式
server = true
#提供数据中心中预期的服务器数。不应提供此值,或者该值必须与群集中的其他服务器一致。
bootstrap_expect = 3
- 制定机器可启动consul UI/
vim /etc/consul.d/server.hcl
#在选择某一台server上启动
ui=true
- 启动consul
sudo systemctl enable consul
sudo systemctl start consul
sudo systemctl status consul
每台机器都一样的操作即可,再依次在每台机器上选择加入主机集群
consul join 主机
首先在主机上172.20.10.1 (启动的是consul和consul_ui)
consul agent -ui-dir /usr/local/consul_ui/ -server -bootstrap-expect 3 -data-dir /usr/local/consul/ -bind=172.20.10.1 -node=consul_01 -client 0.0.0.0 &(&是后台启动,这样就不用再起shell)
然后在另外一台172.20.10.2 (启动的是consul)
consul agent -server -bootstrap-expect 3 -data-dir /usr/local/consul/ -bind=172.20.10.2 -node=consul_02 &
最后一台一样的操作172.20.10.3 (启动的是consul)
consul agent -server -bootstrap-expect 3 -data-dir /usr/local/consul/ -bind=172.20.10.3 -node=consul_03 &
加入集群完成
在 172.20.10.1 中 : consul join 172.20.10.2 172.20.10.3
问题:
启动之后通过本机访问失败,主要原因是由于服务器的防火墙策略挡住了8500端口
firewall-cmd --zone=public --add-port=8500/tcp --permanent
systemctl stop firewalld.service
systemctl start firewalld.service
以上操作步骤来自官网
集群搭建参考:https://blog.csdn.net/u010046908/article/details/61916389