阿里云k8s集群运维相关问题

Awbeci 2020/12/19 16:24:49

前言最近在使用阿里云k8s的时候发现好多问题,记录下来总结和分享。问题Pod The node had condition: [DiskPressure]查看控制台,如下:然后发现下列问题status:message: Pod The node had condition: [DiskPressure]. phase: Failedreason: EvictedstartTime: "202…

前言

最近在使用阿里云k8s的时候发现好多问题,记录下来总结和分享。

问题

Pod The node had condition: [DiskPressure]

查看控制台,如下:
image.png
然后发现下列问题
image.png

status:
  message: 'Pod The node had condition: [DiskPressure]. '
  phase: Failed
  reason: Evicted
  startTime: "2020-12-01T19:24:45Z"

然后我们登录相应的节点服务器ECS,然后通过执行下面命令查看磁盘使用情况:

cd /
du -sh *

image.png
通过上面的命令发现var占有39G,然后进入该文件夹再次执行下面命令查看

cd /var
du -sh *

image.png
通过占比发现log文件夹占有35G,相同的我们再进入查看

cd log
du -sh *

image.png
问题找到了,我们发现messages相关日志文件占用空间非常大,解决办法也很简单,我们使用执行下面命令

echo "" > messages*

然后,我们再查看发现部署正常了,但是容器组还是不正常,这是因为evicted状态的pod不会被自动删除。需要手动删除。批量删除命令:

kubectl get pods -n <namespace> | grep -i evicted | awk '{if ($1!="NAME")print $1}'   | xargs  -n 1 kubectl delete pods -n <namespace> --force --grace-period=0

首先,我们先要找到对应namgspace下的Pods有哪些是evicted状态

kubectl get namespaces

image.png

kubectl -n arms-prom get pods | grep Evicted
kubectl -n default get pods | grep Evicted
kubectl -n kube-node-lease get pods | grep Evicted
kubectl -n kube-public get pods | grep Evicted
kubectl -n kube-system get pods | grep Evicted
kubectl -n kubeernetes-dashboard get pods | grep Evicted

执行完成之后发现哪些命名空间下存在pods为evicted状态的要删除,删除命令如下:

kubectl get pods -n arms-prom | grep -i evicted | awk '{if ($1!="NAME")print $1}'   | xargs  -n 1 kubectl delete pods -n arms-prom --force --grace-period=0

kubectl get pods -n default | grep -i evicted | awk '{if ($1!="NAME")print $1}'   | xargs  -n 1 kubectl delete pods -n default --force --grace-period=0

kubectl get pods -n kube-node-lease | grep -i evicted | awk '{if ($1!="NAME")print $1}'   | xargs  -n 1 kubectl delete pods -n kube-node-lease --force --grace-period=0

kubectl get pods -n kube-public | grep -i evicted | awk '{if ($1!="NAME")print $1}'   | xargs  -n 1 kubectl delete pods -n kube-public --force --grace-period=0

kubectl get pods -n kube-system | grep -i evicted | awk '{if ($1!="NAME")print $1}'   | xargs  -n 1 kubectl delete pods -n kube-system --force --grace-period=0

kubectl get pods -n kubeernetes-dashboard | grep -i evicted | awk '{if ($1!="NAME")print $1}'   | xargs  -n 1 kubectl delete pods -n kubeernetes-dashboard --force --grace-period=0

这样就解决了所有问题,如图所示 正常了
image.png

总结:

1、发现问题之后要分析问题,找到对应方法来解决
2、过程中对k8s不太熟悉有点忙乱,不过通过阿里云客服很轻松的解决了
3、学习使用k8s常用命令以及k8s相关概念

引用

k8s批量删除Evicted Pods
Kubectl基本操作命令
Mac系统占用空间大、空间不够、查看系统文件大小分布
kubernetes node DiskPressure 压力
master资源不足导致pods被驱逐-The node had condition: [DiskPressure

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[阿里云k8s集群运维相关问题]http://www.zyiz.net/tech/detail-150081.html

上一篇:腾讯游戏 K8s 应用实践|更贴近业务场景的 K8s 工作负载:GameDeployment & GameStatefulSet

下一篇:GitLab Runner部署(kubernetes环境)

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    关注微信小程序
    程序员编程王-随时随地学编程

    扫描二维码或查找【程序员编程王】

    可以随时随地学编程啦!

    技术文章导航 更多>
    扫一扫关注最新编程教程