首页 > 解决方案 > 清理 Kubernetes 工作

问题描述

我有一个将 db-job 部署到 k8s 的大三角帆管道。我希望能够在部署另一个作业之前删除该作业,即添加一个大三角帆舞台或以某种方式配置作业,以便它自行删除。我知道 cronjob 会非常适合它,但它处于测试阶段并且不够稳定,无法用于数据库操作。我试图像这样向大三角帆添加一个舞台:

{
        "account": "k8s-devops-v2",
        "cloudProvider": "kubernetes",
        "location": "loc",
        "manifestArtifactAccount": "loc-open-source",
        "manifestName": "job my-job-name",
        "mode": "static",
        "name": "Delete Db job",
        "options": {
          "cascading": true,
          "gracePeriodSeconds": null
        },
        "type": "deleteManifest"
      }

但它不会工作。我也不想使用 ttl,因为在创建新工作之前,我不希望有最新的工作。还有其他选择吗?对此的最佳做法是什么?

标签: kubernetesdevopsspinnakerkubernetes-jobs

解决方案


根据您运行的 kubernetes 版本,您可以在 k8s 作业本身中执行此操作:https ://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#jobs-history-limits . 需要注意的是,除非您通过某种刮板收集日志,否则一旦删除,除非您及时到达集群,否则您将无法看到该作业做了什么。


推荐阅读