公司测试环境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正常运行

仅供参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101948.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库同步有哪些方式?【怎么保障目标和源数据一致性】「建议收藏」

    数据库同步有哪些方式?【怎么保障目标和源数据一致性】「建议收藏」数据库同步有3大难题:1是如何保障目标和源数据一致性;2是异构数据库如何做数据类型转换,导致数据同步失败的原因常常是因为数据类型不一样;3是在数据越实时越有价值的背景下,同步过程中能否做到实时同步。

    2022年10月16日
    3
  • 国外服务器直播网站,海外直播服务器搭建

    国外服务器直播网站,海外直播服务器搭建背景:最近有个朋友的APP需要在国外搭建一个直播服务器,因为他们的主播在韩国(主播主要是记者),而观众主要在国内,叫我帮忙给他们开发一个直播服务器。目前开源的直播服务程序有:SRS,Nginx-rtmp;如果是做开发的同学应该有所了解,SRS是基于C++写的,Nginx-rtmp模块是Ngxin的第三方C模块。一开始我是直接部署SRS/Ngxin-rtmp到我的韩国的服务器,结果直播rtmp或者…

    2022年5月12日
    119
  • Http 和 Tcp 的区别

    Http 和 Tcp 的区别Http是包装数据的,Tcp是传输数据的。都是先Tcp建立连接,然后传输数据,如果没用http,对方无法识别你传输的数据是什么,所以需要http包装数据,其他应用层协议也可以。

    2022年9月2日
    6
  • c语言面试笔试题_c语言面试题库

    c语言面试笔试题_c语言面试题库121、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与(B)匹配。A)缩排位置相同的ifB)其之前最近的ifC)其之后ifD)同一行上的if122、设i和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++),下列哪句语正确(B)A)执行8次B)执行9次C)是无限循环D)循环体一次也不执行123、下面程序的运行结果是(C…

    2022年8月27日
    5
  • Oracle技术之如何分析执行计划(一)

    Oracle技术之如何分析执行计划(一)

    2021年8月26日
    69
  • Latex常见符号对照表

    摘要:Latex可以很方便的利用命令来生成各式各样的特殊符号.这里根据官方的文档将这些常见符号列出,以备查用.

    2022年4月4日
    249

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号