【问题标题】:Kubernetes Job is not getting terminated even after specifying "activeDeadlineSeconds"即使指定了“activeDeadlineSeconds”,Kubernetes 作业也没有终止
【发布时间】:2019-09-25 12:43:17
【问题描述】:

我的 yaml 文件

apiVersion: batch/v1
kind: Job
metadata:
  name: auto
  labels:
    app: auto
spec:
  backoffLimit: 5
  activeDeadlineSeconds: 100
  template:
    metadata:
      labels:
        app: auto
    spec:
      containers:
      - name: auto
        image: busybox
        imagePullPolicy: Always
        ports:
        - containerPort: 9080
      imagePullSecrets: 
      - name: imageregistery
      restartPolicy: Never

pod 被适当地杀死,但作业在 100 秒后停止自我杀死。

在容器/pod 的功能完成后,我们可以做些什么来终止工作。

kubectl version --short

Client Version: v1.6.1
Server Version: v1.13.10+IKS


kubectl get jobs --namespace abc
NAME          DESIRED   SUCCESSFUL   AGE
auto   1         1            26m

谢谢,

【问题讨论】:

  • Kubernetes 保留 pod,因此您可以从中获取日志、配置等,我认为您可以使用 TTLAfterFinished 更快地删除 pod
  • @ErezBenHarush,你能给我一个关于我的 xml 文件的 TTLAAfterFinished 的例子............我可以用吗???
  • 那也没有清理工作。我的代码:规范:backoffLimit:5 #activeDeadlineSeconds:100 ttlSecondsAfterFinished:100

标签: kubernetes kubectl kubernetes-pod


【解决方案1】:

作业完成后删除作业的默认方法是使用kubectl delete 命令。

正如@Erez 所说:

Kubernetes 会保留 pod,以便您获得 日志,配置等。

如果您不想手动执行此操作,您可以编写一个在集群中运行的脚本,该脚本将检查具有已完成状态的作业,然后将其删除。

另一种方法是使用 TTL 功能,在指定的秒数后自动删除作业。但是,如果您将其设置为零,它会立即清理它们。有关如何设置的更多详细信息,请查看here

如果有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多