Consul搭建服务器集群

环境准备

linux Centos 7.2

Docker

参见:https://blog.csdn.net/yan_dk/article/details/89427641

Consul入门

参见:https://blog.csdn.net/yan_dk/article/details/91488680

Docker构建Consul

consul的安装路径是在https://releases.hashicorp.com,我们使用Docker安装

建立Docker安装脚本Dockerfile,放置在目录/usr/docker/consul下


FROM  alpine
MAINTAINER  peter  "1052060702@qq.com"

#配置环境变量consul版本
ENV CONSUL_VERSION=1.4.3
ENV HASHICORP_RELEASES=https://releases.hashicorp.com

#安装consul
RUN apk upgrade  && \
    apk add  net-tools && \
    apk add wget && \
    apk add unzip && \
    wget ${HASHICORP_RELEASES}/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip && \
    unzip consul_${CONSUL_VERSION}_linux_amd64.zip && \
    rm -rf consul_${CONSUL_VERSION}_linux_amd64.zip && \
    mv consul /usr/local/bin


VOLUME /consul/data

#预开放端口
EXPOSE 8300
EXPOSE 8301 8301/udp 8302 8302/udp
EXPOSE 8500 8600 8600/udp

 脚本中使用aipine,这个比较小的操作系统安装在容器中,比较节省空间。

运行Docker脚本,生成容器镜像

cd /usr/docker/consul

docker build -t counsl  .

安装成功后,截图如上,生成了名为consul的镜像

创建自定义网络

docker network create --subnet=192.167.1.0/16 swoftNetwork

网络节点规划

容器名称

容器IP地址

映射端口号

宿主机IP地址

服务运行模式

consul-server1

192.167.1.10

8501 -> 8500

172.27.0.8

Server Master

consul-server2

192.167.1.11

8502 -> 8500

172.27.0.8

Server

consul-server3

192.167.1.12

8503 -> 8500

172.27.0.8

Server

consul-client1

192.167.1.13

8504 -> 8500

172.27.0.8

Client

构建容器

docker run -itd --name consul_server1 -p 8501:8500 --network swoftNetwork  --ip 192.167.1.10   consul
docker run -itd --name consul_server2 -p 8502:8500 --network swoftNetwork  --ip 192.167.1.11   consul
docker run -itd --name consul_server3 -p 8503:8500 --network swoftNetwork  --ip 192.167.1.12   consul
docker run -itd --name consul_client -p 8504:8500 --network swoftNetwork  --ip 192.167.1.13   consul

构建成功如上图。

进入节点服务器,启动Consul

docker exec -it consul_server1 sh

consul agent -server -ui -node=consul_server1  -bootstrap-expect=1  -bind=192.167.1.10  -data-dir /consul/data -join=192.167.1.10 -client 0.0.0.0

注意第一个的agent参数有些不同,所有的agent都加入到192.167.1.10,同时192.167.1.10提供对外ui访问。

参数含义:

agent   代理模式

-server  表示启动的是一个服务

-client  启动客户端

-bootstrap-expect 1 表示等待多少个节点再启动,这里1个,就是自己一个就启动了

-node=ali_1 就是给consul服务起个别名为ali_1

-bind=192.167.1.10  绑定内网ip

-advertise:通知展现地址用来改变给集群中的其他节点展现的地址,用于外网通讯

-data-dir /opt/data1 数据存储目录为/opt/data1

-ui 启动默认ui界面

-client  consul绑定在哪个client地址上,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1,可指定允许客户端使用什么ip去访问

如上图 ,节点服务器启动consul成功。

另外2台Consul节点服务器可按上述方法启动。

docker exec -it consul_server2 sh

consul agent -server -ui -node=consul_server2  -bootstrap-expect=3  -bind=192.167.1.11  -data-dir /consul/data -join=192.167.1.10 -client 0.0.0.0

docker exec -it consul_server3 sh

consul agent -server -ui -node=consul_server3 -bootstrap-expect=3 -bind=192.167.1.12 -data-dir /consul/data -join=192.167.1.10 -client 0.0.0.0

启动3个consul服务器,加入leader节点192.167.1.10,这样就组成了consul服务器集群。

加入consul客户端

docker exec -it consul_client sh

consul agent -client -ui -node=consul_client1 -bind=192.167.1.13 -data-dir=/consul/data -join=192.167.1.10 -client 0.0.0.0

 

进入consul客户端节点,启动consul

docker exec -it consul_client sh

consul agent -client -node=client1 -bind=192.167.1.13 -data-dir=/consul/data  -join=192.167.1.10 -client 0.0.0.0

建立集群

使用192.167.1.10作为主机,将其他节点加入它,建立集群

#docker exec -it consul_server1 sh

#consul join 192.167.1.11

#consul join 192.167.1.12

成功后,即可将此3个节点组成consul集群环境。

进入consul控制台,查看节点情况

浏览器访问:http://ip:8501/ui/

 

 

启动成功,查看节点运行正常。 

 

持续完善,待续...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云焰

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值