部署consul集群

1. 多台服务器部署

1.1 准备3台虚拟机

系统版本centos7,IP地址分别为

192.168.200.101

192.168.200.102

192.168.200.103

1.2 安装consul

3台虚拟机都安装consul

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install consul

1.3 启动consul

提前创建consul数据目录

mkdir -p /usr/local/consul/data

 101启动consul,作为leader

consul agent -server -bind=192.168.200.101 -client=0.0.0.0 -ui -bootstrap-expect=3 -data-dir=/usr/local/consul/data -node=server-01

102启动consul,加入到101

consul agent -server -bind=192.168.200.102 -client=0.0.0.0 -ui -data-dir=/usr/local/consul/data -node=server-02 -retry-join=192.168.200.101

103启动consul,加入到101

consul agent -server -bind=192.168.200.103 -client=0.0.0.0 -ui -data-dir=/usr/local/consul/data -node=server-03 -retry-join=192.168.200.101

访问 http://192.168.200.101:8500/

2. docker部署

需要提前安装docker和docker compose

2.1 拉取consul镜像

docker pull consul:1.15.4

2.2 启动consul 

101启动consul

docker run -d --name=consul-server-01 --net=host consul:1.15.4 agent -server -client=0.0.0.0 -ui -bootstrap-expect=3 -node=server-01 -bind=192.168.200.101

 102启动consul

docker run -d --name=consul-server-02 --net=host consul:1.15.4 agent -server -client=0.0.0.0 -node=server-02 -bind=192.168.200.102 -join=192.168.200.101

103启动consul

docker run -d --name=consul-server-03 --net=host consul:1.15.4 agent -server -client=0.0.0.0 -node=server-03 -bind=192.168.200.103 -join=192.168.200.101

3.  docker compose部署

需要提前安装docker和docker compose

3.1 准备1台服务器

系统版本centos7,IP地址分别为 192.168.200.1003.2 创建consul目录

3.2 创建compose.yml

touch /docker/consul/compose.yml

修改compose.yml

name: consul

services:
  consul1:
    image: consul:1.15.4
    command: >
      consul agent -server
      -bootstrap-expect=3
      -node=consul1
      -bind='{{ GetInterfaceIP "eth0" }}'
      -client=0.0.0.0
      -data-dir=/consul/data
      -ui
    ports:
      - "8500:8500"
      - "8300:8300"
      - "8301:8301"
      - "8302:8302"
      - "8600:8600"
      - "8600:8600/udp"
      - "8301:8301/udp"
      - "8302:8302/udp"
    volumes:
      - ./data/consul1:/consul/data
    restart: always
    networks:
      consul_net:
        ipv4_address: 172.20.0.2

  consul2:
    image: consul:1.15.4
    command: >
      consul agent -server
      -node=consul2
      -bind='{{ GetInterfaceIP "eth0" }}'
      -client=0.0.0.0
      -retry-join=172.20.0.2
      -data-dir=/consul/data
      -ui
    ports:
      - "18500:8500"
      - "18300:8300"
      - "18301:8301"
      - "18302:8302"
      - "18600:8600"
      - "18600:8600/udp"
      - "18301:8301/udp"
      - "18302:8302/udp"
    volumes:
      - ./data/consul2:/consul/data
    restart: always
    depends_on:
      - consul1
    networks:
      consul_net:
        ipv4_address: 172.20.0.3

  consul3:
    image: consul:1.15.4
    command: >
      consul agent -server
      -node=consul3
      -bind='{{ GetInterfaceIP "eth0" }}'
      -client=0.0.0.0
      -retry-join=172.20.0.2
      -data-dir=/consul/data
      -ui
    ports:
      - "28500:8500"
      - "28300:8300"
      - "28301:8301"
      - "28302:8302"
      - "28600:8600"
      - "28600:8600/udp"
      - "28301:8301/udp"
      - "28302:8302/udp"
    volumes:
      - ./data/consul3:/consul/data
    restart: always
    depends_on:
      - consul1
    networks:
      consul_net:
        ipv4_address: 172.20.0.4

networks:
  consul_net:
    driver: bridge
    ipam:
     config:
       - subnet: 172.20.0.0/24
       

 这里每个服务的网络不设置ip地址也可以自动加入集群

3.3 启动consul

进入 /docker/consul 目录,启动consul

cd /docker/consul
docker compose up -d

访问 http://192.168.200.100:8500/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值