在本机开发环境中,直接通过以下命令可以启动一个单机consul服务器:
consulagent -server -data-dir=/tmp/consul -bootstrap -advertise=$LOCAL_IP
其中$LOCAL_IP为本地IP地址。
服务器启动后,可以通过$LOCAL_IP:8500使用consul服务。
通常情况下Consul的集群服务应当运行于节点数大于等于3的集群环境中。要启动一个集群,需要先选择一台机器作为Bootstrap节点。在Bootstrap节点上执行:
consulagent -server -advertise $LAN_IP -dccloud -domaincom.example. -bootstrap
其中$LAN_IP为集群工作局域网的本机IP地址。-dc参数指定了当前数据中心的名称为cloud,可根据自己的需要指定,例如ap-northeast-01。-domain参数指定了集群的域名根。这个将在Consul提供的DNS服务中使用。例如上面命令的启动参数,向Consul中注册了一个名为redis的服务,那么此服务的全域名为redis.cloud.example.com。
将其他节点依次加入Bootstrap所在的集群中:
consulagent -server -advertise $LAN_IP -join $BOOTSTRAP_IP
其中$LAN_IP为集群工作局域网的本机IP地址,$BOOTSTRAP_IP为Bootstrap节点的IP地址。
Consul提供了一个Web界面的控制台,可以快速查看集群和服务状态,进行一些简单的管理和维护。Consul的WebUI并不直接包含在二进制发行包中,可以通过 这个链接 下载。
将WebUI包解压缩至特定位置,在Consul的启动参数中增加-ui-dir /path/to/consul-ui即可。例如在Bootstrap节点上启动Consul WebUI,参数可改为:
consulagent -server -data-dir=/tmp/consul -bootstrap -advertise=$LOCAL_IP -ui-dir ./web-ui
启动后,可以通过http://$LOCAL_IP:8500/来访问WebUI控制台。
在Docker集群环境中,可以直接通过Docker容器运行Consul服务,以下是一个参考的docker-compose.yml文件:
consul: container_name: consul image: progrium/consul volumes: - /home/docker/consul/data:/data command: -server -advertise $LAN_IP -dc cloud -domain com.example. -bootstrap net: host restart: always