使用 AGE 标签列出 kubernetes pvc

List kubernetes pvc using labels of AGE

我的 kubernetes aws eks 集群中有超过 4000 个 pvc。

从那 4000 多个 pvc 中,我必须删除将近 3999 个 pvc,而不是删除像 30 个 pvc。

我将使用命令:

kubectl delete pvc --field-selector metadata.name!=<name not to delete>

在使用前进行测试

kubectl get pvc --field-selector metadata.name!=<name not to delete>

正如我提到的,我不想删除 30 个 pvc,但我确实想删除其余 4000 个...所以我需要在命令前面添加这 30 个 pvc。所以我需要这方面的帮助。

你可以试试

kubectl get pvc --field-selector metadata.name!=pvc1,metadata.name!=pvc2

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get

虽然任务量有点大,但您可以使用类似下面的内容,在删除之前也打印每个 PVC 的名称,以确保:

_contains () {  
  echo "" | tr ' ' '\n' | grep -F -x -q ""
}

deleteList="claim-http-0 claim-http-1"

for each in $(kubectl get pvc -o jsonpath="{.items[*].metadata.name}" | tr " " "\n");
do
  if _contains "${deleteList}" "${each}"; then
    echo $each
    kubectl delete pvc $each
  fi
done