触发定义的 kubernetes 作业

触发定义的 kubernetes 作业

我有一个简单的工作,它在 YAML 文件中定义类似于以下内容:

apiVersion: batch/v1
kind: Job
metadata:
  name: check_deps
spec:
  template:
    spec:
      containers:
      - name: production-container
        image: registry.company.com/app:master
        imagePullPolicy: Always
        envFrom:
        - configMapRef:
            name: production
        args:
        - python
        - check_dependencies
      restartPolicy: Never

我想从 CI 触发此作业,并在其失败或成功时收到信息。
只需一个简单的命令,例如:

kubectl run job --name=check_deps --watch

文档说我需要从 yaml 创建作业,读取其输出,然后分 3 个步骤将其删除。我可以创建一个脚本来执行此操作,但也许有一个内置解决方案可以让我实现我的目标?

我在裸机 CentOs 上运行 kubernetes,客户端和服务器的版本都是 1.11。

答案1

Kubernetes 中没有这样的内置功能。您可以使用kubectl create命令,但仍必须编写自己的脚本来运行它并检查状态。

答案2

您可以运行kubectl wait --for=condition=complete job/check_deps。您仍然需要在之前和之后创建和删除作业,但使用该命令,您最终会得到一个相当干净和简单的方法。

相关内容