Skip to content

Consul - EnsureRegistration failed (node name is reserved by node)

Projev

Node neregistruje nove sluzby, zda se jako by byl read only

V logu vidim hlasky tohoto typu

agent.fsm: EnsureRegistration failed: error="failed inserting node: Error while renaming Node ID: "f8d2e4a9-c59e-ac74-444a-dbdc74c3c5e6": Node name n1.de1.easy2.cloud is reserved by node 
c021f413-c73a-5127-927b-6592779d4da6 with name n1.de1.easy2.cloud (5.9.19.233)"
...

Popis

Je to chyba objevujici se snad ve vsech verzich consula, na internetu jsem nenasel konkretni priciny, ale v nasem pripade to asi vzniklo deregistraci a registraci nodu, kde nedoslo ke kompletni deregistraci, protoze nove id bylo to aktualni.

Reseni

Restart nodu nepomaha a pouhe odebrani nodu uz take nestaci (ani z rozbiteho, ani z leader nodu)

Nezapomen snapshot

Nez zacnu cokoli delat tak pro jistotu, udelam snapshot consula, sice v nem nemame nic co se nedoplni samo z nomada, ale opatrnost je zde urcite ku prospechu.

consul snapshot save safety-first.snap

Ale dobre funguje toto:

  • zjistim ktery node je leader

    consul operator raft list-peers
    

  • Je nutne stopnout consula na rozbitem node, v prikladu vyse je to n1.de1

    systemctl stop consul
    

  • Zazalohuji si pro jistotu data consula, ale je nepravdepodobne, ze je pouziju

    cp -a /opt/consul /opt/BACKUP_consul
    

  • Smazu puvodni data (opatrne)

    rm -rf /opt/consul/* 
    

  • prihlasim se na leader node a provedu odebrani rozbiteho nodu

    consul force-leave -prune n1.de1.easy2.cloud
    

  • pockam az se vse dokonci a overim stav clusteru

    consul members
    
    # nebo varianta ukazujici i ID a info o leaderovi
    
    consul operator raft list-peers
    

  • pokud je node odebrany a zbytek clusteru funguje, pristoupim k poslednimu kroku