Я пытаюсь собрать кластерный стек Консул.Моя текущая конфигурация работает нормально, но после перезапуска консула-лидера или полного стека у кластера возникла проблема, чтобы проголосовать за нового лидера.
После перезапуска службы у новой задачи другой IP-адрес для того же идентификатора узла.
Есть ли какой-либо параметр для конфигурации агента консула, чтобы исправить изменение адреса в кластере?
Ниже моего текущего определения стека
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: