kubectl get nodes报错:The connection to the server localhost:8080

报错描述kubectl get nodes命令无法执行

在K8S-master初始化后,worker-node节点加入K8S集群后

bash 复制代码
kubeadm join 192.168.31.150:6443 --token 2n0t62.gvuu8x3zui9o8xnc \
        --discovery-token-ca-cert-hash sha256:d294c082cc7e0d5f620fb10e527a8a7cb4cb6ccd8dc45ffaf2cddd9bd3016695

通过kubectl get nodes查看集群的情况,出现了报错,内容如下:

bash 复制代码
[root@k8s-master01 ~]# kubectl get nodes
E1114 16:28:52.032089    2254 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E1114 16:28:52.032313    2254 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E1114 16:28:52.033599    2254 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E1114 16:28:52.034881    2254 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E1114 16:28:52.036130    2254 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
The connection to the server localhost:8080 was refused - did you specify the right host or port?

最初,查找在/etc/kubernetes目录下,存放了许多K8S配置文件,通过kubectl --kubeconfig命令执行正常,这样执行感觉很怪。

解决办法

最终发现,答案其实就在k8s-worker-node节点生成的内容当中,只需要master执行以下命令就可以:

bash 复制代码
mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

mkdir -p $HOME/.kube ##创建一个名为 .kube 的目录,该目录用于存储 Kubernetes 相关的配置文件

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config##表示复制 Kubernetes 集群的管理员配置文件(通常是 /etc/kubernetes/admin.conf)到用户的 .kube 目录下的 config 文件。

chown $(id -u):$(id -g) $HOME/.kube/config ##更改用户的 .kube/config 文件的所有者为当前用户(通过 ( i d − u ) 获取用户 I D , (id -u) 获取用户 ID, (id−u)获取用户ID,(id -g) 获取用户所属的主要组 ID)。

再次执行该命令:kubectl get nodes

相关推荐
liweiweili12624 分钟前
Linux 中替换某个目录下所有文件中的特定字符串
linux·运维·服务器
阿拉斯攀登36 分钟前
Docker 全面解析:从核心概念到实践应用
docker·云原生·容器·架构
弓弧名家_玄真君1 小时前
Ubuntu 20.04.3 LTS 安装vnc (Xfce4 + Xvfb)
linux·运维·ubuntu
唐·柯里昂7981 小时前
野火鲁班猫5使用正点原子 RTL8188EUS Wifi模块驱动移植(Linux5.10 Debian系统) 解决zsh报错
linux·c语言·mcu·物联网·ubuntu·硬件工程·软件构建
哲Zheᗜe༘2 小时前
学习K8S-Deployment资源对象
docker·容器·kubernetes
生活爱好者!2 小时前
【影视项目】NAS 部署稳定视频订阅源咪咕
服务器·网络·docker·容器·音视频
源梦想2 小时前
机甲恐龙动作冒险网页小游戏Linux部署教程
linux·运维·服务器
Hoshino.412 小时前
从0开始学习Linux——第七部分:DNS(1)
linux·网络·学习
robin59112 小时前
容器-PUSH镜像卡住问题排查
容器·golang·kubernetes
yiyeguzhou1002 小时前
论文解读:Overcoming the IOTLB wall for multi-100-Gbps Linux-based networking
linux·运维·服务器