使用DockerCompose搭建部署Consul集群

使用DockerCompose搭建4个节点,其中consul_node1、consul_node2、consul_node3为server agent;consul_node4为client agent,开放端口访问conusl ui

机器准备

模拟4台机器:

节点名称 ip:host 说明
consul_node1 server agent
consul_node2 server agent
consul_node3 server agent
consul_node4 localhost:8500 client agent,开放8500端口访问consul ui
version: '3'
networks:
  consul_net:

services:
  consul1:
    image: consul:1.12.2
    container_name: consul_node1
    command: agent -server -bootstrap-expect=3 -node=consul_node1 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
    networks:
      - consul_net

  consul2:
    image: consul:1.12.2
    container_name: consul_node2
    command: agent -server -retry-join=consul_node1 -node=consul_node2 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
    depends_on:
        - consul1
    networks:
      - consul_net

  consul3:
    image: consul:1.12.2
    container_name: consul_node3
    command: agent -server -retry-join=consul_node1 -node=consul_node3 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1
    depends_on:
        - consul1
    networks:
      - consul_net

  consul4:
    image: consul:1.12.2
    container_name: consul_node4
    command: agent -retry-join=consul_node1 -node=consul_node4 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 -ui 
    ports:
      - 8500:8500
    depends_on:
        - consul2
        - consul3
    networks:
      - consul_net

dockercompose配置

networks:consul_net,以便网络共享
depends_on: 用于容器排序,需要指定的容器进入运行状态,才会启动当前容器。上述配置中consul2和consul3依赖consul1,consul4依赖consul2和consul3。

consul参数

-server:表示为server agent
-node:节点名称
-bind:集群内通信的ip地址,默认为0.0.0.0
-datacenter:数据中心名称
-ui :支持web-ui管理consul节点
bootstrap-expect=3:数据中心期望的server agent数量,基于Raft算法,server agent数量必须为奇数
client=0.0.0.0:表示允许公网访问(默认为127.0.0.1,仅对内提供服务)

posted @ 2022-06-09 14:51  划破黑夜  阅读(304)  评论(0编辑  收藏  举报