【问题标题】:Pod self deletePod 自我删除
【发布时间】:2021-05-13 08:14:11
【问题描述】:

在我的环境中,我有一项服务可以生成具有必要配置的yml,因此可以使用kubectl apply 执行该文件以创建一个pod。 我的问题是:我可以生成一个带有指令的yml 文件,以便在状态完成时 pod 可以自行删除(status.phase==Succeeded )?

目前,我正在使用cronjobs 解决此问题。另外,我知道我可以使用kubectl delete pod --field-selector=status.phase==Succeeded --namespace <namespace> 之类的东西,但我想知道它是否可以通过 pod 的配置文件来完成(yml)。

这是由服务(构建器)生成的文件,用kubectl apply -f <yml file>执行:

apiVersion: batch/v1
kind: Job
metadata:
  name: order-test
  namespace: my-namespace
spec:
  ttlSecondsAfterFinished: 100
  template:
    spec:
      containers:
      - name: order-test
        image: namespace/image:version
        env:
          - name: example
            value: "test"
      restartPolicy: Never
  backoffLimit: 4

我想在它达到所需状态后自动删除它。

【问题讨论】:

    标签: kubernetes devops kubernetes-pod


    【解决方案1】:

    使用职位历史限制 .spec.successfulJobsHistoryLimit.spec.failedJobsHistoryLimit 字段是可选的。这些字段指定应保留多少已完成和失败的作业。默认情况下,它们分别设置为 3 和 1。将限制设置为 0 对应于在完成后不保留相应类型的作业。

    参考:https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#jobs-history-limits

    【讨论】:

    • 如您所见,在我的yml 文件中,有2 个spec 对象。我试图在它们两个内部设置successfulJobsHistoryLimit: 0,但它没有用。您能否编辑您的答案,构建 yml 文件并设置此字段?
    • 正如我的研究表明的那样,failedJobsHistoryLimit 这个字段仅在 CronJob 文件中可用,在我的情况下不可用,kindJob
    猜你喜欢
    • 2019-07-31
    • 2021-10-05
    • 2019-07-16
    • 2017-08-30
    • 2019-12-27
    • 2019-03-16
    • 2018-01-16
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多