Kubernetes
Kubernetes cheatsheet
Kubernetes notes and cheatsheet
Special Use Cases
If you need too delete a pod, and can not wait for it to stop and terminate, you can force the delettions with the following:
kubectl delete pods -n --force < namespace > --grace-period=0Flags
--grace-period: Period of time in seconds given to the resource to terminate gracefully. Ignored if negative. Set to 1 for immediate shutdown. Can only be set to 0 when --force is true (force deletion).--force: Only used when grace-period=0. If true, immediately remove resources from API and bypass graceful deletion. Note that immediate deletion of some resources may result in inconsistency or data loss and requires confirmation.
General Troubleshooting
Below are a few basic general areas to look into when trying to debug a issues depending on what the problem is.
- Describe pod
- logs pod
- exec into pod to see whats going on
Deleting A Namespace
#!/bin/bash
# ./delete_namespace.sh <namespace> export k8s_namespace=$1
echo "~~ Removing deployments ~~"
kubectl get deployment -n "$k8s_namespace" | grep -v NAME | awk '{print $1}' | xargs -I arg kubectl delete deployment -n "$k8s_namespace" arg
echo ""
echo "~~ Removing statefulsets ~~"
kubectl get statefulsets -n "$k8s_namespace" | grep -v NAME | awk '{print $1}' | xargs -I arg kubectl delete statefulsets -n "$k8s_namespace" arg
echo ""
echo "~~ Removing jobs ~~"
kubectl get jobs -n "$k8s_namespace" | grep -v NAME | awk '{print $1}' | xargs -I arg kubectl delete job -n "$k8s_namespace" arg
echo ""
echo "~~ Removing pods ~~"
kubectl get pods -n "$k8s_namespace" | grep -v NAME | awk '{print $1}' | xargs -I arg kubectl delete pod -n "$k8s_namespace" arg --force --grace-period=0
echo ""
echo "~~ Removing secrets ~~"
kubectl get secrets -n "$k8s_namespace" | grep -v NAME | awk '{print $1}' | xargs -I arg kubectl delete secret -n "$k8s_namespace" arg
echo ""
echo "~~ Removing PVC's ~~"
kubectl -n "$k8s_namespace" get pvc | grep -v NAME | awk '{print $1}' | xargs -I arg kubectl delete pvc -n "$k8s_namespace" arg
echo ""
echo "~~ Removing namespace ${k8s_namespace} ~~"
kubectl delete namespace "$k8s_namespace"
echo ""
echo "~~ Removing helm releases ~~"
helm ls --namespace "$k8s_namespace" | grep -v NAME | awk '{print $1}' | xargs -I arg helm delete --purge arg
echo ""