web-dev-qa-db-ja.com

失敗したetcd2 / CoreOSクラスターから回復する

Azureで実行されている3台のCoreOSマシンのクラスターがあります。 2つを同時に再起動しましたが、クラスターが期待どおりに失敗しました。

ディスカバリートークンを置き換える必要があります。cloud-configは起動のたびに読み取られますが、CoreOSのドキュメントによると:

インスタンスがAzureでプロビジョニングされると、cloud-configを変更することはできません。

新しいクラスターを破棄して展開する以外に、これから回復する方法はありますか?

1
Mark

場所に構成ファイルが存在します

/var/lib/waagent/CustomData

使用する

Sudo vim /var/lib/waagent/CustomData

あなたはそれを編集することができるはずです。再起動後、構成が適用されます。

1
Tadas Šubonis

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
0
c4f4t0r

/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での再起動に耐えられるかどうかをテストする必要があります。

0
Paul Dixon