📜  Kubernetes-工作

📅  最后修改于: 2020-11-01 04:10:57             🧑  作者: Mango


一项工作的主要函数是创建一个或多个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

在上面的代码中,我们定义了-

  • 种类:作业→我们将种类定义为作业,它将告诉kubectl所使用的yaml文件用于创建作业类型容器。

  • 名称:py→这是我们正在使用的模板的名称,规范定义了该模板。

  • 名称:py→我们在容器规范下给了一个名称py ,以帮助识别将要从中创建的Pod。

  • 图像: Python →我们将要拉出的图像,以创建将在容器内运行的容器。

  • restartPolicy:从不→此映像重新启动的条件为“从不”,这意味着如果容器被杀死或为假,则它将不会自行重启。

我们将使用以下带有yaml的命令来创建作业,该命令以名称py.yaml保存。

$ kubectl create –f py.yaml

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

$ kubectl describe jobs/py

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

预定工作

Kubernetes中的计划作业使用Cronetes ,后者将Kubernetes的工作并在Kubernetes集群中启动。

  • 计划作业将在指定的时间点运行pod。
  • 将为其创建一个仿冒作业,该作业会自动调用自身。

– 1.4版支持计划作业的功能,并在启动API服务器时传递–runtime-config = batch / v2alpha1来打开betch / v2alpha 1 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

在上面的代码中,我们定义了-

  • 时间表:h / 30 * * * *? →计划每30分钟运行一次作业。

  • / bin / sh:这将使用/ bin / sh输入到容器中

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

当我们尝试在指定的时间点构建和运行一组任务然后完成该过程时,此计划作业概念非常有用。