Consul群集堆栈配置

问题描述 投票:0回答:1

我正在尝试构建Consul集群堆栈。我当前的配置工作正常,但是在重新启动领事领导者或完整堆栈后,集群在投票选举新领导者时遇到了问题。

服务重启后,新任务对于相同的节点ID具有不同的IP地址。

consul代理配置是否有任何参数可以解决群集中地址更改的问题?

在我当前的堆栈定义下面

version: '3.5'

services: 
  consulLeader:
    image: consul
    volumes:
      - consul_l_data:/consul/data
    command: 'agent -bind "{{ GetInterfaceIP \"eth0\" }}" -bootstrap-expect 3 -client 0.0.0.0 -ui -server -node nodeLeader -retry-join consulNode1 -retry-join consulNode2'
    environment: 
      - "CONSUL_LOCAL_CONFIG={\"skip_leave_on_interrupt\": true,\"leave_on_terminate\": true}"

  consulNode1:
    image: consul
    volumes:
      - consul_n1_data:/consul/data
    command: 'agent -bind "{{ GetInterfaceIP \"eth0\" }}" -disable-host-node-id -client 0.0.0.0 -ui -server -node consulNode1 -retry-join consulLeader -retry-join consulNode2' 
    environment: 
      - "CONSUL_LOCAL_CONFIG={\"skip_leave_on_interrupt\": true,\"leave_on_terminate\": true}"

  consulNode2:
    image: consul
    volumes:
      - consul_n2_data:/consul/data
    command: 'agent -bind "{{ GetInterfaceIP \"eth0\" }}" -disable-host-node-id -client 0.0.0.0 -ui -server -node consulNode2 -retry-join consulLeader -retry-join consulNode1'
    environment: 
      - "CONSUL_LOCAL_CONFIG={\"skip_leave_on_interrupt\": true,\"leave_on_terminate\": true}"

  # loadballancer
  nginxForCluster:
    image: nginx
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.role == manager
    configs:
      - source: consul_nginx.conf
        target: /etc/nginx/nginx.conf
        mode: 0440
    ports:
      - 8080:80

configs:
  consul_nginx.conf: 
    external: true
volumes:
  consul_l_data:
  consul_n1_data:
  consul_n2_data:
docker consul docker-stack
1个回答
0
投票

我不确定为什么您的集群在重新启动领导者后不选择新的领导者。不要指望您调用的consulLeader容器成为筏协议的下一个领导者,因为新的领导者将从您的服务器池中选出,其中consulLeaderconsulNode1consulNode2应该相同。尝试同样配置它们,我可以看到配置上的差异。也许有帮助。

作为解除阻止的解决方法,您还可以在撰写文件中为容器设置固定IP:https://docs.docker.com/compose/compose-file/compose-file-v2/#ipv4-address-ipv6-address

© www.soinside.com 2019 - 2024. All rights reserved.