如何删除特定命名空间的特定部署的所有 Pod?

Yos*_*arl 2 bash kubernetes

我正在寻找一种方法来删除特定命名空间的特定部署的所有 pod。换句话说,给定:

x - 命名空间
列表 y - 部署列表

for i in x:
  for j in y:
    delete all pods of deployment j in namespace i
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何在 bash 命令中执行此操作,我会很高兴。

谢谢!

cod*_*ger 5

通常,您可以使用标签选择器来执行此操作。您可以在模板元数据中添加一些内容,例如labels: {app: foo}然后kubectl delete pod --all-namespaces -l app=foo


Ric*_*ico 5

我相信这样的事情会做到:

#!/bin/bash

NAMESPACES=( n1 n2 n3 )
DEPLOYMENTS=( dep1 dep2 dep3 )

for i in "${NAMESPACES[@]}"
do
  for x in "${DEPLOYMENTS[@]}"
  do
     # Get the pods in the deployment
     PODS=$(kubectl -n $i get pods --no-headers | awk '{print $1}' | grep $x | tr '\n' ' ')
     kubectl -n $i delete pods $PODS
  done
done
Run Code Online (Sandbox Code Playgroud)