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]节设置以下参数:
为该[Service]节设置以下参数:
为该[Install]节设置以下参数:
创建配置文件
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
}
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
vim /etc/consul.d/server.hcl
#在选择某一台server上启动
ui=true
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