kubectl:与服务器的连接被拒绝

kubectl: Connection to server was refused

当我 运行 kubectl run ... 或任何命令时,我收到一条错误消息说

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

这个错误到底是什么以及如何解决?

我真的不太了解kubectl...但是我知道的连接被拒绝的各种原因如下

  • 1) 确保您可以使用 IP (127.XX.XX.XX) 解析和 ping 本地主机,如果使用 DNS 或主机文件,还可以 "localhost"。

  • 2) 如果尝试使用本地主机,请确保尝试访问本地主机的服务有足够的权限 运行 作为 root。

  • 3) 使用 netstat 检查端口并在 "Plantu" 标志中检查您需要的适当标志,查看每个标志的含义,因为它适用于您的情况.如果您尝试在本地主机上访问的服务正在侦听该端口,netstat 会通知您。

  • 4) 检查您的应用程序中是否有管理员或管理设置需要在您的应用程序配置参数中访问本地主机的权限。

  • 5) 根据声明说你是否指定了正确的主机或端口,这意味着你的 "kubectl" 运行 没有配置为 运行 作为本地主机而不是您的主要 DNS 服务器主机名或 IP,检查哪个主机配置为 运行 您的应用程序,就像我说的检查要使用的适当端口,您可以使用 telnet 检查此端口并在那里进一步排除故障.

我的两分钱!

在 运行 kubectl 为我工作之前创建集群

gcloud container clusters create k0

尝试使用 sudo 权限模式 运行 sudo kubectl run....

如果不禁用交换,kubelet 服务将不会在主节点和节点上启动,对于 Platform9 Managed Kubernetes version 3.3 and above ..

通过运行下面的命令关闭交换内存

sudo swapoff -a

使其永久化 转到 /etc/fstab 并注释交换行 效果不错..

就我而言,使用 minikube 时我还没有启动 minikube。使用

启动 minikube
minikube start

已修复。

在大多数情况下,这意味着缺少 kubeconfig 文件。当没有 $HOME/.kube/config 时,kubectl 尝试使用默认值。 您必须创建或复制有效的 config 文件才能解决此问题。 例如,如果您使用的是 kubeadm,您可以使用以下方法解决此问题:

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

或者,您也可以像这样导出 KUBECONFIG 变量:

export KUBECONFIG=/etc/kubernetes/admin.conf

我是 k8s 的新手,在使用 microk8s 时来到这里 & 想在 microk8s 集群上使用 kubectl。

运行 命令下方
microk8s 配置 > ~/.kube/config

从这个 link
中得到了解决方案 https://microk8s.io/docs/working-with-kubectl

总的来说,kubectl 需要一个配置文件来使用集群(这里是 microk8s 集群)

谢谢

我在执行kubectl get pods时也遇到了同样的问题。原因是 docker 桌面不是 运行,然后我 运行 docker 桌面,检查 docker 和 k8s 运行 。然后我又 运行 kubectl get pods 相同的输出。然后我通过 minikube start 启动了 minikube。一切正常。