Kubernetes: 通过 Docker 在本地运行 Kubernetes - `kubectl get nodes` 返回`与服务器 localhost:8080 的连接被拒绝 - 你指定了正确的主机或端口吗?

创建于 2016-04-01  ·  56评论  ·  资料来源: kubernetes/kubernetes

浏览指南以通过 docker 在本地设置 kubernetes,我最终会收到上述错误消息。

采取的步骤:

  • export K8S_VERSION='1.3.0-alpha.1' (也试过 1.2.0)
  • 复制粘贴docker run命令
  • 下载适当的kubectl二进制文件并放入PATHwhich kubectl有效)
  • (可选)设置集群
  • 运行kubectl get nodes

简而言之,没有魔法。 我在 Ubuntu 14.04、docker 1.10.3 上本地运行它。 如果您需要更多信息,请告诉我

kinsupport

最有用的评论

您可以使用“kubectl config”解决此问题:

$ kubectl config set-cluster demo-cluster --server=http://master.example.com:8080
$ kubectl config set-context demo-system --cluster=demo-cluster
$ kubectl config use-context demo-system
$ kubectl get nodes
NAME                 STATUS    AGE
master.example.com   Ready     3h
node1.example.com    Ready     2h
node2.example.com    Ready     2h

所有56条评论

与版本 1.2.0 +1 有相同的问题

@xificurC @jankoprowski你检查过 apiserver 是否正在运行吗?

请查看我们的故障排除指南:
http://kubernetes.io/docs/troubleshooting/

如果您仍然需要帮助,请在 stackoverflow 上提问。

apiserver 失败:

F0421 14:28:55.140493 1 server.go:410] 无效的身份验证配置:打开 /srv/kubernetes/basic_auth.csv:没有这样的文件或目录

我也遇到了这个问题,我的 apiserver 没有失败,所有进程(apiserver、controller-manager、schdeuler、kublet 和 kube-proxy)都正常运行。 我的 docker 版本是 1.11.2,如果有人知道如何解决这个问题?

我也遇到过这个问题。 由于需要使用Kubernetes1.2.2,所以我使用docker来部署kubernetes。 发生同样的问题。 apiserver 已关闭。 日志在这里,

I0725 08:56:20.440089       1 genericapiserver.go:82] Adding storage destination for group batch
W0725 08:56:20.440127       1 server.go:383] No RSA key provided, service account token authentication disabled
F0725 08:56:20.440148       1 server.go:410] Invalid Authentication Config: open /srv/kubernetes/basic_auth.csv: no such file or directory

apiserver 失败,我无法部署 Kubernetes。 有人知道吗?

尝试使用 --server 指定您的主服务器:
kubectl --server=16.187.189.90:8080 获取 pod -o 宽

您好,我在 Centos 7 上收到以下错误,如何解决这个问题?

[root@ip-172-31-11-12 system]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?

您可以使用“kubectl config”解决此问题:

$ kubectl config set-cluster demo-cluster --server=http://master.example.com:8080
$ kubectl config set-context demo-system --cluster=demo-cluster
$ kubectl config use-context demo-system
$ kubectl get nodes
NAME                 STATUS    AGE
master.example.com   Ready     3h
node1.example.com    Ready     2h
node2.example.com    Ready     2h

就我而言,我只需要删除上次尝试留下的~/.kube/config即可。

你好,
我仍然遇到了这个问题
kubernetes-master-1.4.0-0.1.git87d9d8d.el7.x86_64
kubernetes-node-1.4.0-0.1.git87d9d8d.el7.x86_64
kubernetes-unit-test-1.4.0-0.1.git87d9d8d.el7.x86_64
kubernetes-ansible-0.6.0-0.1.gitd65ebd5.el7.noarch
kubernetes-client-1.4.0-0.1.git87d9d8d.el7.x86_64
kubernetes-1.4.0-0.1.git87d9d8d.el7.x86_64

如果我使用以下值配置 KUBE_API_ADDRESS
KUBE_API_ADDRESS="--insecure-bind-address=10.10.10.xx"
我遇到了这个错误,如果我将选项“--server=10.10.10.xx:8080”传递给cmd,它就可以工作

如果我使用以下值配置 KUBE_API_ADDRESS
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
它运作良好。

我试图使用 ansible 从远程系统获取状态,但我遇到了同样的问题。
我试过了,它奏效了。
kubectl --kubeconfig ./admin.conf 获取 pods --all-namespaces -o wide

@sumitkau类似,我解决了设置新 kubelet 配置位置的问题:
kubectl --kubeconfig /etc/kubernetes/admin.conf 没有
也可以把/etc/kubernetes/admin.conf 复制到~/.kube/config 下也行,就是不知道好不好用!

更新 /etc/kubernetes/apiserver 中的条目(在主服务器上)
KUBE_API_PORT="--port=8080"
然后执行 systemctl restart kube-apiserver

如果在 GCP 中发生这种情况,以下最有可能解决该问题:

gcloud container clusters get-credentials your-cluster --zone your-zone --project your-project

感谢@mamirkhani。 我解决了这个错误。
但是我刚刚在“kubeadm init”输出中找到了这样的信息:
_你的 Kubernetes master 已经初始化成功!
要开始使用您的集群,您需要运行(作为普通用户):
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
导出 KUBECONFIG=$HOME/admin.conf_

我认为这是推荐的解决方案。

我有同样的问题。 当通过谷歌云中的 web gui 创建集群并尝试运行 kubectl 我得到

The connection to the server localhost:8080 was refused - did you specify the right host or port?

您所要做的就是为您的集群获取 kubectl 配置,该配置将存储在 $HOME/.kubectl/config 中:

$ gcloud container clusters get-credentials guestbook2
Fetching cluster endpoint and auth data.
kubeconfig entry generated for guestbook2.

现在 kubectl 工作得很好

kubectl 期望 ~/.kube/config 作为其配置的文件名。

对我有用的快速修复是创建一个符号链接:

ln -s ~/.kube/config.conjure-canonical-kubern-e82 ~/.kube/config

注意这是一个“conjure-up kubernetes”部署。

这个问题让我困惑了 1 周,现在它似乎对我有用。 如果你有这个问题,首先你需要知道它发生在哪个节点上。

如果是主节点,则通过命令确保所有 Kubernetes pod 都在运行
kubectl get pods --all-namespaces ,

我的看起来像这样
kube-system etcd-kubernetes-master01 1/1 Running 2 6d kube-system kube-apiserver-kubernetes-master01 1/1 Running 3 6d kube-system kube-controller-manager-kubernetes-master01 1/1 Running 2 6d kube-system kube-dns-2425271678-3kkl1 3/3 Running 6 6d kube-system kube-flannel-ds-brw34 2/2 Running 6 6d kube-system kube-flannel-ds-psxc8 2/2 Running 7 6d kube-system kube-proxy-45n1h 1/1 Running 2 6d kube-system kube-proxy-fsn6f 1/1 Running 2 6d kube-system kube-scheduler-kubernetes-master01 1/1 Running 2 6d

如果没有,请验证您的 /etc/kubernetes/ 目录中是否有这些文件,
admin.conf controller-manager.conf kubelet.conf manifests pki scheduler.conf ,如果你这样做,然后用普通用户(不是ROOT用户)复制这些文件
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

然后查看 kubectl 版本是否有效,如果仍然无效,请按照https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/上的教程进行操作并拆除您的集群并重建您的掌握。

如果它发生在(从)节点上,请确保您有文件
kubelet.conf manifests pki
在 /etc/kubernetes/ 目录中,在这个 kubelet.conf 中,server 字段应该指向你的主 IP,这与你的主节点 admin.conf 的设置相同,
如果你没有 kubelet.conf,那可能是因为你还没有运行命令来将你的节点与你的 master 连接起来
kubeadm join --token f34tverg45ytt34tt 192.168.1.170:6443 ,您应该在构建主节点后获取此命令(令牌)。

在(从)节点上以普通用户身份登录后,您可能不会在 ~/.kube 中看到配置文件,然后创建此文件夹,然后将 _admin.conf_ 从主节点复制到您的 ~/.kube/ 目录中(从) 使用普通用户作为 _config_ 节点,然后进行复制并尝试 kubectl 版本,它适用于我。

虽然我知道这里可能有多种失败的原因,但在我的情况下,删除~/.kube/cache会立即有所帮助。

我有这个问题。 这个解决方案对我有用:

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

如果您没有admin.conf ,请安装kubeadm
然后删除~/.kube/cache

rm -rf ~/.kube/cache

您需要切换上下文。
kubectl config use-context docker-for-desktop

大家好,

我们需要安装 sap vora,因为 kubernetes 和 Docker 是先决条件。 我们已经安装了 kubernetes master 和 kubectl, docker 。 但是当我们检查时

kubectl 集群信息

kubectl 集群信息转储

2018-05-09 06:47:57.905806 proto:已注册的重复 proto 类型:google.protobuf.Any
2018-05-09 06:47:57.905997 proto:已注册的重复 proto 类型:google.protobuf.Duration
2018-05-09 06:47:57.906019 proto:已注册的重复 proto 类型:google.protobuf.Timestamp
与服务器 10.xxx:6443 的连接被拒绝 - 您是否指定了正确的主机或端口?

当我们检查 systemctl status kubelet -l

kubelet.service - Kubernetes Kubelet 服务器
已加载:已加载(/usr/lib/systemd/system/kubelet.service;已启用)
活动:自美国东部时间 2018 年 5 月 9 日星期三 04:17:21 以来失败(结果:开始限制); 2 小时 28 分钟前
文档: https ://github.com/GoogleCloudPlatform/kubernetes
进程:2513 ExecStart=/usr/bin/hyperkube kubelet $KUBE_LOGTOSTDERR $KUBE_LOG_LEVEL $KUBELET_API_SERVER $KUBELET_ADDRESS $KUBELET_PORT $KUBELET_HOSTNAME $KUBE_ALLOW_PRIV $KUBELET_INITIAL_ARGS $KUBELET_ARGS(代码=退出,状态=203/EXEC)
主 PID:2513(代码=已退出,状态=203/EXEC)

我们执行了以下设置

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

但没有用。 谁能帮忙

问候
卡提克

我有这个问题。 这个解决方案对我有用:
导出 KUBECONFIG=/etc/kubernetes/admin.conf

嗨地图,

我导出了高于 env,但没有用。 得到同样的错误。

2018-05-15 04:27:32.221744 proto:已注册的重复 proto 类型:google.protobuf.Any
2018-05-15 04:27:32.221912 proto:已注册的重复 proto 类型:google.protobuf.Duration
2018-05-15 04:27:32.221936 proto:已注册的重复 proto 类型:google.protobuf.Timestamp
与服务器 10.xxx:6443 的连接被拒绝 - 您是否指定了正确的主机或端口

我还更改了 kubelet 服务和配置文件条目,仍然没有用。

问候
卡提克

嗨,卡蒂克,

也许您可以尝试查看有关 kubelet 服务的日志。

我得到了错误

[admin ~]$ kubectl cluster-info
Kubernetes master is running at https://xxxxx:6443

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
The connection to the server xxxxx:6443 was refused - did you specify the right host or port?
[admin~]$ kubectl cluster-info dump
The connection to the server xxxx:6443 was refused - did you specify the right host or port?

使用kubectl get pods --all-namespaces时出现相同的错误

您好,我在 Centos 7 上收到以下错误,如何解决这个问题?

[root@ip-172-31-11-12 system]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?

我想你还没有安装 kubeadm .... 先安装 kubeadm 然后尝试

好的会这样做

2018 年 9 月 17 日星期一 08:04,Karthik Nair [email protected]写道:

您好,我在 Centos 7 上收到以下错误,如何解决这个问题
问题?

[ root@ip-172-31-11-12系统]# kubectl 获取节点
与服务器localhost:8080的连接被拒绝 - 您是否指定了正确的主机或端口?

我想你还没有安装 kubeadm .... 先安装 kubeadm 然后
尝试


您收到此消息是因为您订阅了此线程。
直接回复此邮件,在 GitHub 上查看
https://github.com/kubernetes/kubernetes/issues/23726#issuecomment-421909051
或使线程静音
https://github.com/notifications/unsubscribe-auth/AkFH4U0Cwjeg2Y4sL8irk5velVQDj6u2ks5sub0lzgaJpZM4H9nxM
.

>

亲切的问候,

比什努·苏努瓦尔

您必须先运行这些命令 -

[ user@k8s-master ~]# mkdir -p $HOME/.kube
[ user@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[ user@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

在 Mac OS High Sierra 上运行,我通过在 Docker 本身中启用 Kubernetes 来解决这个问题。

screen shot 2018-10-16 at 12 48 10 pm

screen shot 2018-10-16 at 12 48 49 pm

我遇到的问题是“与服务器 10.0.48.115:6443 的连接被拒绝 - 您是否指定了正确的主机或端口?”

kubectl 版本

客户端版本:version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.1", GitCommit:"4ed3216f3ec431b140b1d899130a69fc671678f4", GitTreeState:"clean", BuildDate:"2018-10-05T16:46: 06Z”,GoVersion:“go1.10.4”,编译器:“gc”,平台:“linux/amd64”}
与服务器 10.0.48.115:6443 的连接被拒绝 - 您是否指定了正确的主机或端口?

谁能提供帮助? 欣赏

从 ~/.kube 中删除旧配置,然后重新启动 docker(对于 macos)并重建配置文件夹。 现在,当我执行“kubectl get nodes”时,一切都很好。

删除minikube虚机及配置文件,重新安装minikube(v0.25.2),其他版本可能会有坑

$ minikube delete
$ rm -rf ~/.minikube
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.25.2/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

使用以下命令。 它对我有用。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

使用以下命令。 它对我有用。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

谢谢! 这行得通!

在我的情况下,我已经重启了kubernetes的主节点,并且在重启时,内存交换的SWAP分区默认启用

  1. 须藤systemctl status kubelet
kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           └─10-kubeadm.conf, 90-local-extras.conf
   Active: activating (auto-restart) (Result: exit-code) since 금 2018-04-20 15:27:00 KST; 6s ago
     Docs: http://kubernetes.io/docs/
  Process: 17247 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=255)
 Main PID: 17247 (code=exited, status=255)
  1. 须藤swapon -s
Filename    type        size    Used    priority
/dev/sda6   partition   950267  3580    -1
  1. 须藤swapoff /dev/sda6

  2. 须藤systemctl status kubelet

● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since Mon 2019-01-14 08:28:56 -05; 15min ago
     Docs: https://kubernetes.io/docs/home/
 Main PID: 7018 (kubelet)
    Tasks: 25 (limit: 3319)
   CGroup: /system.slice/kubelet.service
           └─7018 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes
  1. kubectl get nodes
NAME        STATUS   ROLES    AGE   VERSION
k8smaster   Ready    master   47h   v1.13.2
k8snode1    Ready    <none>   45h   v1.13.2
k8snode2    Ready    <none>   45h   v1.13.2

我没有运行这个。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

导致问题。

ip route add default via xxx.xxx.xxx.xxx on k8s master

$ kubectl apply -f Deployment.yaml
无法识别“Deployment.yaml”:获取http://localhost :8080/api?timeout=32s:拨打 tcp 127.0.0.1:8080:连接:连接被拒绝
无法识别“Deployment.yaml”:获取http://localhost :8080/api?timeout=32s:拨打 tcp 127.0.0.1:8080:连接:连接被拒绝

在 Mac OS High Sierra 上运行,我通过在 Docker 本身中启用 Kubernetes 来解决这个问题。

screen shot 2018-10-16 at 12 48 10 pm

screen shot 2018-10-16 at 12 48 49 pm

有用。 非常简单。 如果您使用的是桌面软件,最好先从偏好设置中找到解决方案。 哈哈。

在 Mac OS High Sierra 上运行,我通过在 Docker 本身中启用 Kubernetes 来解决这个问题。

screen shot 2018-10-16 at 12 48 10 pm

screen shot 2018-10-16 at 12 48 49 pm

tks

好吧,这听起来可能很愚蠢,但也许你没有安装 miniKube 来在本地运行你的集群

如果您有 minikube,请尝试重新安装或尝试使用kubectl proxy --port=8080

好的,在 docker for Mac (v 2.0.5.0) 上,有两个设置都需要切换。

docker

确保它删除了所有容器

docker rm -f $(docker ps -aq)

确保所有容器都已删除后,重新启动 kubelet

systemctl restart kubelet

[ mayuchau@cg-id .kube]$ kubectl 获取节点
与服务器localhost:8080的连接被拒绝 - 您是否指定了正确的主机或端口?

我正在克服错误。 我尝试了上述解决方案,但它对我不起作用。

[ mayuchau@cg-id .kube]$ kubectl 获取节点
与服务器localhost:8080的连接被拒绝 - 您是否指定了正确的主机或端口?

我正在克服错误。 我尝试了上述解决方案,但它对我不起作用。

验证主节点中 /var/run/docker.sock 的权限后问题已解决

这是我解决它的方法:

  1. 确保已安装 kubectl。 检查它使用:
    gcloud components list
    如果没有先安装 kubectl。

  2. 转到 gcloud 平台上项目的 Kubernetes 引擎控制台。

  3. 在那里与您的项目所在的集群连接。 它将为您提供在本地命令提示符/终端中运行的命令。 例如,它看起来像:

gcloud container clusters get-credentials <Cluster_Name> --zone <Zone> --project <Project_Id>

成功运行此命令后,您将能够运行:
kubectl get nodes

浏览指南以通过 docker 在本地设置 kubernetes,我最终会收到上述错误消息。

采取的步骤:

  • export K8S_VERSION='1.3.0-alpha.1' (也试过 1.2.0)
  • 复制粘贴docker run命令
  • 下载适当的kubectl二进制文件并放入PATHwhich kubectl有效)
  • (可选)设置集群
  • 运行kubectl get nodes

简而言之,没有魔法。 我在 Ubuntu 14.04、docker 1.10.3 上本地运行它。 如果您需要更多信息,请告诉我

谢谢!!!
这提醒我,我的 ~/.bashrc 中没有用于 KUBEKONFIG 系统变量的变量导出。
添加解决了我的问题!

例如:
### ADD in ~/.bashrc
export KUBECONFIG=$HOME/.kube/eksctl/clusters/serv-eks-dev

这个问题的一个可能原因是,kube config 中的current context被一些工具删除了,并且没有保留当前上下文。

检查:

kubectl config get-contexts

如果没有current上下文,请使用以下命令创建一个当前:

kubectl config use-context <context name>

我遇到了类似的问题,已解决
export KUBECONFIG=/etc/kubernetes/admin.conf

如果它对任何人有帮助(我通过 Google 搜索错误来到这里),我的 Docker Desktop for Mac 默认禁用了 Kubernetes。 勾选Enabled KubernetesApply & Restart可以解决错误。
image

在 Mac OS 中:我正在通过 Docker 在本地运行 Kubernetes,具体来说是https://k3d.io/-所以安装后,一旦创建集群,如果我执行命令kubectl cluster-info返回
与服务器 0.0.0.0:51939 的连接被拒绝 - 您是否指定了正确的主机或端口? 有人对这个问题有任何指示吗?

PS: Docker , docker-machine 通过 Homebrew 安装

kubectl config get-contexts返回@navkmurthy 是什么?

navkmurthy$ k3d 集群创建 -p 5432:30080@agent [0] -p 9082:30081@agent [0] --agents 3 --update-default-kubeconfig
信息 [0000] 创建网络 'k3d-k3s-default'
信息 [0000] 创建卷 'k3d-k3s-default-images'
信息 [0001] 创建节点“k3d-k3s-default-server-0”
信息 [0001] 创建节点“k3d-k3s-default-agent-0”
信息 [0002] 创建节点“k3d-k3s-default-agent-1”
信息 [0003] 创建节点“k3d-k3s-default-agent-2”
信息 [0004] 创建负载平衡器“k3d-k3s-default-serverlb”
INFO[0024] 集群“k3s-default”创建成功!
INFO[0024] 您现在可以像这样使用它:
kubectl 集群信息
navkmurthy$ kubectl 集群信息

要进一步调试和诊断集群问题,请使用“kubectl cluster-info dump”。
与服务器 0.0.0.0:53706 的连接被拒绝 - 您是否指定了正确的主机或端口?

@paulmwatson

navkmurthy$ kubectl 配置获取上下文
当前名称集群 AUTHINFO 命名空间

导航$

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

mml picture mml  ·  3评论

chowyu08 picture chowyu08  ·  3评论

sjenning picture sjenning  ·  3评论

Seb-Solon picture Seb-Solon  ·  3评论

arun-gupta picture arun-gupta  ·  3评论