# 搭建集群
在真实的生产环境中,需要真实的部署consul集群。在一台机器上想要模拟多台集群部署的效果,有两种方案:一种是借助虚拟机,另一种是借助容器技术。
在本系列课程中,使用后者容器技术来实现集群的搭建。
# Docker简介
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何的接口,更重要的是容器性能开销很低。
# Docker安装
# 1、Windows系统下安装
window系统下的安装可以参考如下的链接文档:https://www.runoob.com/docker/windows-docker-install.html
可以按照如上的链接在window系统下安装Docker。
# 2、MacOS系统下安装
MacOS系统下的安装,有两种方式。同样可以参考如下链接:https://www.runoob.com/docker/macos-docker-install.html
# Docker测试
Docker安装完成以后,可以进行测试。可以通过终端命令的形式查看Docker是否安装成功:
docker version
# Docker中安装consul
Docker仅仅是一个容器,是搭建集群的一个环境。如果想要搭建多个集群,还必须安装consul环境。Docker中安装consul环境,可以使用指令实现。Docker安装consul指令如下:
- docker search
docker search consul
使用如上命令查看consul的镜像文件,在终端输出如下所示内容:
- docker pull
docker pull consul
通过search查询了consul镜像的相关内容后,可以使用如上的docker pull命令安装consul环境。
# 检验Docker安装Consul成功
在Docker中安装consul可以,可以通过如下命令查看docker中安装consul是否成功:
docker images
或者
docker run consul version
# Docker中启动一个单独节点consul agent
Docker中安装好了consul以后,首先尝试启动一个server节点,可以通过如下命令来启动docker中的单个节点:
$ docker run -p 8500:8500/tcp consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0
如上的命令中,参数说明如下:
- 暴露了端口,分别是:HTTP端口:8500
- -h:对应的node1为节点的名称
- -server:表示启动的节点类型为server类型
- -bootstrap-expect:用于server节点选举leader的参数,表示达到几个server节点时开始选举
在暴露的http端口中,还对应的映射到了主机的端口上,因此,我们可以通过在主机中访问server的信息。比如:
curl访问HTTP接口:
curl localhost:8500/v1/catalog/nodes
1dig来和DNS接口进行交互:
dig @0.0.0.0 -p 8600 node1.node.consul
1
另外,我们还可以浏览器来进行访问,在主机的浏览器中键入:http://127.0.0.1:8500 (opens new window) 进行访问,可以查看到server节点的相关信息。
- 宿主机上查看节点数量 在宿主机上已经安装了Consul, 可以用命令行来和容器里的Consul Agent进行交互:
consul members