Azureで実行されている3台のCoreOSマシンのクラスターがあります。 2つを同時に再起動しましたが、クラスターが期待どおりに失敗しました。
ディスカバリートークンを置き換える必要があります。cloud-configは起動のたびに読み取られますが、CoreOSのドキュメントによると:
インスタンスがAzureでプロビジョニングされると、cloud-configを変更することはできません。
新しいクラスターを破棄して展開する以外に、これから回復する方法はありますか?
場所に構成ファイルが存在します
/var/lib/waagent/CustomData
使用する
Sudo vim /var/lib/waagent/CustomData
あなたはそれを編集することができるはずです。再起動後、構成が適用されます。
CoreOSのフォールトトレランスの詳細については、3ノードクラスター内の2つのノードを削除すると、クォーラムが失われ、3つのノードでは1つのノードしか失うことができなくなります。
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
/run/systemd/system/etcd.service.d/20-cloudinit.conf
でetcdサービス定義を変更してみることができます-次のようなものが表示されるはずです
[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を新しいURLに変更してから、再起動します
systemctl daemon-reload
systemctl restart etcd
ただし、これがAzureでの再起動に耐えられるかどうかをテストする必要があります。