【开发工具】Consul使用:2、LinuxCentos7上安装consul并部署集群

  1. 上传文件consul_1.4.0_linux_amd64.zip到/opt下
  2. Unzip consul_1.4.0_linux_amd64.zip #后出现一个文件consul

【开发工具】Consul使用:2、LinuxCentos7上安装consul并部署集群_第1张图片

  1. sudo chown root:root consul #如果没有root权限,给与
  2. sudo mv consul /usr/local/bin/
  3. consul –version #检查是否成功
  4. consul -autocomplete-install #设置子命令自动安装
  5. complete -C /usr/local/bin/consul consul
  6. 创建非特权用户操作consl

         sudo useradd --system --home /etc/consul.d --shell /bin/false consul

         sudo mkdir --parents /opt/consul

         sudo chown --recursive consul:consul /opt/consul

  1. 配置

         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]节设置以下参数:

  • UserGroup - 作为领事用户运行领事
  • ExecStart- 使用agent参数和配置文件的路径 开始consul
  • ExecReload - 向consul发送重载信号以触发领事中的配置重新加载
  • KillMode - 将领事视为一个过程
  • Restart - 重新启动consul,除非它返回一个干净的退出代码
  • LimitNOFILE - 为文件描述符设置增加的限制

为该[Install]节设置以下参数:

  • WantedBy - 创建由多用户运行级别启动的consul的弱依赖性

 

  1. 配置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=="

  1. 集群自动加入

retry_join参数添加到consul.hcl配置文件中:

Vim /etc/consul.d/consul.hcl

retry_join = ["172.16.0.11"]

  1. 性能参数配置

raft_multiplier - Consul服务器用于缩放关键Raft时序参数的整数乘数。将此值设置为1将将Raft配置为其最高性能模式,相当于0.7之前的Consul的默认时间,建议用于生产Consul服务器。

Vim /etc/consul.d/consul.hcl

performance {

  raft_multiplier = 1

}

  1. 可配置监控遥测配置参数
  2. 配置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

 

  1. 制定机器可启动consul UI/

vim /etc/consul.d/server.hcl

#在选择某一台server上启动

ui=true

  1. 启动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

你可能感兴趣的:(开源工具)