当前位置: 首页 > news >正文

K8S异常处理

一、概述

1、k8s有时候会报错The connection to the server ip:6443 was refused - did you specify the right host or port ,本文档提供几种可能产生该报错的原因和排障思路。

二、发现问题

使用任意Kubectl 命令会报错:The connection to the server ip:6443 was refused - did you specify the right host or port

三、可能原因

情况一:集群硬件时间和系统时间不同步,在重启服务器后系统时间会同步硬件时间,集群的时间管理混乱,进而导致此类问题
情况二:查看端口是否被占用或者是否被防火墙、iptables这些拦截下来了
情况三:更改主机名或者服务器重启后出现此报错
情况四:通用排查

四、处理方案

情况一解决方案:此类现象需要重新更改系统时间并把硬件时间和软件时间同步

systemctl status kubelet #首先检查服务是否启动有无报错,如果服务报错进行排查

date #确认系统时间

hwclock #确认硬件 #如果此时系统时间和硬件时间同步,但明显不是服务器重启之前的时间。请继续往下看。否则就不是本情况,请查看其他案例。

date -s "2023-03-25 12:00:00" #首先进行系统时间的修改

hwclock --hctosys #然后用硬件时钟同步系统时钟

timedatectl |awk -F":" '/synchronized/{print $2}' #检查ntp时间同步是否就绪,一般等待20-30分钟左右后会显示yes

kubectl get node #检查是否还会报错

 情况二:处理方案

systemctl status kubelet #首先检查服务是否启动有无报错,如果服务报错请进行排查 netstat -napt | grep 6443 #首选确认端口是否被占用 #如果使用firewalld服务,通过firewall添加相应的端口来解决问题

systemctl enable firewalld|

systemctl start firewalld|

firewall-cmd --permanent --add-port=6443/tcp|

firewall-cmd --permanent --add-port=2379-2380/tcp|

firewall-cmd --permanent --add-port=10250-10255/tcp|

firewall-cmd –reload #iptables相关规则/做过相关的安全加固等措施禁用了端口

iptables -nL #查看是否存在6443端口相关规则被禁止,如果出现相关的问题,进行相关排查 kubectl get node #检查是否还会报错

 情况三:处理方案

systemctl status kubelet #首先检查服务是否启动有无报错,如果服务报错进行排查

1、通用方案

#重新声明环境变量

ll /etc/kubernetes/admin.conf #查看文件是否存在,如果不存在执行下面的步骤

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile #重新写入环境变量

source ~/.bash_profile

2、containerd容器解决方案

systemctl restart kubelet #尝试重启kubelet测试是否可以重新恢复正常

journalctl -xefu kubelet #查看kubelet的日志,里面寻找相应报错

nerdctl -n k8s.io ps #根据iomp版本是用docker或者nerdctl,来查看k8s容器状态 确认相关k8s容器是否正常,如果容器出现异常,进行相关排查

kubectl get node #检查是否还会报错

 

情况四:解决方案

systemctl status kubelet #首先检查服务是否启动有无报错

journalctl -u kubelet #如果kubelet报错请查看相关日志 #首先确认aip-server有没有挂,如果挂了去查看日志

nerdctl -n k8s.io ps | grep kube-apiserver

docker ps -a | grep kube-apiserver

cd /var/log/pods/kube-system_kube-apiserver # (此处使用tab补全,进入后查看相应的日志报错,根据相应日志去处理对应问题) #接着确认etcd是否挂了,可以去查看相应的报错日志 docker ps -a | grepetcd

nerdctl -n k8s.io ps | grep etcd

cd /var/log/pods/kube-system_etcd #(此处使用tab补全,进入后查看相应的日志报错,根据相应日志去处理对应问题)

kubectl get node #问题初完成后检查是否还会报错

相关文章:

  • AR智慧校园三维主电子沙盘系统研究及应用
  • 提升FTP上传速度的方法(提升FTP下载速度的技巧)
  • STM32实战之深入理解I²C通信协议
  • 如何准备一线互联网公司面试?
  • 嵌入式——RTC闹钟Alarm
  • Nginx快速入门:return、rewrite重定向、重写详解(六)
  • 记一次应急响应练习(windows)
  • 企业微信自建应用获取用户信息
  • postman高级用法
  • 5月22日比特币披萨日,今天你吃披萨了吗?
  • 【kafka消息里会有乱序消费的情况吗?如果有,是怎么解决的?】
  • 设计模式-单例模式(结合JVM基础知识)
  • 182.【2023年华为OD机试真题(C卷)】敏感字段加密(字符串的分割、替换和拼接实现JavaPythonC++JS)
  • 如何利用flume进行日志采集
  • 【MySQL】表的基本查询
  • __proto__ 和 prototype的关系
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • JavaScript设计模式与开发实践系列之策略模式
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • vue的全局变量和全局拦截请求器
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 工作手记之html2canvas使用概述
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于 Babel 的 npm 包最小化设置
  • 京东美团研发面经
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • ​ubuntu下安装kvm虚拟机
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (2)Java 简介
  • (8)STL算法之替换
  • (C++17) std算法之执行策略 execution
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)程序员技术练级攻略
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ***测试-HTTP方法
  • .NET Remoting学习笔记(三)信道
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net中应用SQL缓存(实例使用)
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @RequestMapping 的作用是什么?
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [Android]如何调试Native memory crash issue
  • [AutoSar NVM] 存储架构
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [CVPR2021]Birds of a Feather: Capturing Avian Shape Models from Images
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb