etcd 和 kubernetes:无法连接到 etcd 实例

etcd 和 kubernetes:无法连接到 etcd 实例

目前我正在“从头开始”遵循 k8s 指南(在此处找到:关联,到目前为止,一切似乎都很清楚,尽管我开始时没有做所有的证书工作。

我在 master 上启动了 kubelet,并添加了 etcd.manifest 文件找到这里

Kubelet 找到清单文件并启动两个容器:一个容器运行 etcd 并在“暂停”时处理端口映射:0.0.0.0:2379-2380->2379-2380/tcp。

不幸的是,我无法通过执行 telnet IP_OF_SERVER:2379 oder 2380 来访问 etcd。在本地主机上执行此操作(telnet 127.0.0.1 2379)会导致直接关闭连接。

几秒钟后,kubeletes 健康检查失败并且容器关闭:

Jul 05 16:32:43 reactprd01.abc.com kubelet[18003]: I0705 16:32:43.834839   18003 manager.go:1751] pod "etcd-serverreact-reactprd01.abc.com_kube-system(b5a9f2d68d0d6160eed4a802d1afa5a7)" container "etcd-container" is unhealthy, it will be killed and re-created.
Jul 05 16:32:43 reactprd01.abc.com kubelet[18003]: I0705 16:32:43.835232   18003 manager.go:1371] Killing container "02df58ce685fd220cc19e6a38e8a5823de2699d869b5bb1789c50f1a6baa462b etcd-container kube-system/etcd-serverreact-reactprd01.abc.com" with 30 second grace period

知道发生了什么吗?我将所有占位符(例如 {{ port }} )替换为数据。我在谷歌上也找不到任何东西。

谢谢您的建议:)

答案1

根据您链接到的 etcd.manifest 文件,etcd 的 stdout 和 stderr 被重定向到作为卷挂载的文件/var/log/etcd-serverreact.log。该文件可能不存在,或者您的内核不支持将文件(而不是目录)绑定挂载到 Docker 容器中。而且,从长远来看,文件中可能有一个错误消息。

相关内容