Kubernetes(简称K8S) 是Google开源的分布式的容器管理平台,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。本文主要介绍Kubernetes(K8s) Job(作业)。

1、Kubernetes Job作业

Job作业的主要功能是创建一个或多个 Pod 并跟踪 Pod 的成功。它们确保成功完成指定数量的 pod。当完成指定数量的 Pod 成功运行时,则认为该作业已完成。

1)创建Job作业

yaml配置文件如下:

apiVersion: v1
kind: Job 
metadata:
   name: py
   spec:
   template:
      metadata
      name: py 
      spec:
         containers:
            - name: py 
            image: python
            command: ["python", "SUCCESS"]
            restartPocliy: Never

Job :配置里kind: Job 中的Job表示,kubectl正在使用的yaml文件是用于创建作业类型 pod。

py :配置里template下的第一个name: py中py表示正在使用的模板的名称,规范定义了模板。配置里containers下的- name: py中py表示在容器规范下给了一个名称为py,这有助于识别将要从中创建的 Pod。

Image:需要使用的镜像以创建将在 pod 内运行的容器。

Never:配置里restartPolicy: Never中Never表示镜像重启的条件是从不给出的,也就是如果容器被杀死或者如果它是意外停止,那么它不会自动重启。

2、作业命令

使用上面的配置文件,可以执行如下命令:

1)使用以下带有 yaml 的命令创建作业

$ kubectl create –f py.yaml

2)检查作业的状态

$ kubectl describe jobs/py

3、定时作业

Kubernetes 中的计划作业使用Cronetes,它接受 Kubernetes 作业并在 Kubernetes 集群中启动它们。调度作业将在指定的时间点运行一个 pod。

yaml配置文件如下:

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

schedule:配置里schedule: h/30 * * * * ?中配置作业每 30 分钟运行一次。

相关文档:

Kubernetes(K8s) kubectl create常用命令

Kubernetes(K8s) kubectl logs 常用命令

Kubernetes(K8s) kubectl describe常用命令

推荐文档