Removendo um nó CoreOS antigo do discovery.etcd.io

1

Eu removi um nó de um cluster CoreOS e criei um novo em seu lugar. Infelizmente, ele pegou o mesmo IP da máquina antiga.

Isso impediu que o etcd descobrisse o restante do cluster, com mensagens como esta no diário: "failed: fail on join request: o endereço do peer já existia"

Como posso remover o nó antigo do arquivo discovery.etcd.io?

    
por Paul Dixon 08.04.2015 / 22:20

1 resposta

4

Resposta curta se você souber o ID da máquina

Envie uma solicitação HTTP DELETE para https://discovery.etcd.io/<cluster-id>/<machine-id>

por exemplo,

curl https://discovery.etcd.io/abcdef0123456789abcdef0123456789/7cf9a5cf5e3b4baea82e28618bffeaf5 -XDELETE

Resposta mais longa - como encontrar o ID da máquina para excluir

Primeiro, busque o objeto JSON do seu URL de descoberta, por exemplo,

https://discovery.etcd.io/abcdef0123456789abcdef0123456789

Será parecido com isto:

{
  "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
  }
}

Digamos que nosso IP reutilizado seja 10.132.47.218 - queremos identificar o ID da máquina que corresponde a isso. Podemos ver pela chave que é 6148dbb812a44dbe8773bebf329634e7

Agora podemos excluir isso simplesmente usando um verbo DELETE

curl https://discovery.etcd.io/abcdef0123456789abcdef0123456789/7cf9a5cf5e3b4baea82e28618bffeaf5 -XDELETE
    
por 08.04.2015 / 22:20

Tags