【问题标题】:kubernetes failing to connect on fresh installation of CoreOSkubernetes 在全新安装 CoreOS 时无法连接
【发布时间】:2014-11-02 11:18:21
【问题描述】:

我正在(从 Windows 8.1 开始)为 CoreOS (yungsang/coreos) 运行 Vagrant VM。

我根据找到的指南安装了 kubernetes here,并使用我的图像为 pod 创建了 json。

当我执行sudo ./kubecfg list /pods 时出现以下错误:

F0909 06:03:04.626251 01933 kubecfg.go:182] Got request error: Get http://localhost:8080/api/v1beta1/pods?labels=: dial tcp 127.0.0.1:8080: connection refused

sudo ./kubecfg -h http://127.0.0.1:8080 -c /vagrant/app.json create /pods 也是如此

编辑:更新

我没有自己运行命令,而是集成到 vagrant 文件中(如such)。

这使得 Kubernetes 可以正常工作。但是一段时间后,我的 vagrant ssh 连接被关闭。我重新连接并且我指定的任何 kubernetes 命令都会导致与上述相同的错误。

编辑 2:更新

我设法让它再次运行,但我不确定它是否会顺利运行

我不得不重新执行以下命令。

sudo systemctl start etcd
sudo systemctl start download-kubernetes
sudo systemctl start apiserver
sudo systemctl start controller-manager
sudo systemctl start kubelet
sudo systemctl start proxy

我相信其实是需要重启的apiserver

这个“超时”的来源是什么? (我在哪里可以找到有关此问题的任何日志)

【问题讨论】:

  • 不知道你是否找到了我今天遇到的这个问题的解决方案。该错误基本上意味着 apiserver 服务有问题。如果有兴趣,我可以提供更多详细信息。
  • 请。由于缺乏进展,这被搁置了

标签: json vagrant docker coreos kubernetes


【解决方案1】:

Kubernetes 的开发现在发展得非常快,所以明天可能就已经过时了。考虑到这一点,kubernetes 人员建议关注他们的official installation guides 之一。最好的建议是使用新的安装指南之一重新开始,但我自己也学到了一些技巧。

首先要注意的是 Kubecfg 已被弃用,取而代之的是 kubectl。因此,如果您想获取有关 pod 的信息以供将来参考,您可以运行以下命令:

./kubectl get pods.

使用 kubectl,您还需要设置一个环境变量,以便 kubectl 知道如何与 apiserver 对话:

KUBERNETES_MASTER=http://IPADDRESS:8080.

如果您正在使用 CoreOS,最简单的调试方法是跟踪您感兴趣的服务的日志。因此,如果您有一个 kube-apiserver 单元,您可以通过运行以下命令查看发生了什么:

journalctl -f -u kube-apiserver

来自运行 apiserver 的节点。如果该服务未运行(可能是这种情况),您可以使用以下命令启动它:

systemctl start kube-apiserver

【讨论】:

  • 谢谢。在 Google Cloud Platform 网站上的“使用 Kubernetes、Redis 和 BigQuery 在 Google Cloud Platform 上进行实时数据分析”教程之后,我遇到了类似的问题:cloud.google.com/solutions/real-time/kubernetes-redis-bigquery 它指的是 kubecfg.sh,它已被弃用,取而代之的是kubectl.sh,如你所说。
  • @rdc 是的,开发仍然非常迅速,因此文档仍然很快过时。很高兴你把它整理好了!
【解决方案2】:

在 CoreOS 上,您应该使用 journalctl 查看日志。

例如,如果您希望查看 etcd 日志,Kubernetes 依靠它来存储它的 minions 的状态,运行 journalctl _COMM=etcd,类似地,journalctl _COMM=apiserver 将向您显示来自 apiserver 的日志,一个Kubernetes 中的关键组件。

如果您运行systemctl status apiserver,您还会获得最后几个日志条目。

【讨论】:

    【解决方案3】:

    根据 errordevelopers 的建议,我最近的安装遇到了类似的问题。

    使用 systemctl status apiserversudo systemctl start apiserver 我设法让环境重新启动并运行。

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 2018-03-04
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多