Kubernetes无法发现受支持的资源:getsockopt:连接被拒绝

时间:2018-06-27 16:45:15

标签: docker kubernetes google-kubernetes-engine

我正在通过Udacity的kubernetes教程。当我使用以下命令运行Nginx图像

kubectl run nginx --image=nginx:1.10.0

它给了我错误

  

错误:未能发现支持的资源:获取http://localhost:8080/apis/extensions/v1beta1:拨打tcp 127.0.0.1:8080:getsockopt:连接被拒绝

如果我尝试使用以下命令获取豆荚

kubectl get pods

  

与服务器localhost:8080的连接被拒绝-您指定了正确的主机或端口吗?

我知道nginx服务器正在运行,因为我可以通过运行curl http://127.0.0.1

获得适当的输出。

我无法弄清楚问题是什么,并且互联网上没有很多资源可以解决此问题。谁能告诉我该如何解决?

6 个答案:

答案 0 :(得分:3)

检查您的kubectl配置文件(~/.kube/config

出于测试目的,您可以使用管理员之一:

kubectl --kubeconfig /etc/kubernetes/admin.conf get po

或者(再次进行测试)

sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf

您可以在kubernetes/kubernetes issue 23726

中看到更多建议

如下所述,需要kubernetes to be installed,节点才能加入集群:

sudo kubeadm join --token TOKEN MASTER_IP:6443

答案 1 :(得分:3)

kubectl找不到所需群集的配置凭据时,通常会发生此问题。

检查$HOME/.kube/config的群集配置。如果配置为空或为错误的群集设置了配置,请通过运行重新生成配置,

gcloud container clusters get-credentials <CLUSTER_NAME> --zone <ZONE>

这将更新$HOME/.kube/config中的配置凭据。

现在,一切都会按预期进行。

参考:https://github.com/googlecodelabs/feedback/issues/537

答案 2 :(得分:1)

该解决方案很简单,正如@VonC建议的那样,我没有安装kubernetes,我按照this教程进行了学习,现在我可以继续进行工作了。

答案 3 :(得分:0)

在某些情况下,这仅仅是因为您需要以root用户身份使用kubectl run命令(例如,对它进行sudo操作)。

答案 4 :(得分:0)

  

未能发现支持的资源...

kubectl命令行工具在端口8443与kube-apiserver连接以进行操作。

要检查apiserver是否已启动,请尝试curl https://192.168.99.100:8443

如果失败,则表明kube-apiserver没有运行。 minikube很可能不会运行。

所以尝试:

  1.   

    minikube状态

         

    minikube开始

OR

  1. 重启虚拟机

答案 5 :(得分:0)

您需要先设置区域:

gcloud config set compute/zone us-central1-b

然后在其中添加集群:

gcloud container clusters create io

现在您可以运行命令了。 让我知道那里是否有问题:)