diff --git a/pipelines/cluster-clear-disk-more.yaml b/pipelines/cluster-clear-disk-more.yaml new file mode 100644 index 00000000..bec04fb2 --- /dev/null +++ b/pipelines/cluster-clear-disk-more.yaml @@ -0,0 +1,21 @@ +apiVersion: crd.chenshaowen.com/v1 +kind: Pipeline +metadata: + name: cluster-clear-disk-more + namespace: ops-system +spec: + desc: 深度、更多清理节点磁盘 + variables: + typeRef: + value: "cluster" + required: true + nameRef: + required: true + nodeName: + regex: "\b[a-zA-Z-]*node[a-zA-Z-]*\b" + required: true + tasks: + - name: 检查节点是否存在 + ref: check-node-existed + - name: 清理磁盘 + ref: clear-disk diff --git a/pipelines/cluster-clear-disk.yaml b/pipelines/cluster-clear-disk.yaml index 573e23c5..44285d31 100644 --- a/pipelines/cluster-clear-disk.yaml +++ b/pipelines/cluster-clear-disk.yaml @@ -4,7 +4,7 @@ metadata: name: cluster-clear-disk namespace: ops-system spec: - desc: 磁盘使用率超过阈值时清理磁盘 + desc: 清理节点磁盘 variables: typeRef: value: "cluster" diff --git a/tasks/clear-disk-more.yaml b/tasks/clear-disk-more.yaml new file mode 100644 index 00000000..a57fbdc9 --- /dev/null +++ b/tasks/clear-disk-more.yaml @@ -0,0 +1,32 @@ +apiVersion: crd.chenshaowen.com/v1 +kind: Task +metadata: + name: clear-disk-more + namespace: ops-system +spec: + desc: clear disk more + typeRef: cluster + steps: + - name: before clear + content: | + timeout 5 df -H | grep -vE '^Filesystem|tmpfs|cdrom|loop|udev' | awk '{ print $5 "/" $2 " " $1 }' |grep " "/ + - name: clear image + content: (nerdctl --namespace k8s.io image prune -f 2>/dev/null || docker image prune -a -f 2>/dev/null || true) | grep "Untagged" || true + - name: clear container + content: nerdctl --namespace k8s.io container prune -f 2>/dev/null || docker container prune -a -f 2>/dev/null || true + - name: clear network + content: nerdctl --namespace k8s.io network prune -f 2>/dev/null || docker network prune -a -f 2>/dev/null || true + - name: clear volume + content: nerdctl --namespace k8s.io volume prune -f 2>/dev/null || docker volume prune -a -f 2>/dev/null || true + - name: clear > 100M log in /var/log + content: find /var/log -type f -name "*.log" -size +100M -exec sh -c 'for file do echo "cleaned $file" >&2; echo "" > "$file"; done' sh {} + + - name: clear > 100M log in /data/run + content: find /data/run -type f -name "*.log" -size +50M -exec sh -c 'for file do echo "cleaned $file" >&2; echo "" > "$file"; done' sh {} + + - name: clear jfs cache + content: | + find /data/jfs/cache2/ -maxdepth 7 -type d -ctime +7 -exec rm -rf {} + 2>/dev/null || true + find /var/lib/jfs/cache/ -maxdepth 7 -type d -ctime +7 -exec rm -rf {} + 2>/dev/null || true + find /var/lib/jfs/cache2/ -maxdepth 7 -type d -ctime +7 -exec rm -rf {} + 2>/dev/null || true + - name: after clear + content: | + timeout 5 df -H | grep -vE '^Filesystem|tmpfs|cdrom|loop|udev' | awk '{ print $5 "/" $2 " " $1 }' |grep " "/