#!/bin/bash
# 配置参数
LOG_FILE="/var/log/k8s_resource_cleanup.log"
# 检查并创建日志文件
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
fi
# 记录日志函数
log() {
echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" >> "$LOG_FILE"
}
# 清理未使用的Pod
log "Cleaning up unused Pods..."
kubectl get pods --all-namespaces --field-selector status.phase=Failed -o jsonpath='{.items[*].metadata.name}' | xargs -r kubectl delete pod
# 清理未使用的Job
log "Cleaning up unused Jobs..."
kubectl get jobs --all-namespaces --field-selector status.succeeded=0 -o jsonpath='{.items[*].metadata.name}' | xargs -r kubectl delete job
# 清理未使用的CronJob
log "Cleaning up unused CronJobs..."
kubectl get cronjobs --all-namespaces --field-selector status.active=0 -o jsonpath='{.items[*].metadata.name}' | xargs -r kubectl delete cronjob
log "Resource cleanup completed successfully."