公司测试环境k8s节点故障解决

简介: 公司测试环境k8s节点故障解决

测试环境

ip地址 信息
192.168.1.215 k8s主节点 、etcd
192.168.1.216 k8s从节点、etcd
192.168.1.139 kvm

报错
从215服务器上面可以看到使用k8s的命令就是没反应
要不就是回复的是时间超时!连接不上!
尝试命令kubectl get podskubectl get nodes等没反应超时!
这个时候我们可以看看集群状态可以看到etcd处于宕机状态

#如果这个执行不成功的话那就执行看看etcd的健康状态
etcdctl cluster-health

发现其中etcd集群都处于宕机状态,最起码要有两个节点是存活的才能保证集群正常运行!
由于可能服务器ssh登录服务器可能会慢
尝试登录139服务器,215和216服务器都是从129虚出来的直接登录用过kvm的命令进行执行重启服务器
那么到了139服务器之后先看一下KVM虚拟机都有哪些
virsh list --all
可以看到服务器的列表

[root@zlw ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 50    windows_server_2008_r2         running
 57    k8s_node02                     running
 70    docker5.tec.net                running
 71    k8s_node03                     running
 73    k8s_node01                     running
 -     donghang                       shut off
 -     hywater                        shut off
 -     k8s-m1                         shut off

我们将主节点的和从节点的服务器进行重启

virsh reboot  k8s_node01     ##进行重启
virsh reboot k8s-node02

等待几分钟重启一下
然后我们分别登录到215和216服务器进行查看一下
然后215服务器可以看到服务都没有启动起来
我们先进行以读写的方式进行重新对系统进行以读写方式进行挂载然后进行启动服务并查看服务的运行状态为running正常

mount -o remount,rw /       #以读写方式重新挂载
systemctl start docker   && systemctl start etcd  && systemctl start kubelet   
  #启动docker服务                #启动kubelet服务               #启动etcd服务
###然后进行查看运行状态
systemctl status docker    #查看docker服务状态   
systemctl status kubelet    #查看kubelet服务状态
systemctl status etcd         #查看etcd服务状态

我们上216服务器进行查看服务状态他会自启动服务

systemctl start docker   && systemctl start etcd && systemctl start kubelet              
systemctl status docker
systemctl status kubelet
systemctl status etcd
###如果状态都为running则正常

如果两台服务器都正常了,可以到215服务器进行测试看看
使用命令

kubectl get nodes
kubectl get cs

可以发现可以使用命令,并且集群正常

治标不治本

根本原因还要去寻找,不然可能还会导致连续的宕机

治本

可能是节点的资源不够磁盘使用量过大导致的
然后再进行更新发布项目的时候会直接使k8s的主节点宕机
可以看看各个节点的磁盘状况然后进行清理一下
k8s的主节点磁盘使用率达到了85%然后其他节点也有的75%
经过排查看到日志文件过大导致的

#在目录下较多文件的情况下可以进行筛选大于1G的文件
find . -type f -size +1024M
#可以在/看看各个目录占用多大,在逐步排查具体文件
du -sh *
#发现/var目录占用较大
cd /var/log
du -sh *   
##可以看到有两个文件已经一共10G也不是当天的可以进行清除#不要清楚正在使用的!!!
rm -rf messages-20200824
rm -rf messages-20200831
#在进行查看df -h磁盘空间变成了65%
#其他节点同理

然后宕机的节点进行重启并启动服务使k8s正常运行

仅供参考

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
Kubernetes API 调度
k8s中节点无法启动Pod
【10月更文挑战第3天】
119 6
|
4月前
|
存储 Kubernetes Docker
Kubernetes节点资源耗尽状态的处理
Kubernetes节点资源耗尽状态的处理
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
80 4
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
52 1
|
2月前
|
Kubernetes Docker Perl
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
k8s常见故障--yaml文件检查没有问题 pod起不来(一直处于创建中)
125 1
|
2月前
|
Kubernetes 应用服务中间件 Linux
多Master节点的k8s集群部署
多Master节点的k8s集群部署
|
3月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
151 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
4月前
|
存储 Kubernetes 调度
在K8S中,⼀个pod的不同container能够分开被调动到不同的节点上吗?
在K8S中,⼀个pod的不同container能够分开被调动到不同的节点上吗?
|
4月前
|
Kubernetes 调度 Perl
在K8S中,Pod多副本配置了硬亲和性,会调度到同⼀个节点上吗?
在K8S中,Pod多副本配置了硬亲和性,会调度到同⼀个节点上吗?
|
4月前
|
Kubernetes 负载均衡 调度
在K8S中,K8S外部节点访问Pod有哪些方式?
在K8S中,K8S外部节点访问Pod有哪些方式?