安装过程
详细步骤如下:
首先拉取Consul
的Docker
镜像:
docker pull hashicorp/consul:1.18.1
创建Consul
的配置文件和数据目录:
mkdir -p /srv/docker/consul/data
mkdir -p /srv/docker/consul/config
在config
目录下创建一个config.json
配置文件:
vim /srv/docker/consul/config/config.json
在该文件中写入以下内容:
{"datacenter": "dc1","node_name": "consul-node","server": true,"bootstrap_expect": 1,"data_dir": "/consul/data","log_level": "INFO","client_addr": "0.0.0.0","bind_addr": "0.0.0.0","ui": true
}
上面JSON
中的字段内容含义详解:
datacenter
:定义当前节点的数据中心名称,用于隔离服务发现和分布式操作。名称可自定义,如dc1
、us-west
等。node_name
:指定节点名称,用于标识当前节点,必须在整个集群中唯一。如果未设置,Consul
会生成一个随机名称。server
:指示当前节点是否为Consul
服务器节点。Consul
服务器节点负责存储集群状态和数据,并参与选举。bootstrap_expect
:定义服务器节点的预期数量,用于初始化集群。例如,设置为3
时,至少需要3
个服务器节点完成启动。data_dir
:指定数据存储目录。用于持久化存储Consul
的数据,如状态信息、快照和事务日志。log_level
:设置日志级别。可选值:DEBUG
、INFO
、WARN
、ERR
等。client_addr
:定义客户端可访问的监听地址。0.0.0.0
表示监听所有网络接口地址。可以根据需求改为特定的IP
。bind_addr
:设置Consul
节点的绑定地址。单机部署(如开发测试)可使用环回地址或绑定到所有接口。ui
:启用Consul
的内置Web UI
。设为true
后,Consul
会开放Web UI
界面,默认在8500
端口提供访问。
接下来,使用下面命令启动Consul
容器:
docker run -d \--name=consul \--restart=always \-p 8500:8500 \-p 8600:8600/udp \-v /srv/docker/consul/data:/consul/data \-v /srv/docker/consul/config:/consul/config \hashicorp/consul:1.18.1 \agent -config-dir=/consul/config
这里开启了8500
和8600
端口:8500
映射Consul
的Web UI
和API
,支持用户通过浏览器访问控制台或调用API
;8600
映射DNS
接口,提供服务发现的DNS
查询功能。使用8600/udp
进行端口暴露,是因为默认情况下DNS
查询使用UDP
协议,如果不显式声明UDP
协议,Docker
默认会只暴露TCP
,导致应用无法通过UDP
协议进行DNS
查询。
agent -config-dir=/consul/config
这一句指明使用容器内的配置文件启动Consul
代理。
容器启动完成后,使用下面的地址访问Consul
的Web UI
页面:
http://<ip_address>:8500
出现如下页面,代表容器启动成功:
上述配置为单节点Consul
,如需部署多节点集群,可根据需要进行配置。具体步骤将在使用时整理。
The end.