当我运行kubectl run
... 或任何命令时,我收到一条错误消息
The connection to the server localhost:8080 was refused - did you specify the right host or port?
这个错误究竟是什么以及如何解决它?
当我运行kubectl run
... 或任何命令时,我收到一条错误消息
The connection to the server localhost:8080 was refused - did you specify the right host or port?
这个错误究竟是什么以及如何解决它?
就我而言,使用 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
我真的对kubectl不太了解...但是我所知道的拒绝localhost连接的各种原因如下
1) 确保您可以使用 IP(127.XX.XX.XX) 解析和 ping 本地主机,如果使用 DNS 或主机文件,还可以使用“localhost”。
2) 如果尝试使用 localhost,请确保尝试访问 localhost 的服务有足够的权限以 root 身份运行。
3) 使用 netstat 检查端口并在“Plantu”标志中检查您需要的适当标志,查找每个标志的含义,因为它适用于您的情况。如果您尝试在 localhost 上访问的服务正在侦听该端口,netstat 会通知您。
4) 在应用程序的配置参数中检查您的应用程序中是否有需要访问本地主机的权限的管理员或管理设置。
5)根据声明说您指定了正确的主机或端口,这意味着您的“kubectl”运行未配置为作为localhost运行,而是您的主DNS服务器主机名或IP,检查配置为运行您的主机应用程序,就像我说的检查要使用的适当端口,您可以使用 telnet 检查此端口并在那里进一步排除故障。
我的两分钱!
在运行 kubectl 之前创建集群对我有用
gcloud 容器集群创建 k0
如果未禁用交换,kubelet服务将不会在 master 和节点上启动,对于Platform9 Managed Kubernetes version 3.3 and above
..
通过运行以下命令来关闭交换内存
sudo swapoff -a
要使其永久化,请转到/etc/fstab
并评论交换行运行良好..
我是 k8s 的新手,在使用 microk8s 时来到这里,想在 microk8s 集群上使用 kubectl。
运行命令
microk8s config > ~/.kube/config
从这个链接
https://microk8s.io/docs/working-with-kubectl得到了解决方案
总的来说,kubectl 需要一个配置文件来使用集群(这里是 microk8s 集群)
谢谢
我在执行时也遇到了同样的问题kubectl get pods
。原因是 docker desktop 没有运行,然后我运行了 docker desktop,检查了 docker 和 k8s running 。然后我再次运行kubectl get pods
相同的输出。然后我开始使用 minikube minikube start
。一切都很正常。
尝试以sudo
权限模式
运行sudo kubectl run....