Восстановление из сбойного кластера etcd2 / CoreOS

У меня есть кластер из 3 машин CoreOS, работающих на Azure. Я перезагрузил два одновременно, и кластер отказал как ожидалось.

Мне нужно заменить токен обнаружения, cloud-config читается при каждой загрузке, но в соответствии с документацией CoreOS:

После подготовки экземпляра в Azure конфигурацию облака нельзя изменить.

Есть ли способ для восстановления после этого, кроме разрушения и последующего развертывания нового кластера?

3 ответа

Там файл конфигурации существует в местоположении

/var/lib/waagent/CustomData

С помощью

sudo vim /var/lib/waagent/CustomData

Вы должны иметь возможность редактировать его. После перезагрузки настройки подберут.

Если вы удаляете два узла в кластере из трех узлов, вы теряете кворум, с тремя узлами вы можете потерять только один узел для получения дополнительной информации о отказоустойчивости для CoreOS:

Fault Tolerance Table

It is recommended to have an odd number of members in a cluster. Having an odd cluster size doesn't change the number needed for majority, but you gain a higher tolerance for failure by adding the extra member. You can see this in practice when comparing even and odd sized clusters:
Cluster Size    Majority    Failure Tolerance
1   1   0
3   2   1
4   3   1
5   3   2
6   4   2
7   4   3
8   5   3
9   5   4

https://coreos.com/etcd/docs/latest/admin_guide.html

Вы можете попробовать изменить определение сервиса etcd в /run/systemd/system/etcd.service.d/20-cloudinit.conf - вы должны увидеть что-то вроде

[Service]
Environment="ETCD_ADDR=10.1.1.1:4001"
Environment="ETCD_DISCOVERY=https://discovery.etcd.io/47fabddb4eed191a09bf5b70ba93426a"
Environment="ETCD_PEER_ADDR=10.1.1.1:7001"

Измените URL-адрес обнаружения на новый, а затем перезапустите его.

systemctl daemon-reload
systemctl restart etcd

Вам нужно будет проверить, переживет ли это перезагрузку в Azure!

Другие вопросы по тегам