Kubernetes强制删除/杀死Pod

这是续集。
您可以通过以下链接以PDF格式下载本文来支持我们。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

这个简短的教程演示了如何删除Kubernetes集群中已删除或终止的Pod。在驱逐和终止中找到豆荚的原因很多。疏散通常是工作节点资源压力或应用程序错误的结果。终止可能是缩小应用程序规模或在旧Pod终止后部署应用程序的新版本的结果。

运行在集群中每个节点上的kubelet服务负责驱逐Pod。吊舱逐出的顺序如下:

  • 尽力而为– QoS级别
  • 比可爆发资源请求使用更多资源的可爆发Pod。
  • 可爆荚使用的资源少于对缺少资源的请求。

您可以通过运行以下命令来获取停留在“已终止”或“已退出”状态的命名空间容器列表:

kubectl get pods -n namespace | egrep -i 'Terminated|Evicted'

Kubernetes强制删除/杀死Pod

您可以通过多种方式删除这些窗格。

使用kubectl和Bash本机命令

这些是带有过滤功能的bash命令,用于强制删除停留在“已退出”或“已终止”状态的命名空间容器。

# Define namespace
namespace="mynamespace"

# Get all pods in Terminated / Evicted State
epods=$(kubectl get pods -n ${namespace} | egrep -i 'Terminated|Evicted' | awk '{print $1 }')

# Force deletion of the pods

for i in ${epods[@]}; do
  kubectl delete pod --force=true --wait=false --grace-period=0 $i -n ${namespace}
done

检查此状态下是否还有豆荚。

kubectl get pods -n ${namespace} | egrep -i 'Terminated|Evicted'

删除所有命名空间中已删除并关闭的所有Pod

kubectl get pods --all-namespaces | egrep -i  'Evicted|Terminated' | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod --force=true --wait=false --grace-period=0

从所有名称空间中删除了所有处于ImagePullBackOff状态的容器–奖励

kubectl get pods --all-namespaces | grep 'ImagePullBackOff' | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod

从所有名称空间中删除所有具有ImagePullBackOff或ErrImagePull状态的容器

kubectl get pods --all-namespaces | grep -E 'ImagePullBackOff|ErrImagePull|Evicted' | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod

使用kubectl过滤器和jq

您还可以过滤kubectl命令的输出并将其通过管道传输到jq以获取特定的列。

首先安装jq命令。

--- Ubuntu / Debian ---
$ sudo apt update && sudo apt install jq

--- CentOS/Fedora ---
$ sudo yum -y install epel-release
$ sudo yum -y install jq

--- RHEL ---
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O jq
chmod +x jq
sudo mv jq /usr/local/bin

然后使用以下命令删除被驱逐的Pod:

kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted")) | "kubectl delete pods (.metadata.name) -n (.metadata.namespace)"' | xargs -n 1 bash -c

保持联系以获取关于容器的更有趣的指南。另外,请查看我们的网站以获取其他相关文章。

在EKS Kubernetes集群上安装Istio Service Mesh

如何解码/解码Kubernetes机密

如何在命名空间之间复制Kubernetes机密

Kubernetes课程:


Kubernetes初学者练习

★★★★★
(16527)

$ 11.81

$ 159.48

有现货

立即购买

Kubernetes强制删除/杀死PodUdemy.com


Kubernetes管理员(CKA)认证和认证测试

合格且经过测试的Kubernetes管理员(CKA)

★★★★★
(14265)

$ 11.81

$ 159.48

有现货

立即购买

Kubernetes强制删除/杀死PodUdemy.com


Kubernetes认证的具有Test的应用程序开发人员(CKAD)

Kubernetes认证的具有Test的应用程序开发人员(CKAD)

★★★★★
(6721)

$ 11.81

$ 159.48

有现货

立即购买

Kubernetes强制删除/杀死PodUdemy.com

您可以通过以下链接以PDF格式下载本文来支持我们。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

Sidebar