上一节讨论consul架构时提到consul agent分为server及client两种模式。
本节我们将启动一个client,并加入到当前server集群:
启动新的一台EC2实例,准备将它作为Client加入到当前集群。
通过安全组的设置,保证与当前Cloud9环境的网络通畅。
ip地址 | 说明 |
---|---|
172.31.60.3 | Cloud 9环境,以dev模式运行,作为consul server |
172.31.58.144 | 新的EC2实例,作为client准备加入consul server集群 |
上一节启动consul server使用的命令是consul agent -dev -http-port=8080
,这种情况将监听本地IP的端口:
如果以这种模式运行,新的client加入时,会报connection refused
错误
所以应当让consul监听0.0.0.0
的连接:
consul agent -dev -client=0.0.0.0 -bind [SERVER-IP]
client加入到consul集群的命令如下:
consul agent -join [SERVER-IP] -bind [CLIENT-IP] -data-dir [PATH-TO-FOLDER]
consul agent -join 1.2.3.4 -bind 5.6.7.8 -data-dir /path/dir # example
根据实际server及client的ip做替换:
consul agent -join 172.31.60.3 -bind 172.31.58.144 -data-dir /home/ec2-user/consul
加入新的client后,访问consul UI,成功查看到新加入的node:
如果主动停止掉server,client会立即报错:
重新运行server,等待一段时间后client会自动重新连接到server:
在连接命令中,有三个参数-join、-bind、-data-dir
consul agent -join [SERVER-IP] -bind [CLIENT-IP] -data-dir [PATH-TO-FOLDER]
Consul Server运行的命令:
consul agent -dev -client=0.0.0.0 -bind [SERVER-IP]
Client命令:
consul agent -join [SERVER-IP] -bind [CLIENT-IP] -data-dir [PATH-TO-FOLDER]
i.e:
consul agent -join 134.209.155.89 -bind 165.22.222.190 -data-dir /root/consul