前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >公司测试环境k8s节点故障解决

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

作者头像
全栈程序员站长
发布2021-06-08 21:41:48
6040
发布2021-06-08 21:41:48
举报
文章被收录于专栏:全栈程序员必看

测试环境

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处于宕机状态

代码语言:javascript
复制
#如果这个执行不成功的话那就执行看看etcd的健康状态
etcdctl cluster-health

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

代码语言:javascript
复制
[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

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

代码语言:javascript
复制
virsh reboot  k8s_node01     ##进行重启
virsh reboot k8s-node02

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

代码语言:javascript
复制
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服务器进行查看服务状态他会自启动服务

代码语言:javascript
复制
systemctl start docker   && systemctl start etcd && systemctl start kubelet              
systemctl status docker
systemctl status kubelet
systemctl status etcd
###如果状态都为running则正常

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

代码语言:javascript
复制
kubectl get nodes
kubectl get cs

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

治标不治本

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

治本

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

代码语言:javascript
复制
#在目录下较多文件的情况下可以进行筛选大于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.cn/101948.html原文链接:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试环境
  • 治标不治本
    • 根本原因还要去寻找,不然可能还会导致连续的宕机
      • 治本
        • 仅供参考
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档