Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >常用的清理 Kubernetes 集群资源命令

常用的清理 Kubernetes 集群资源命令

原创
作者头像
陈少文
发布于 2021-12-22 09:48:31
发布于 2021-12-22 09:48:31
1.7K0
举报
文章被收录于专栏:陈少文陈少文

长时间运行的集群,常会面临各种资源耗尽的问题,另外磁盘不足时 Kubelet 还会主动清理镜像增加不确定因素,本文提供了一些命令片段用于清理工作。

1. Kubernetes 基础对象清理

  • 清理 Evicted 状态的 Pod

1

kubectl get pods --all-namespaces -o wide | grep Evicted | awk '{print $1,$2}' | xargs -L1 kubectl delete pod -n

  • 清理 Error 状态的 Pod

1

kubectl get pods --all-namespaces -o wide | grep Error | awk '{print $1,$2}' | xargs -L1 kubectl delete pod -n

  • 清理 Completed 状态的 Pod

1

kubectl get pods --all-namespaces -o wide | grep Completed | awk '{print $1,$2}' | xargs -L1 kubectl delete pod -n

  • 清理没有被使用的 PV

1

kubectl describe -A pvc | grep -E "^Name:.*$|^Namespace:.*$|^Used By:.*$" | grep -B 2 "<none>" | grep -E "^Name:.*$|^Namespace:.*$" | cut -f2 -d: | paste -d " " - - | xargs -n2 bash -c 'kubectl -n ${1} delete pvc ${0}'

  • 清理没有被绑定的 PVC

1

kubectl get pvc --all-namespaces | tail -n +2 | grep -v Bound | awk '{print $1,$2}' | xargs -L1 kubectl delete pvc -n

  • 清理没有被绑定的 PV

1

kubectl get pv | tail -n +2 | grep -v Bound | awk '{print $1}' | xargs -L1 kubectl delete pv

2. Linux 清理

  • 查看磁盘全部空间

1 2 3 4

df -hl / Filesystem Size Used Avail Use% Mounted on /dev/sda2 100G 47G 54G 47% /

  • 查看指定目录占用

1 2 3

du -sh . 24G .

  • 删除指定前缀的文件夹

1 2

cd /nfsdata ls | grep archived- |xargs -L1 rm -r

  • 清理僵尸进程

1

ps -A -ostat,ppid | grep -e '^[Zz]' | awk '{print }' | xargs kill -HUP > /dev/null 2>&1

3. Docker 清理

  • 查看磁盘使用情况

1 2 3 4 5 6 7

docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 361 23 178.5GB 173.8GB (97%) Containers 29 9 6.682GB 6.212GB (92%) Local Volumes 4 0 3.139MB 3.139MB (100%) Build Cache 0 0 0B 0B

  • 清理 none 镜像

1

docker images | grep none | awk '{print $3}' | xargs docker rmi

  • 清理不再使用的数据卷

1

docker volume rm $(docker volume ls -q)

或者

1

docker volume prune

  • 清理缓存

1

docker builder prune

  • 全面清理

删除关闭的容器、无用的存储卷、无用的网络、dangling 镜像(无 tag 镜像)

1

docker system prune -f

  • 清理正则匹配上的镜像

这里清理的是 master-8bcf8d7-20211206-111155163 格式的镜像。

1

docker images |grep -E "([0-9a-z]*[-]){3,}[0-9]{9}" |awk '{print $3}' | xargs docker rmi

4. 设置定时

  • 查看定时任务

1

crontab -l

  • 设置定时任务

1

crontab -e

文本新增定时任务

1 2

*/35 */6 * * * docker images | grep none | awk '{print $3}' | xargs docker rmi 45 1 * * * docker system prune -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 代表周末

https://www.chenshaowen.com/blog/common-commands-for-cleaning-up-kubernetes-cluster-resources.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
目前为止最全的Kubernetes最新版核心命令
将自己多年的k8s操作命令做了笔记贡献出来,希望能帮到各位! #查看所有namespace的pods运行情况 kubectl get pods --all-namespaces #查看具体pods,记得后边跟namespace名字哦 kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system # 查看pods具体信息 kubectl get pods -o wide kubernetes-dashboard-
IT运维技术圈
2022/06/26
4660
kubeadm 安装kubernetes
-–image-repository:由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
以谁为师
2023/09/12
3420
kubeadm 安装kubernetes
istio-in-action - 01 安装 docker-k3s-istio 开发环境
kiali 是 istio 的一个可视化 dashboard, 必须配合 prometheus 一起使用才能达到最佳效果。
老麦
2022/12/24
4570
Kubernetes常用命令
Viewing Resource Information //查看资源信息
Cyylog
2020/08/19
6550
kubernetes集群搭建(8):常用命令
kubectl create -f xxxx.yaml            #创建rc、deploy、svc等        
肖哥哥
2018/08/02
3440
k8s运维命令大全
k8s常用命令 node 查看服务器节点 kubectl get nodes 查看服务器节点详情 kubectl get nodes -o wide 节点打标签 kubectl label nodes <节点名称> labelName=<标签名称> 查看节点标签 kubectl get node --show-labels 删除节点标签 kubectl label node <节点名称> labelName- pod 查看pod节点 kubectl get pod 查看pod节点详情 kubectl g
ruochen
2021/12/04
5K0
解决 Kubernetes 节点上的挂载点卡住问题:一次深入探索
在Kubernetes的日常操作中,我们可能会遇到各种各样的挑战和问题。最近,我遇到了一个特别棘手的问题:即使Pod 和Persistent Volume (PV) 已经被删除,它们之间的挂载关系仍然存在,导致整个集群的节点都无法使用 df -h 命令。本文将分享我是如何发现并解决这个问题的。
SRE运维手记
2024/08/30
2590
解决 Kubernetes 节点上的挂载点卡住问题:一次深入探索
常用 Kubernetes 诊断命令,助力排查集群故障
使用这些命令时,请记住将<namespace>, <pod-name>, <service-name>, <deployment-name>, <statefulset-name>, <configmap-name>, <secret-name>, <namespace-name>, <pv-name>, <pvc-name>, <node-name>, <network-policy-name>, <resource-quota-name>, <custom-resource-name>, 和替换为你的特定值。
公众号: 云原生生态圈
2024/01/04
4560
常用 Kubernetes 诊断命令,助力排查集群故障
Kubernetes(k8s)-常用命令(kubectl命令)
我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
运维小路
2025/03/03
1130
Kubernetes(k8s)-常用命令(kubectl命令)
这些linux、docker、k8s的命令,你知道多少呢
2、cd --切换目录(cd 有很多种用法,但是刚接触linux人的来说只要记住这个就可以了,剩下的以后慢慢学,如cd ..,cd -,cd ~,cd ../../等等)
格姗知识圈
2019/07/19
2K0
Kubernetes 经典命令
如果想玩玩单机版、集群版 k8s,可参见:基础设施服务k8s快速部署之HA篇,快速助力部署 k8s,还没毕业的都可以部署哟!
程序猿Damon
2020/05/21
1.5K0
附013.Kubernetes永久存储Rook部署
Ceph是一种高度可扩展的分布式存储解决方案,提供对象、文件和块存储。在每个存储节点上,将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程。在Ceph集群上,还存在Ceph MON(监控)守护程序,它们确保Ceph集群保持高可用性。
木二
2020/03/20
1.5K0
K8S 基础操作命令
#基础命令 kubectl get po/svc/cm/rc : 查看容器 kubectl describe po name :查看详情 kubectl delete po name :删除资源 -o wide : 多显示几列信息 --all-namespaces : 所有命名空间 -n name : 指定命名空间(default可以不带此参数) kubectl apply/create -f aaa.yaml : 执行yml文件 kubectl exec 容器名称 -it -- bash : 进入容器
问天丶天问
2018/06/13
1.3K0
n2-kubernetes操作命令详细一览
描述:该命令是安装K8s后的基础命令可以进行K8s主或者从节点的初始化,以及节点加入管理;
全栈工程师修炼指南
2020/10/23
8510
Docker 删除&清理容器和镜像相关命令
在 Docker 构建镜像过程产生的临时镜像,或者遗留下来的垃圾镜像,可以通过以下命令删除。
雪梦科技
2020/05/09
18.6K0
8个步骤彻底清理Docker镜像
在日常开发和维护工作中,Docker 镜像管理是一件既繁复又必要的工作。镜像积累如山,不仅占用宝贵的磁盘空间,还可能给我们的工作带来不便。今天,就让我带大家深入了解如何高效清理 Docker 镜像,保持我们的开发环境干净整洁。
希里安
2023/11/27
12.9K0
8个步骤彻底清理Docker镜像
初试 Kubernetes 集群使用 CephFS 文件存储
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aixiaoyang168/article/details/79056864
哎_小羊
2019/05/25
3.1K0
centos7使用kubeadm安装kubernetes 1.11版本多主高可用
关闭任一master节点测试集群是能否正常执行上一步的基础测试,查看相关信息,不能同时关闭两个节点,因为3个节点组成的etcd集群,最多只能有一个当机。
菲宇
2019/06/12
8130
k8s kubectl 常用命令
kubectl get pod --all-namespaces # 更多pod相关的信息 kubectl get pod -o wide --all-namespaces # 更多svc相关的信息 kubectl get svc -o wide --all-namespaces kubectl get svc --all-namespaces kubectl get svc -n kubernetes-dashboard # 命名空间下的所以资源 kubectl -n kubernetes-dashbo
崔哥
2022/05/25
2410
k8s(kubernetes) 常用命令
要以特定格式将详细信息输出到终端窗口,可以将 -o 或 --output 参数添加到支持的 kubectl 命令
玖柒的小窝
2021/09/13
5.2K0
相关推荐
目前为止最全的Kubernetes最新版核心命令
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档