首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >记一次kubernetes Evicted的处理[通俗易懂]

记一次kubernetes Evicted的处理[通俗易懂]

作者头像
全栈程序员站长
发布2022-08-29 15:28:48
发布2022-08-29 15:28:48
57600
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

背景:

事情这样的:kubernetes1.21.3集群。容器运行时containerd。除了K8s-node-06节点。

保留这个docker节点有很多原因。比如当时没有想好用什么打包镜像。默认让jenkins打包镜像。还有就是我的gitlab 10.8.7版本contarinerd运行时下无法启动。就保留了这个节点运行gitlab pod。当然了也把这个节点设置为了不可调度。不相其他应用调度到这个节点上来!最近一段时间gitlab应用频繁出现Evicted的问题:

这样就陷入了一个死循环:我的k8s-node-06设置为了不可调度,然后gitlab pod异常了 重新调度也调度不到节点上来…收到报错然后上线查找问题

处理问题过程:

1. 首先将k8s-node-06节点设置为可调度使gitlab pod正常运行

代码语言:javascript
代码运行次数:0
运行
复制
[root@k8s-master-01 ~]# kubectl uncordon k8s-node-06
node/k8s-node-06 uncordoned

等待gitlab pod running 后 将k8s-node-06节点恢复不可调度

代码语言:javascript
代码运行次数:0
运行
复制
[root@k8s-master-01 ~]# kubectl get pods -n kube-ops
[root@k8s-master-01 ~]# kubectl cordon k8s-node-06
node/k8s-node-06 cordoned
[root@k8s-master-01 ~]# kubectl get nodes

2. describe Evicted pod 定位解决

代码语言:javascript
代码运行次数:0
运行
复制
[root@k8s-master-01 ~]# kubectl describe pods gitlab-84d4998c96-b6z2j -n kube-ops

注: pod名词不一致 忽略。只是举个例子

目测存储资源不够了?百度搜索关键词:The node was low on resource: ephemeral-storage。参照:https://blog.csdn.net/u013355826/article/details/101020231。可以确定是存储资源不足了。登陆k8s-node-06节点经过查找文件发现Anchore Enine安装后,扫描后后数据文件太大造成的。就删除了anchore Engine 中的扫描记录文件!观察一段事件后目测是正常了…

3. 如何批量删除Evicted pod?

然后pod 列表中还有好多Evicted pod 看着恨不顺眼,怎么批量删除呢?如下:

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted")) | "kubectl delete pods \(.metadata.name) -n \(.metadata.namespace)"' | xargs -n 1 bash -c

总结:

  1. 做好资源的监控
  2. kubectl命令的熟练掌握,高效运用
  3. 当然了最重要的还是处理问题的思路。先查看日志去定位问题!

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:
  • 处理问题过程:
    • 1. 首先将k8s-node-06节点设置为可调度使gitlab pod正常运行
    • 2. describe Evicted pod 定位解决
    • 3. 如何批量删除Evicted pod?
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档