乐趣区

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

前言

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

问题

Pod The node had condition: [DiskPressure]

查看控制台,如下:

而后发现下列问题

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

而后咱们登录相应的节点服务器 ECS,而后通过执行上面命令查看磁盘应用状况:

cd /
du -sh *


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

cd /var
du -sh *


通过占比发现 log 文件夹占有 35G,雷同的咱们再进入查看

cd log
du -sh *


问题找到了,咱们发现 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

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

这样就解决了所有问题,如图所示 失常了

总结:

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

援用

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

退出移动版