执行kubectl命令失败server was refused问题解决

news2024/11/24 21:02:55

        在宿主机上执行kubectl 命令时,出现如下错误

[root@root ~] kubectl get namespaces
The connection to the server xxx.xx.xx.xx:6443 was refused - did you specify the right host or port?

        然后再网上找寻解决方案,发现各种各样的解决方案都存在。有说IP映射错了的、有说没有admin.conf文件的,还有说是看看k8s部分组件启动失败的等等,好多都解决不了我的问题。但是也不失为排查的一些思路,于是整理下来。

        下面是各种方案:

一、排除k8s组件是否存在启动失败的情况

        6443端口是kubelet的api监听端口,可能是kubelet启动失败,查看kubelet状态,分析日志。

 1.查看状态

systemctl status kubelet

 2.查看日志

journalctl -xefu kubelet

        经过上面两个步骤发现,日志好像并没有起到作用,就是一直请求失败,看不出任何原因。

3.查看容器状态

ps ef -a

        查看k8s相关的组件是否启动失败,如果你刚重启过k8s,最好仔细排查,可能就是某些组件没有启动成功导致的。

        下面是k8s某些组件没有启动成功的状态:

[root@master ~]# docker ps  -a
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS                      PORTS               NAMES
56f463b5684b        9b60aca1d818                                        "kube-controller-man…"   40 hours ago        Exited (2) 39 hours ago                         k8s_kube-controller-manager_kube-controller-manager-master_kube-system_8f99a56fb3eeae0c61283d6071bfb1f4_5
5043f1103f1f        aaefbfa906bd                                        "kube-scheduler --au…"   40 hours ago        Exited (2) 39 hours ago                         k8s_kube-scheduler_kube-scheduler-master_kube-system_285062c53852ebaf796eba8548d69e43_5
2d707069ab22        bfe3a36ebd25                                        "/coredns -conf /etc…"   41 hours ago        Exited (0) 39 hours ago                         k8s_coredns_coredns-6d56c8448f-mt7vz_kube-system_abc65488-0a54-4a1a-8e23-339f3f23f6d2_0
0dadfca20cb7        bfe3a36ebd25                                        "/coredns -conf /etc…"   41 hours ago        Exited (0) 39 hours ago                         k8s_coredns_coredns-6d56c8448f-hdtlf_kube-system_e1f90d02-77d0-4529-bea5-b4a72cdb4cf5_0
f25051c775cf        registry.aliyuncs.com/google_containers/pause:3.2   "/pause"                 41 hours ago        Exited (0) 39 hours ago                         k8s_POD_coredns-6d56c8448f-mt7vz_kube-system_abc65488-0a54-4a1a-8e23-339f3f23f6d2_0
b24a10712152        registry.aliyuncs.com/google_containers/pause:3.2   "/pause"                 41 hours ago        Exited (0) 39 hours ago                         k8s_POD_coredns-6d56c8448f-hdtlf_kube-system_e1f90d02-77d0-4529-bea5-b4a72cdb4cf5_0
fed8e33864c1        e708f4bb69e3                                        "/opt/bin/flanneld -…"   41 hours ago        Exited (137) 39 hours a

        如果出现上面的情况,重启对应的容器,启动成功问题大概就解决了。

        由于我的容器全部启动成功,而且近期没有重启k8s的操作。所以不是这儿的问题,需要继续往下排除了。。。

二、admin.conf 文件

        kubectl命令需要使用kubernetes-admin来运行,需要admin.conf文件。

        conf文件是通过“ kubeadmin init”命令在主节点/etc/kubernetes 中创建,但是从节点没有conf文件,也没有设置 KUBECONFIG =/root/admin.conf环境变量,所以需要复制conf文件到从节点,并设置环境变量。

1.主节点的admin.conf拷贝到从节点

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

2.设置环境变量

#拷贝admin.conf注意路径
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

  =========

        这个方案网上出现的最多,但我的是master节点,查看/etc/kubernetes目录下是存在 admin.conf文件的。且之前kubectl 命令是可用,证明环境变量也是存在的。无法解决我的问题。

三、IP映射问题

        如果查看kubectl日志,出现如下日志,大概率是IP映射的问题了。

journalctl -xeu kubelet

5月 30 17:42:58 master.com kubelet[1049]: E0530 17:42:58.314060    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:58 master.com kubelet[1049]: E0530 17:42:58.414432    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:58 master.com kubelet[1049]: E0530 17:42:58.514811    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:58 master.com kubelet[1049]: E0530 17:42:58.615160    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:58 master.com kubelet[1049]: E0530 17:42:58.715273    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:58 master.com kubelet[1049]: E0530 17:42:58.815516    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:58 master.com kubelet[1049]: E0530 17:42:58.915924    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:59 master.com kubelet[1049]: E0530 17:42:59.000379    1049 event.go:273] Unable to write event: 'Post "https://192.168.127.128:6443/api/v1/namespaces/default/events">
5月 30 17:42:59 master.com kubelet[1049]: E0530 17:42:59.016347    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:59 master.com kubelet[1049]: E0530 17:42:59.116651    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:59 master.com kubelet[1049]: E0530 17:42:59.217157    1049 kubelet.go:2183] node "master.com" not found
5月 30 17:42:59 master.com kubelet[1049]: E0530 17:42:59.317429    1049 kubelet.go:2183] node "master.com" not found

 这说明master节点无法找到 master.com,查看kubelet配置的ip

1. 查看kubelet配置的ip

cat /etc/kubernetes/kubelet.conf

 2.查看宿主机ip

ifconfig

        两者一致,说明ip是正确的,这说明宿主机的/ets/hosts 配置有问题。如果ip不一致,则需要修改kubelet、kubeadm、api-server对应的ip。

3.查看host文件

cat /etc/hosts

         修改主机名为 master.com即可

        但我的依旧配置正确,前面也提到了,我之前的 kubectl 命令是可以用的,只是忽然失效了。所以继续排除ing...

四、排除宿主机磁盘空间

        其实在输入命令行的时候就已经发现有问题了。

        使用 cd 命令 Tab 键进行命令补全时提示:无法为立即文档创建临时文件: 设备上没有空间

        磁盘空间不足了,解决步骤如下:

1.查看磁盘空间使用情况

df -Th
 

         可以看到,我的 /dev/mapper/cemtos-root 和 docker overlay 已经爆满了。

2.查看大文件

cd /
# 其中--max-depth=1就是递归查看深度为1
du -h --max-depth=1

         可以看到 /docker 路径下占用了 177G,基本上就是docker overlay2占用了大量的磁盘空间,但对于docker镜像那些可以用的,那些是不可以用的,我们也不清楚,所以不能单纯的用 rm -rf 的命令直接删除了。

3.删除无用镜像或容器

#用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
docker system prune

#清理得更加彻底,可以将没有容器使用Docker镜像都删掉
docker system prune -a

        我的问题到了这一步就解决了,kubectl 命令恢复了。如果你的问题到达这一步依旧不行,只能进行 docker 的迁移,或者宿主机升配了。

        其实到这里也能发现, kubectl 命令失败server was refused 的问题,不仅仅是一种情况导致的,可能会有各种各样的问题。我都想象不到磁盘空间占满还能导致 kubectl 命令不可用。

        总之网上的解决方案有很多,但不一定适合你,你要做的是把其他的贴子当作参考,并细心的排查自己的问题了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

API淘宝数据接口

如果你想在自己的应用中使用淘宝的数据,那么对接淘宝数据接口是必不可少的一步。本文将介绍如何对接API淘宝数据接口,以便你能够顺利获取和使用淘宝的数据。 步骤一:​​获取App Key和App Secret​​ 首先,在淘宝开放平台申请AP…

深入浅出:CAN通信之CCP协议

CCP(CAN Calibration Protocol) CAN标定协议(用于标定系统与ECU之间的通信) CCP协议在应用层,使用CAN的数据帧来传输命令 CRO数据帧(主设备想从设备发送) CRO报文:CCP报文帧格式为CMD CTR DATA,即Command、Counter、Data,其中…

opencv cuda版本windows编译

目录 1. 编译准备2. 编译3. 遇到的问题及解决方案3.1 boostdesc_bgm.i,vgg_generated_48.i等文件的缺失3.2 fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录 1. 编译准备 编译工具是cmakevisual studio2022,首先安装这两个工…

6个优化策略,助你降低K8S成本

Kubernetes 早已成为容器编排引擎的事实标准,而随着 Kubernetes 环境的复杂性持续增长,成本也在不断攀升。CNCF 发布的调查报告《Kubernetes 的 FinOps》显示,68%的受访者表示 Kubernetes 开销正在上涨,并且一半的人所在的组织经历…

WebSocket 详解

WebSocket WebSocket 是一种支持双向通讯网络通信协议。意思就是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息属于服务器推送技术的一种. 特点: (1)建立在 TCP 协议之上,服务器端的实现比较容…

【MATLAB数据处理实用案例详解(13)】——利用Elman网络实现上证股市开盘价预测

目录 一、问题描述二、Elman网络预测上证股市开盘价原理三、算法步骤3.1 加载数据3.2 构造样本集3.3 划分训练集和测试集3.4 创建Elman神经网络3.5 网络训练3.6 测试 四、结果展示 一、问题描述 选择2005年6月30日至2006年12月1日的上证开盘价进行预测分析。数据保存在elm_sto…

制冷暖通工业互联网平台服务商

制冷暖通工业互联网平台服务商可以提供以下服务: 系统架构设计:根据客户需求,制定适合的系统架构和技术路线,提供全面的技术咨询和方案设计服务。 平台开发和定制化:根据客户需求和系统设计,进行平台开发和…

【go】三色标记-垃圾回收机制

垃圾回收原因 : 垃圾回收是一种内存管理技术,它的主要目的是自动管理程序中的内存分配和释放,以减少内存泄漏和野指针等问题 赋值器与回收器: 赋值器(Mutator)是指程序中的执行部分,负责创建…

c++11 标准模板(STL)(std::priority_queue)(五)

适配一个容器以提供优先级队列 std::priority_queue 定义于头文件 <queue> template< class T, class Container std::vector<T>, class Compare std::less<typename Container::value_type> > class priority_queue; priority_queu…

docker 安装应用程序

此篇文章以 mysql 安装为例&#xff1a; 一、这里我们拉取官方的最新版本的镜像 docker pull mysql:latest二、使用以下命令来查看是否已安装了 mysql docker images在上图中可以看到我们已经安装了最新版本&#xff08;latest&#xff09;的 mysql 镜像。 三、运行容器 安…

一天学完UCOS III(上)

一、UCOS系统中的一些概念 1.UCOS任务状态 2.任务控制块&#xff08;OS_TCB&#xff09;&#xff1a;保存任务信息结构体 3.任务堆栈&#xff08;CPU_STK&#xff09;&#xff1a;创建任务时传把任务堆栈的参树传入 4.任务优先级&#xff1a;高优先级任务可以抢占低优先级任务…

NDK OpenGL渲染画面效果

NDK系列之OpenGL渲染画面效果技术实战&#xff0c;本节主要是通过OpenGL Java库&#xff08;谷歌对OpenGL C库做了JIN封装&#xff0c;核心实现还是在Native层&#xff09;&#xff0c;实现页面渲染&#xff0c;自定义渲染特效。 实现效果&#xff1a; 实现逻辑&#xff1a; 1…

如何学习FPGA?莱迪斯深力科电子LCMXO2-4000HC-4TG144C MachXO2系列 FPGA可编程逻辑简介

如何学习FPGA&#xff1f;莱迪斯深力科电子LCMXO2-4000HC-4TG144C MachXO2系列 FPGA可编程逻辑简介 FPGA是英文Field&#xff0d;Programmable Gate Array的缩写&#xff0c;即现场可编程门阵列&#xff0c;它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作…

【高分论文密码】大尺度空间模拟预测与数字制图

大尺度空间模拟预测和数字制图技术和不确定性分析广泛应用于高分SCI论文之中&#xff0c;号称高分论文密码。大尺度模拟技术可以从不同时空尺度阐明农业生态环境领域的内在机理和时空变化规律&#xff0c;又可以为复杂的机理过程模型大尺度模拟提供技术基础。在本次培训中&…

查询优化之单表查询

建表 CREATE TABLE IF NOT EXISTS article ( id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, author_id INT(10) UNSIGNED NOT NULL, category_id INT(10) UNSIGNED NOT NULL, views INT(10) UNSIGNED NOT NULL, comments INT(10) UNSIGNED NOT NULL, title VARBI…

Ajax和Json综合案例

1. 查询所有 创建brand.html,使用axios发送请求&#xff0c;其中查询一般采用get的请求方式 <script src"js/axios-0.18.0.js"></script><script>//1. 当页面加载完成后&#xff0c;发送ajax请求window.onload function () {//2. 发送ajax请求axi…

星辰天合亮相 2023 国际金融展,软件定义存储信创方案备受瞩目

4 月 25 日&#xff0c;为期三天的 2023 中国国际金融展在北京首钢会展中心开幕&#xff0c;本届展会以“荟萃金融科技成果&#xff0c;展现数字金融力量&#xff0c;谱写金融服务中国式现代化新篇章”为主题&#xff0c;全面展示金融业为完善科技创新体系、加快实现高水平科技…

轻量级「行泊一体」爆发前夜!这家智驾Tier1正加码抢占市场

伴随行泊一体成为产业演进的确定性趋势&#xff0c;如何踩准市场爆发的节奏成为重中之重。 高工智能汽车注意到&#xff0c;行泊一体当前呈分层发展趋势&#xff0c;从底层SOC算力划分&#xff1a;其一&#xff0c;5-20TOPS轻量级平台&#xff0c;提供基础L2级行车泊车需求&am…

被修饰成单栋的倾斜摄影处理思路

作者&#xff1a;kele 前言 倾斜摄影数据是三维项目系统中的常客。在某些项目中&#xff0c;为了给倾斜摄影上的建筑赋予属性信息&#xff0c;实现点击建筑高亮并展示属性的功能&#xff0c;客户将倾斜摄影数据进行了模型单体化&#xff08;使用pdmodeler或者其它软件&#xf…

Java 版Spring cloud 企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…