发现很多pod的状态为evicted
eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。
多见于资源不足时导致的驱赶
排查资源和异常原因,防止新的驱赶产生。
使用如下命令删除旧驱赶的遗留

kubectl get pods -n kube-public | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n kube-public
cat /data/alarm/del_evicted_pod.sh
#!/bin/bash
which jq || yum install jq -y 
/opt/kubernetes/bin/kubectl get pods -A |grep Evicted && /opt/kubernetes/bin/kubectl get pods --all-namespaces -o json | /usr/bin/jq -r '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted")) | .metadata.name + " " + .metadata.namespace' | xargs -n2 -l /usr/bin/bash -c '/opt/kubernetes/bin/kubectl delete pods $0 --namespace=$1'

最根本的还是要解决资源问题

Logo

开源、云原生的融合云平台

更多推荐