У меня есть кластер из 3 машин CoreOS, работающих в Azure. Я перезагрузил два одновременно, и кластер вышел из строя, как и ожидалось.
Мне нужно заменить токен обнаружения, облачная конфигурация читается при каждой загрузке, но согласно документам CoreOS:
После подготовки экземпляра в Azure конфигурацию облака изменить нельзя.
Есть ли способ избавиться от этого, кроме уничтожения, а затем развертывания нового кластера?
там файл конфигурации существует в месте
/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!