Kubernetes 任务
任务的主要功能是创建一个或多个pod,并跟踪pod的成功情况。它们确保指定数量的pod成功完成。当指定数量的pod成功运行完成后,任务被视为完成。
创建一个任务
使用以下命令创建一个任务 –
在上面的代码中,我们已经定义了以下内容−
- kind: Job → 我们定义了kind为Job,这将告诉kubectl该yaml文件用于创建一个Job类型的Pod。
-
Name:py → 这是我们使用的模板的名称,spec定义了模板。
-
name: py → 在容器规范下,我们给了一个名字为py,可以帮助标识要创建的Pod。
-
Image: python → 我们将要拉取的镜像,用于创建在Pod内运行的容器。
-
restartPolicy: Never → 给出了图像重启的条件为Never,这意味着如果容器被杀死或者为false,它将不会重新启动。
我们将使用以下命令使用保存有名称为 py.yaml 的yaml文件来创建Job。
上述命令将创建一个作业。如果您想查看作业的状态,请使用以下命令。
上述命令将创建一个作业。如果您想检查作业的状态,请使用以下命令。
计划作业
Kubernetes中的计划作业使用 Cronetes ,它接收Kubernetes作业并在Kubernetes集群中启动它们。
- 计划作业将在指定的时间点运行一个Pod。
- 为此创建了一个模拟作业,它会自动调用自身。
注意 - 计划作业的功能支持版本1.4,并且通过传递 -runtime-config=batch/v2alpha1 来启动API服务器。
我们将使用与创建作业相同的yaml文件,并将其变为计划作业。
在上面的代码中,我们定义了以下内容-
- schedule: h/30 * * * * ? → 将工作计划设置为每30分钟运行一次。
-
/bin/sh: 这将使用/bin/sh进入容器。
-
ps –eaf → 在机器上运行ps -eaf命令,并列出容器内运行的所有进程。
当我们试图在特定时间点构建和运行一组任务,然后完成流程时,这个定时任务的概念非常有用。