kubernetes 如何在k8s中手动触发kubernates作业(不是cron)

m4pnthwp  于 2023-11-17  发布在  Kubernetes
关注(0)|答案(3)|浏览(151)

我有一个示例k8s作业,只要你执行kubectl apply,作业就会被触发,pod就会被创建。如何控制pod的创建?

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

字符串

tktrz96b

tktrz96b1#

触发器正在运行kubectl apply。当您创建Job时,它会运行。您可能正在寻找功能更全的后台任务系统,如Airflow或Argo。

llycmphe

llycmphe2#

您可以使用suspend: true,然后当您准备好启动作业时,只需将suspend更新为false
参考号:https://kubernetes.io/blog/2021/04/12/introducing-suspended-jobs/

xriantvc

xriantvc3#

如果你想手动控制pod的创建,你可以通过并行来实现。
文档说:
请求的并行度(.spec.parallelism)可以设置为任何非负值。如果未指定,则默认为1。如果指定为0,则作业将有效暂停,直到增加该值。
您可以在执行kubectl apply时将其设置为0。

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

字符串
您可以在决定运行时将其设置为1。

相关问题