Kubernetes 任务

Kubernetes 任务

任务的主要功能是创建一个或多个pod,并跟踪pod的成功情况。它们确保指定数量的pod成功完成。当指定数量的pod成功运行完成后,任务被视为完成。

创建一个任务

使用以下命令创建一个任务 –

apiVersion: v1
kind: Job ------------------------> 1
metadata:
   name: py
   spec:
   template:
      metadata
      name: py -------> 2
      spec:
         containers:
            - name: py ------------------------> 3
            image: python----------> 4
            command: ["python", "SUCCESS"]
            restartPocliy: Never --------> 5

在上面的代码中,我们已经定义了以下内容−

  • 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。

$ kubectl create –f py.yaml

上述命令将创建一个作业。如果您想查看作业的状态,请使用以下命令。

$ kubectl describe jobs/py

上述命令将创建一个作业。如果您想检查作业的状态,请使用以下命令。

计划作业

Kubernetes中的计划作业使用 Cronetes ,它接收Kubernetes作业并在Kubernetes集群中启动它们。

  • 计划作业将在指定的时间点运行一个Pod。
  • 为此创建了一个模拟作业,它会自动调用自身。

注意 - 计划作业的功能支持版本1.4,并且通过传递 -runtime-config=batch/v2alpha1 来启动API服务器。

我们将使用与创建作业相同的yaml文件,并将其变为计划作业。

apiVersion: v1
kind: Job
metadata:
   name: py
spec:
   schedule: h/30 * * * * ? -------------------> 1
   template:
      metadata
         name: py
      spec:
         containers:
         - name: py
         image: python
         args:
/bin/sh -------> 2
-c
ps –eaf ------------> 3
restartPocliy: OnFailure

在上面的代码中,我们定义了以下内容-

  • schedule: h/30 * * * * ? → 将工作计划设置为每30分钟运行一次。

  • /bin/sh: 这将使用/bin/sh进入容器。

  • ps –eaf → 在机器上运行ps -eaf命令,并列出容器内运行的所有进程。

当我们试图在特定时间点构建和运行一组任务,然后完成流程时,这个定时任务的概念非常有用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程