Kubernetes 具有新etcd卷的新主机未加入群集中

Kubernetes 具有新etcd卷的新主机未加入群集中,kubernetes,kubectl,coreos,etcd,kops,Kubernetes,Kubectl,Coreos,Etcd,Kops,我正在使用KOPS,我有一个包含3个主节点的集群。我删除了一个主机和磁盘(根磁盘和etcd磁盘(主和事件)) 现在kops重新创建了这个主节点和磁盘,但是这个新的主节点无法加入集群。kube apiserver上的错误消息为 controller.go:135] Unable to perform initial IP allocation check: unable to refresh the service IP block: client: etcd cluster is unavail

我正在使用KOPS,我有一个包含3个主节点的集群。我删除了一个主机和磁盘(根磁盘和etcd磁盘(主和事件))

现在kops重新创建了这个主节点和磁盘,但是这个新的主节点无法加入集群。kube apiserver上的错误消息为

controller.go:135] Unable to perform initial IP allocation check: unable to refresh the service IP block: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 127.0.0.1:4001: getsockopt: connection refused

有什么想法吗?

看起来您的
etcd
服务器在该主机上关闭了。它可能无法与其他主机上的
etcd
服务器同步

您可以这样检查:

$ sudo docker ps | grep etcd
如果你什么也看不到,那它就掉下来了。然后,您可以检查“已退出”etcd容器的日志:

$ sudo docker ps -a | grep Exited | grep etcd
$ sudo docker logs <etcd-container-id>
$sudo docker ps-a | grep退出| grep etcd
$sudo docker日志
同时检查
etcd的kube apiserver选项在
/etc/kuberbetes/manifests/kube apiserver.yaml
问题解决后是否正常

1-我使用etcdctl从de etcd集群中删除了旧主机。您需要连接到etcd服务器容器才能执行此操作

2-在新的主节点上,我停止了kubelet和protokube服务

3-空Etcd数据目录。(数据和数据事件)

4-编辑/etc/kubernetes/manifests/etcd.manifests和etcd-events.manifests将etcd_初始_集群_状态从新更改为现有

5-从新主机获取名称和PeerUrl,并使用etcdctl在集群上添加新主机。(etcdctl成员添加“name”“PeerULR”)您需要连接到etcd服务器容器才能执行此操作

6-在新主机上启动kubelet和protokube服务