具有新 etcd 卷的新主节点不会加入集群



我正在使用 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>

还要检查您的 kube-apiserver 选项etcd/etc/kuberbetes/manifests/kube-apiserver.yaml下看起来正常

问题已解决。

1 - 我使用 etcdctl 从 de etcd 集群中删除了旧的主节点。你需要在 etcd 服务器容器上连接才能做到这一点。

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

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

4 - 编辑/etc/kubernetes/manifests/etcd.manifests 和 etcd-events.manifest,将ETCD_INITIAL_CLUSTER_STATE从新更改为现有。

5 - 从新主节点获取名称和对等URL,并使用 etcdctl 在集群上添加新的主节点。(etcdctl 成员添加"名称"PeerULR"(你需要在 etcd 服务器容器上连接才能做到这一点。

6 - 在新主节点上启动 kubelet 和 protokube 服务。

最新更新