自动清理完成的 Job

完成的 Job 通常不需要留存在系统中。在系统中一直保留它们会给 API 服务器带来额外的压力。 如果 Job 由某种更高级别的控制器来管理,例如 CronJobs, 则 Job 可以被 CronJob 基于特定的根据容量裁定的清理策略清理掉。

TTL成品资源控制器

TTL控制器提供TTL(生存时间)机制来限制已完成执行的资源对象的生存期。TTL控制器仅处理 职位 目前,它可能会扩展为处理其他将完成执行的资源,例如Pods和自定义资源。

Alpha免责声明:此功能当前为Alpha,可通过kube-apiserver和kube-controller-manager功能gate 启用 TTLAfterFinished。

  • 操作实践
    在kube-apiserver.yaml和kube-controller-manager.yaml加入- --feature-gates=TTLAfterFinished=true命令

cat /etc/kubernetes/manifests/kube-controller-manager.yaml

apiVersion: v1
...
spec:
  containers:
  - command:
...
    - --service-account-private-key-file=/etc/kubernetes/pki/sa.key
    - --use-service-account-credentials=true
    - --feature-gates=TTLAfterFinished=true
e
...

cat /etc/kubernetes/manifests/kube-apiserver.yaml

apiVersion: v1
...
spec:
  containers:
  - command:
    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
    - --feature-gates=DynamicKubeletConfig=true,TTLAfterFinished=true
...

重启kubelet:systemctl restart kubelet

已完成 Job 的 TTL 机制

FEATURE STATE: Kubernetes v1.12 [alpha]
自动清理已完成 Job (状态为 Complete 或 Failed)的另一种方式是使用由 TTL 控制器所提供 的 TTL 机制。 通过设置 Job 的 .spec.ttlSecondsAfterFinished 字段,可以让该控制器清理掉 已结束的资源。

TTL 控制器清理 Job 时,会级联式地删除 Job 对象。 换言之,它会删除所有依赖的对象,包括 Pod 及 Job 本身。 注意,当 Job 被删除时,系统会考虑其生命周期保障,例如其 Finalizers。
例如:

apiVersion: batch/v1
kind: Job
metadata:
  name: pi-with-ttl
spec:
  ttlSecondsAfterFinished: 100
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never

Job pi-with-ttl 在结束 100 秒之后,可以成为被自动删除的标的。

如果该字段设置为 0,Job 在结束之后立即成为可被自动删除的对象。 如果该字段没有设置,Job 不会在结束之后被 TTL 控制器自动清除。

注意这种 TTL 机制仍然是一种 Alpha 状态的功能特性,需要配合 TTLAfterFinished 特性门控使用。有关详细信息,可参考 TTL 控制器的文档。

查看pod运行状态

kubectl describe jobs/pi-with-ttl

查看pod日志

pods=$(kubectl get pods --selector=job-name=pi-with-ttl --output=jsonpath='{.items[*].metadata.name}')
echo $pods
kubectl logs $pods
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐