长时间运行的集群,常会面临各种资源耗尽的问题,另外磁盘不足时 Kubelet 还会主动清理镜像增加不确定因素,本文提供了一些命令片段用于清理工作。
1Kubernetes 基础对象清理
- 清理 Evicted 状态的 Pod
- $kubectlgetpods--all-namespaces-owide|grepEvicted|awk'{print$1,$2}'|xargs-L1kubectldeletepod-n
- 清理 Error 状态的 Pod
- $kubectlgetpods--all-namespaces-owide|grepError|awk'{print$1,$2}'|xargs-L1kubectldeletepod-n
- 清理 Completed 状态的 Pod
- $kubectlgetpods--all-namespaces-owide|grepCompleted|awk'{print$1,$2}'|xargs-L1kubectldeletepod-n
- 清理没有被使用的 PV
- $kubectldescribe-Apvc|grep-E"^Name:.*$|^Namespace:.*$|^UsedBy:.*$"|grep-B2"<none>"|grep-E"^Name:.*$|^Namespace:.*$"|cut-f2-d:|paste-d""--|xargs-n2bash-c'kubectl-n${1}deletepvc${0}'
- 清理没有被绑定的 PVC
- $kubectlgetpvc--all-namespaces|tail-n+2|grep-vBound|awk'{print$1,$2}'|xargs-L1kubectldeletepvc-n
- 清理没有被绑定的 PV
- $kubectlgetpv|tail-n+2|grep-vBound|awk'{print$1}'|xargs-L1kubectldeletepv
Linux 清理2
- 查看磁盘全部空间
- $df-hl/
- FilesystemSizeUsedAvailUse%Mountedon
- /dev/sda2100G47G54G47%/
- 查看指定目录占用
- $du-sh.
- 24G.
- 删除指定前缀的文件夹
- $cd/nfsdata
- $ls|greparchived-|xargs-L1rm-r
- 清理僵尸进程
- $ps-A-ostat,ppid|grep-e'^[Zz]'|awk'{print}'|xargskill-HUP>/dev/null2>&1
3Docker 清理
- 查看磁盘使用情况
- $dockersystemdf
- TYPETOTALACTIVESIZERECLAIMABLE
- Images36123178.5GB173.8GB(97%)
- Containers2996.682GB6.212GB(92%)
- LocalVolumes403.139MB3.139MB(100%)
- BuildCache000B0B
- 清理 none 镜像
- $dockerimages|grepnone|awk'{print$3}'|xargsdockerrmi
- 清理不再使用的数据卷
$ docker volume rm $(docker volume ls -q)
- $dockerimages|grepnone|awk'{print$3}'|xargsdockerrmi
或者
- $dockervolumeprune
- 清理缓存
- $dockerbuilderprune
- 全面清理
删除关闭的容器、无用的存储卷、无用的网络、dangling 镜像(无 tag 镜像)
- $dockersystemprune-f
- 清理正则匹配上的镜像
这里清理的是 master-8bcf8d7-20211206-111155163 格式的镜像。
- $dockerimages|grep-E"([0-9a-z]*[-]){3,}[0-9]{9}"|awk'{print$3}'|xargsdockerrmi
4设置定时
- 查看定时任务
- $crontab-l
- 设置定时任务
- $crontab-e
文本新增定时任务
- */35*/6***dockerimages|grepnone|awk'{print$3}'|xargsdockerrmi
- 451***dockersystemprune-f
这里第一个任务是每隔六个小时的第 35 分钟执行,第二个任务每天的 1 时 45 分执行。
- 定时任务的格式
- 设置定时格式:*****shell
- 第一个星号,minute,分钟,值为0-59
- 第二个星号,hour,小时,值从0-23
- 第三个星号,day,天,值为从1-31
- 第四个星号,month,月,值为从1-12月,或者简写的英文,比如Nov、Feb等
- 第五个星号,week周,值为从0-6或者简写的英文,Wen、Tur等,代表周几,其中0代表周末
©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经