gpt4 book ai didi

bash - k8s CronJob 在 pod 列表上循环

转载 作者:行者123 更新时间:2023-12-02 06:24:32 30 4
gpt4 key购买 nike

我想在特定命名空间中的 Pod 上运行循环,但诀窍是在 cronJob 中执行此操作,是否可以内联

kubectl get pods -n foo

这里的技巧是在你获得 Pod 列表后,我需要循环并在 15 秒的超时时间内将每个 Pod 删除,是否可以在 cronJob 中执行此操作?

apiVersion: batch/v1
kind: CronJob
metadata:
name: restart
namespace: foo
spec:
concurrencyPolicy: Forbid
schedule: "*/1 * * * *"
jobTemplate:
spec:
backoffLimit: 2
activeDeadlineSeconds: 600
template:
spec:
serviceAccountName: pod-exterminator
restartPolicy: Never
containers:
- name: kubectl
image: bitnami/kubectl:1.22.3
command:
- 'kubectl'
- 'get'
- 'pods'
- '--namespace=foo'

当运行上面的脚本时它可以工作,但是当你想运行循环时它会变得复杂,我怎样才能内联完成它?

最佳答案

在你的情况下,你可以使用这样的东西:

apiVersion: batch/v1
kind: CronJob
metadata:
name: restart
namespace: foo
spec:
concurrencyPolicy: Forbid
schedule: "*/1 * * * *"
jobTemplate:
spec:
backoffLimit: 2
activeDeadlineSeconds: 600
template:
spec:
serviceAccountName: pod-exterminator
restartPolicy: Never
containers:
- name: kubectl
image: bitnami/kubectl:1.22.3
command:
- /bin/sh
- -c
- kubectl get pods -o name | while read -r POD; do kubectl delete "$POD"; sleep 15; done

但是,你真的需要等待15秒吗?如果你想在删除下一个 Pod 之前确保该 Pod 已经消失,可以使用 --wait=true,所以命令将变为:

kubectl get pods -o name |  while read -r POD; do kubectl delete "$POD" --wait; done

关于bash - k8s CronJob 在 pod 列表上循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71148660/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com