kubectl get pod |grep Evicted|grep -v session|awk '{print $1}'|xargs kubectl delete pod
时间: 2024-10-18 14:23:12 浏览: 19
要执行 `kubectl` 命令以查找并删除具有 "Evicted" 标记但不包含 "session" 的Pod,你可以按照以下步骤操作:
1. 获取当前命名空间下的所有 Pod 信息,筛选出状态为 "Evicted" 的Pod[^1]:
```bash
kubectl get pods -n kube-system | grep Evicted
```
2. 排除含有 "session" 字符串的Pod(这里假设"session"出现在Pod名称中):
```bash
kubectl get pods -n kube-system | grep Evicted | grep -v "session"
```
3. 使用 `awk` 提取每个Pod的名称(第1列),因为 `xargs` 需要单个参数:
```bash
kubectl get pods -n kube-system | grep Evicted | grep -v "session" | awk '{print $1}'
```
4. 最后,利用 `xargs` 删除这些筛选后的Pod,注意添加 `-n 1` 参数以一次只删除一个Pod,以防止并发删除可能导致的问题[^2]:
```bash
kubectl get pods -n kube-system | grep Evicted | grep -v "session" | awk '{print $1}' | xargs -n 1 kubectl delete pod -n kube-system --force --grace-period=0
```
这个命令会删除所有状态为 "Evicted" 且不包含 "session" 的Pod。
阅读全文