2016-11-14 19 views
1

Эй У меня есть несоответствие кластера идентификатор по какой-то причине, я бы его на 1 узел затем disapperead после очистки данных реж несколько раз, меняя кластер лексем и узлов имен, но apperead на другойetcd кластера ID mistmatch

здесь скрипт я использую

IP0=10.150.0.1 
IP1=10.150.0.2 
IP2=10.150.0.3 
IP3=10.150.0.4 
NODENAME0=node0 
NODENAME1=node1 
NODENAME2=node2 
NODENAME3=node3 

# changing these on each box 
THISIP=$IP2 
THISNODENAME=$NODENAME2 

etcd --name $THISNODENAME --initial-advertise-peer-urls http://$THISIP:2380 \ 
--data-dir /root/etcd-data \ 
--listen-peer-urls http://$THISIP:2380 \ 
--listen-client-urls http://$THISIP:2379,http://127.0.0.1:2379 \ 
--advertise-client-urls http://$THISIP:2379 \ 
--initial-cluster-token etcd-cluster-2 \ 
--initial-cluster $NODENAME0=http://$IP0:2380,$NODENAME1=http://$IP1:2380,$NODENAME2=http://$IP2:2380,$NODENAME3=http://$IP3:2380 \ 
--initial-cluster-state new 

Я получаю

2016-11-11 22:13:12.090515 I | etcdmain: etcd Version: 2.3.7 
2016-11-11 22:13:12.090643 N | etcdmain: the server is already initialized as member before, starting as etcd member... 
2016-11-11 22:13:12.090713 I | etcdmain: listening for peers on http://10.150.0.3:2380 
2016-11-11 22:13:12.090745 I | etcdmain: listening for client requests on http://10.150.0.3:2379 
2016-11-11 22:13:12.090771 I | etcdmain: listening for client requests on http://127.0.0.1:2379 
2016-11-11 22:13:12.090960 I | etcdserver: name = node2 
2016-11-11 22:13:12.090976 I | etcdserver: data dir = /root/etcd-data 
2016-11-11 22:13:12.090983 I | etcdserver: member dir = /root/etcd-data/member 
2016-11-11 22:13:12.090990 I | etcdserver: heartbeat = 100ms 
2016-11-11 22:13:12.090995 I | etcdserver: election = 1000ms 
2016-11-11 22:13:12.091001 I | etcdserver: snapshot count = 10000 
2016-11-11 22:13:12.091011 I | etcdserver: advertise client URLs = http://10.150.0.3:2379 
2016-11-11 22:13:12.091269 I | etcdserver: restarting member 7fbd572038b372f6 in cluster 4e73d7b9b94fe83b at commit index 4 
2016-11-11 22:13:12.091317 I | raft: 7fbd572038b372f6 became follower at term 8 
2016-11-11 22:13:12.091346 I | raft: newRaft 7fbd572038b372f6 [peers: [], term: 8, commit: 4, applied: 0, lastindex: 4, lastterm: 1] 
2016-11-11 22:13:12.091516 I | etcdserver: starting server... [version: 2.3.7, cluster version: to_be_decided] 
2016-11-11 22:13:12.091869 E | etcdmain: failed to notify systemd for readiness: No socket 
2016-11-11 22:13:12.091894 E | etcdmain: forgot to set Type=notify in systemd service file? 
2016-11-11 22:13:12.096380 N | etcdserver: added member 7508b3e625cfed5 [http://10.150.0.4:2380] to cluster 4e73d7b9b94fe83b 
2016-11-11 22:13:12.099800 N | etcdserver: added member 14c76eb5d27acbc5 [http://10.150.0.1:2380] to cluster 4e73d7b9b94fe83b 
2016-11-11 22:13:12.100957 N | etcdserver: added local member 7fbd572038b372f6 [http://10.150.0.2:2380] to cluster 4e73d7b9b94fe83b 
2016-11-11 22:13:12.102711 N | etcdserver: added member d416fca114f17871 [http://10.150.0.3:2380] to cluster 4e73d7b9b94fe83b 
2016-11-11 22:13:12.134330 E | rafthttp: request cluster ID mismatch (got cfd5ef74b3dcf6fe want 4e73d7b9b94fe83b) 

другие члены даже не работает, как это возможно?

Спасибо

ответ

1

Для всех тех, кто наткнуться на это от Google:

Ошибка о пэра члена ID, который пытается присоединиться к кластеру с таким же именем, как другой член (вероятно, старый экземпляр), который уже существует в кластере (с тем же именем пэра, но с другим ID, это проблема).

вы должны удалить пира и повторно добавить его, как показано на этой полезной пост: https://ngineered.co.uk/blog/how-to-replace-a-etcd-node

Использование «в списке пользователей etcdctl», чтобы найти то, что являются идентификаторами нынешних членов, и найти тот, который пытается присоединиться кластер с неправильным идентификатором, а затем удалите его из «членов» с помощью «etcdctl member remove» и попытайтесь присоединиться к нему. Надеюсь, это поможет.

0

My -data-dir =/var/etcd/data, удалять и воссоздавать его, что работает для меня. Кажется, что что-то из предыдущего кластера etcd, которое я сделал в этом каталоге, может повлиять на настройки etcd.

0

я столкнулась с той же проблемой, наш лидер etcd сервер пошел вниз и после замены его новым, мы получали ошибку

rafthttp: request sent was ignored (cluster ID mismatch) 

Он ищет старый кластер-Id и создать некоторые случайный локальный кластер с некоторой неправильной конфигурацией.

Последующие действия были предприняты для устранения проблемы.

  1. Войти в другой рабочей группе и удаления недоступного элемента из кластера

    etcdctl cluster-health etcdctl member remove member-id

  2. Войти на новый сервер и остановится, если etcd процесс запущен systemctl etcd2 stop

  3. Удалить данные из каталог данных rm -rf /var/etcd2/data Перед удалением сохраните резервную копию этих данных в другой папке.

  4. Теперь запустите кластер с параметром --initial-cluster-state existing, не используйте --initial-cluster-state new, если вы уже добавляете сервер в существующий кластер.

  5. Теперь вернемся к одному из запущенного сервера etcd и добавить новый элемент кластера etcdctl member add node0 http://$IP:2380

Я потратил много времени на отладку этот вопрос, и теперь мой кластер работает здоровым со всеми члены. Надеюсь, эта информация поможет.

0

в моем случае я получил ошибку

rafthttp: запрос кластера ID рассогласования (получил 1b3a88599e79f82b хочет b33939d80a381a57)

из-за неправильную конфигурацию на одном узле

мои два узла получил в конфигурации

окр ETCD_INITIAL_CLUSTER = "etcd-01 = http://172.16.50.101:2380,etcd-02=http://172.16.50.102:2380,etcd-03=http://172.16.50.103:2380"

и один узел получил

окр ETCD_INITIAL_CLUSTER = "etcd-01 = http://172.16.50.101:2380"

решить эту проблему я остановился etcd на всех узлах, отредактированный неправильный конфиг, удален/вар/Библиотека/etcd/папки член во всех узлах, перезапущен etcd на всех узлах и вуаля!

p.s.

/var/lib/etcd - это папка, где и т.д. сохраняют свои данные в моем случае