0

kubernetes cron 作业应该每 10 分钟运行一次,并且应该删除集群中所有命名空间中处于“Terminating”状态的 Pod?请帮帮我....我正在为 bash one liner shell 脚本而苦苦挣扎

  apiVersion: batch/v1
  kind: Job
  metadata:
  name: process-item-$ITEM
  labels:
  jobgroup: jobexample
  spec:
  template:
  metadata:
  name: jobexample
  labels:
    jobgroup: jobexample
spec:
  containers:
  - name: c
    image: busybox
    command: ["sh", "-c", "echo Processing item $ITEM && sleep 5"]
  restartPolicy: Never
4

1 回答 1

1

以 {namespace}.{name} 格式列出所有命名空间中的所有终止 pod

kubectl get pods --field-selector=status.phase=Terminating --output=jsonpath='{range .items[*]}{.metadata.namespace}{"."}{.metadata.name}{"\n"}{end}' --all-namespaces=true

给定一个 pod 的名称和它的命名空间,它可以被强制删除

kubectl delete pods <pod> --grace-period=0 --force --ns=<namespace>

在一行中

for i in `kubectl get pods --field-selector=status.phase=Terminating --output=jsonpath='{range .items[*]}{.metadata.namespace}{"."}{.metadata.name}{"\n"}{end}' --all-namespaces=true`; do kubectl delete pods ${i##*.} --grace-period=0 --force --ns=${i%%.*}; done
于 2019-03-14T04:20:50.173 回答