CoreOSクラスターからノードを削除し、その場所に新しいノードを立ち上げました。残念ながら、古いマシンと同じIPを取得しました。
これにより、etcdはクラスターの残りの部分を検出できなくなり、ジャーナルに次のようなメッセージが表示されます。「失敗:参加要求で失敗:ピアアドレスが存在しました」
どうすればdiscovery.etcd.ioから古いノードを削除できますか?
HTTPDELETEリクエストをhttps://discovery.etcd.io/<cluster-id>/<machine-id>
に送信します
例えば.
curl https://discovery.etcd.io/abcdef0123456789abcdef0123456789/7cf9a5cf5e3b4baea82e28618bffeaf5 -XDELETE
まず、検出URLからJSONオブジェクトをフェッチします。
https://discovery.etcd.io/abcdef0123456789abcdef0123456789
次のようになります。
{
"action": "get",
"node": {
"key": "\/_etcd\/registry\/abcdef0123456789abcdef0123456789",
"dir": true,
"nodes": [
{
"key": "\/_etcd\/registry\/abcdef0123456789abcdef0123456789\/6148dbb812a44dbe8773bebf329634e7",
"value": "http:\/\/10.132.47.218:7001",
"expiration": "2015-04-15T17:58:12.753046544Z",
"ttl": 598570,
"modifiedIndex": 453369429,
"createdIndex": 453369429
},
{
"key": "\/_etcd\/registry\/abcdef0123456789abcdef0123456789\/646fbdaee73544e6ac289894e935f0c7",
"value": "http:\/\/10.132.47.218:7001",
"expiration": "2015-04-15T18:30:03.08506867Z",
"ttl": 600480,
"modifiedIndex": 453418705,
"createdIndex": 453418705
},
{
"key": "\/_etcd\/registry\/abcdef0123456789abcdef0123456789\/05e0decf1d9240819382db7a7f8ff2e7",
"value": "http:\/\/10.132.58.166:7001",
"expiration": "2015-04-14T23:47:31.402148037Z",
"ttl": 533129,
"modifiedIndex": 451690943,
"createdIndex": 451690943
},
{
"key": "\/_etcd\/registry\/abcdef0123456789abcdef0123456789\/af2783b2327e4f3a9b6e7ea169814a06",
"value": "http:\/\/10.132.58.167:7001",
"expiration": "2015-04-14T23:47:38.676204353Z",
"ttl": 533136,
"modifiedIndex": 451691169,
"createdIndex": 451691169
}
],
"modifiedIndex": 426955695,
"createdIndex": 426955695
}
}
再利用されたIPが10.132.47.218
であるとしましょう-それに対応するマシンIDを識別したいとします。キーから、これは6148dbb812a44dbe8773bebf329634e7
であることがわかります。
これで、DELETE動詞を使用してこれを削除できます。
curl https://discovery.etcd.io/abcdef0123456789abcdef0123456789/7cf9a5cf5e3b4baea82e28618bffeaf5 -XDELETE