我正在(从Windows 8.1)运行CoreOS的Vagrant VM(yungsang/coreos)。
我根据我找到here的指南安装了kubernetes,并使用我的图片为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工作正常。但是过了一段时间我的流浪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
这个“超时”的来源是什么? (我可以在哪里找到这个问题的日志)
答案 0 :(得分:3)
Kubernetes目前的发展速度非常快,所以明天可能会过时。考虑到这一点,kubernetes人建议关注他们的一个official installation guides。最好的建议是重新开始使用其中一个新的安装指南,但我自己也学到了一些技巧。
首先要注意的是,Kubecfg正在被弃用以支持kubectl。因此,如果您想要获取有关pod的信息以供将来参考,您可以运行类似:
./kubectl get pods
。
使用kubectl你还需要设置一个env变量,以便kubectl知道如何与apiserver交谈:
KUBERNETES_MASTER=http://IPADDRESS:8080
。
如果您正在使用CoreOS,最简单的方法就是调整正在进行的操作的最简单方法是为您感兴趣的服务添加日志。因此,如果您有一个kube-apiserver
单元,您可以查看所发生的事情。运行:
journalctl -f -u kube-apiserver
来自运行apiserver的节点。如果该服务未运行(可能是这种情况),您可以使用以下命令启动它:
systemctl start kube-apiserver
答案 1 :(得分:0)
在CoreOS上,您应该使用journalctl
查看日志。
例如,如果您希望查看etcd
日志,Kubernetes依赖它来存储其小王子的状态,请运行journalctl _COMM=etcd
,同样journalctl _COMM=apiserver
将显示来自的日志apiserver
,Kubernetes的关键组成部分之一。
如果您运行systemctl status apiserver
,还会获得最后几个日志条目。
答案 2 :(得分:0)
基于errordevelopers建议,我最近的安装遇到了类似的问题。
使用systemctl status apiserver
和sudo systemctl start apiserver
我设法让环境恢复正常运行。