Created
October 25, 2021 07:49
-
-
Save techdecline/d2ad4c00c7800338d9a86cac1eb727b9 to your computer and use it in GitHub Desktop.
Kubernetes Maintenance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #region Cleanup Failed Pods | |
| # get all pods | |
| $allPods = (. kubectl get pods --all-namespaces -o json | ConvertFrom-Json).items | |
| # get failed pods | |
| $failedPods = $allPods | Where-Object {$_.status.phase -eq "Failed"} | |
| # remove failed pods | |
| $failedPods | ForEach-Object { | |
| . kubectl delete pod $($_.metadata.name) -n $($_.metadata.namespace) | |
| } | |
| #endregion | |
| #region Cleanup Completed Pods | |
| # get all pods | |
| $allPods = (. kubectl get pods --all-namespaces -o json | ConvertFrom-Json).items | |
| # get failed pods | |
| $completedPods = $allPods | Where-Object {$_.status.phase -eq "Succeeded"} | |
| # remove failed pods | |
| $completedPods | ForEach-Object { | |
| . kubectl delete pod $($_.metadata.name) -n $($_.metadata.namespace) | |
| } | |
| #endregion | |
| #region Cleanup Failed Jobs | |
| # get all jobs | |
| $allJobs = (. kubectl get jobs --all-namespaces -o json | ConvertFrom-Json).items | |
| # get failed pods | |
| $failedJobs = $allJobs | Where-Object {$_.status.conditions.type -eq "Failed"} | |
| # remove failed pods | |
| $failedJobs | ForEach-Object { | |
| . kubectl delete job $($_.metadata.name) -n $($_.metadata.namespace) | |
| } | |
| #endregion | |
| #region Cleanup Old Jobs | |
| # get all jobs | |
| $allJobs = (. kubectl get jobs --all-namespaces -o json | ConvertFrom-Json).items | |
| # get jobs older that 2d | |
| $oldJobs = $allJobs | Where-Object {(get-date $_.status.completionTime) -lt (get-date).AddDays(-2)} | |
| # remove Old Jobs | |
| $oldJobs | ForEach-Object { | |
| . kubectl delete job $($_.metadata.name) -n $($_.metadata.namespace) | |
| } | |
| #endregion |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment