Как полностью удалить узел из кластера Consul?

Этот узел Consul Server в другом DC продолжает присоединяться некоторое время после того, как я его удалю.

Цель:

Кластер из 5 серверов Consul в DC alpha0 , чье хранилище KV Store a alpha0 Vault кластер использует в качестве серверной части хранилища:

  • alpha0consulserver1.alpha0
  • alpha0consulserver2.alpha0
  • alpha0consulserver3.alpha0
  • alpha0consulserver4.alpha0
  • alpha0consulserver5.alpha0

Кластер из 5 Consul серверов в округе Колумбия prd0 , чье хранилище KV использует кластер хранилища prd0 в качестве серверной части хранилища:

  • prd0consulserver1.prd0
  • prd0consulserver2.prd0
  • prd0consulserver3.prd0
  • prd0consulserd0
  • prd0consulserd
  • prd0consulserd
  • prd0consulserd
  • prd0consulserd0
  • prd0consulserd0
  • prd0consulserd0
  • prd0consulserd0
  • prd0consulserd0 [12] 12115] WAN-соединение в порядке. Но меня беспокоит, что если они синхронизируют свои хранилища KV, это может повлиять на два отдельных кластера HashiCorp Vault, каждый из которых использует их в качестве серверной части.

    Проблема:

    Плохо протестированный мной сценарий Puppet привел к тому, что один узел Consul prd0consulserver5 подключился к другому в другом DC, alpha0consulserver1 .

    I полностью удалили и переустановили Consul для prd0consulserver5, но alpha0consulserver1 продолжает подключаться к нему.

    Вот пример одного из файлов конфигурации, в частности, один для alpha0consulserver1.alpha0:

    nathan-basanese-zsh8 % sudo cat /etc/consul/config.json
    {
        "bind_addr": "192.176.100.1",
        "client_addr": "0.0.0.0",
        "data_dir": "/opt/consul",
        "domain": "consul.basanese.com",
        "bootstrap_expect": 5,
        "enable_syslog": true,
        "log_level": "DEBUG",
        "datacenter": "bts0",
        "node_name": "alpha0consulserver1",
        "ports": {
            "http": 8500,
            "https": 8501
        },
        "recursors": ["192.176.176.240", "192.176.176.241"],
        "server": true,
        "retry_join": ["192.176.100.3", "192.176.100.2", "192.176.100.1"]
    }
    

    Вот некоторые соответствующие журналы из prd0consulserver5 , но я могу опубликовать больше по запросу:

    2017/05/26 23:38:00 [DEBUG] memberlist: Stream connection from=192.176.100.1:47239
    2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver2.alpha0 192.176.100.2
    2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver1.alpha0 10.240.112.3
    2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver2.bts0" in area "wan"
    2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver3.alpha0 192.176.100.3
    2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver1.bts0" in area "wan"
    2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver3.bts0" in area "wan"
    

    В конце концов, я добираюсь до следующего:

    2017/05/26 23:39:02 [DEBUG] memberlist: Initiating push/pull sync with: 192.176.100.2
    

    Я закрыл узел , поскольку я не хочу, чтобы ключи, которые я записываю в хранилище KV на узлах alpha0 , отображались на узлах prd0 .

    Что я пробовал до сих пор:

    Я пробовал следующее:

    https://www.consul.io/api/agent.html#graceful-leave-and-shutdown

    Я не пробовал принудительно покинуть , так как он не работает на узлах за пределами настроенного контроллера домена.

    Я также попытался отменить регистрацию ВСЕХ хостов prod0 с хостов alpha0 .

    https://www.consul.io/api/catalog.html#deregister- entity

    Я здесь до конца остроумие и могу ' Кажется, я нашел способ

    Я искал его в поисковых системах, используя этот запрос и множество похожих запросов: https://duckduckgo.com/?q=totally+deregister+consul+node&t=hc&ia= программное обеспечение

    Похоже, что следующие два результата имеют немного схожую проблему, но не что иное, как сохранение кластера из 5 серверов Consul отдельно от другого кластера из 5 серверов Consul.

    https://github.com/hashicorp/ consul / issues / 1188 https://groups.google.com/forum/#!msg/consul-tool/bvJeP1c3Ujs/EvSZoYiZFgAJ

    Я думаю, это может быть решено с помощью "join_wan": , но, похоже, у него нет способа явно отключить его. Кроме того, это похоже на хакерский способ решить эту проблему.

    Я также рассматривал IPTables.

    В любом случае, я чувствую, что чего-то не хватает. Я' Я начал копаться в протоколе Raft, но мне кажется, что я начал отклоняться от темы в своих поисках. Любое руководство приветствуется, будь то комментарий или ответ.

    Точнее, как сохранить серверные узлы prd0 Consul, имеющие собственное отдельное хранилище KV и Consul Leader, от узлов сервера alpha0 Consul?

1
задан 27 May 2017 в 06:44
2 ответа

chỉ sau khi thử các quy trình xóa tiêu chuẩn tại đây:

$ consul leave
$ consul force-leave <node>

bạn nên chuyển sang bên dưới, sẽ xóa hoàn toàn nút khỏi cụm:

$ consul operator raft remove-peer
1
ответ дан 3 December 2019 в 23:30

// Для моего конкретного случая я нашел ответ в consul operator raft remove-peer .

Но я с нетерпением жду информации о том, как вообще возникает проблема, здесь:

https://github.com/hashicorp/consul/issues/3218#issuecomment-312721634

0
ответ дан 3 December 2019 в 23:30

Теги

Похожие вопросы