rancher新增etcd節點的問題
rancher叢集初始狀態:
1個 master + etcd +worker
1個worker
kube-apiserver程序為:
etcd程序為:
修改:
新增一個 etcd + master,上面的程序為:
kube-apiserver:
etcd程序:
出現的問題:
- 原有的etcd程序要將新的etcd新增到叢集中,但是,報錯為:
2018-11-27 08:44:26.674238 E | rafthttp: request cluster ID mismatch (got 3ab081c7572f57ca want e264d9f06628a989)
- 由於添加出錯,原有的etcd就不斷嘗試新增,但是該過程中2379的埠是不listen的,由於etcd出現問題,原有的kube-apiserver也就沒法正常工作,所以,就算想刪除新加的節點也是無計可施;
- 如何讓etcd放棄新增新節點呢?
思考:
- etcd新節點啟動的時候應該 –initial-cluster-state=existing 才對吧? 否則,它怎麼能知道自己需要加入到別的叢集呢?
- 由於etcd新節點設定了 –initial-cluster-state=new ,而且初始的叢集成員只有自己:
--initial-cluster=etcd-k8s-node-3=https://192.168.56.34:2380
所以,理所當然地啟動起來就可以工作了,自己就是一個全新的叢集了 - 由於新節點上kube-apiserver配置的etcd後端就是etcd新節點,所以,kube-apiserver 也不知道自己是需要維護原有叢集,而不是新建叢集的,所以就直接訪問新的etcd開始初始化一個新的叢集了
- 所以,rancher這裡實現的是不是有問題?