当前位置 :首页 >> 电视

如何GIS编写和编排你的 K8s 任务

2023-04-21   来源 : 电视

编著 K8s Job 的 YAML 机密文件,image 为了让第 3 步制做的页面,command 的号令为拒绝执行脚本语言

apiVersion: batch/v1

kind: Job

metadata:

name: demo-python

spec:

template:

spec:

containers:

- name: demo-python

image: registry.cn-beijing.aliyuncs.com/demo/python:1.0.0

command: ["python", "/root/demo.py"]

restartPolicy: Never

backoffLimit: 4

我们看着要在托盘客户服务当中跑脚本语言,能够这么多步骤,如果要改动脚本语言,还能够原先构建页面和原先发行 K8s Job,更为棘手。

哈吉幽提高效率

哈吉特殊任务调动 SchedulerX 结合幽原生技术开发,提出了一套三幅形的脚本语言特殊任务提高效率,通过特殊任务调动该系统来管理脚本语言,直接在线编著脚本语言,不能够构建页面,就可以将脚本语言以 Pod 的形式在用户的 K8s 坦克部队当当中列车运行一起,用作更为方便用作,如下三幅:

1. 在 SchedulerX 特殊任务管理完工后一个 K8s 特殊任务,资源类型为了让 Python-Script(局限性支持者shell/python/php/nodejs 四种脚本语言类型)

2. 点选列车运行一次,在 Kubernetes 坦克部队当中可以看着 pod 开启,pod 名字为 schedulerx-python-{JobId}

3. 在 SchedulerX 控制面板也可以看着历史文化拒绝执行记录下来

4. 在 SchedulerX 控制面板可以看着 Pod 列车运行的摘要

后面通过一个表格更方便用作的看着两个方案的差异:

功能性二:完全适配原生 K8s Job

SchedulerX 不但能够快速开发 K8s 脚本语言特殊任务,屏蔽托盘客户服务的细节,给不熟知托盘客户服务的同窗带来福音,同时还能托管地原生 K8s Job。

原生自带的Job方案

Job

以对外提供的 Job 为例:

1. 编著 YAML 机密文件 pi.yaml,干脆写一个错误,bpi(-1)是非法的

apiVersion: batch/v1

kind: Job

metadata:

name: pi

spec:

template:

spec:

containers:

- name: pi

image: perl:5.34

command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(-1)"]

restartPolicy: Never

backoffLimit: 4

2. 在 K8s 坦克部队当中列车运行该 Job,并查看 Pod 的状态和摘要:

K8s 原生的 Job 不支持者重跑,改动完 Job 后自已要重跑,能够先删减,再原先 apply,更为棘手。

CronJob

以对外提供的 CronJob 为例:

1. 编著 hello.yaml

apiVersion: batch/v1

kind: CronJob

metadata:

name: hello

spec:

schedule: "* * * * *"

jobTemplate:

spec:

template:

spec:

containers:

- name: hello

image: perl:5.34

command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(100)"]

restartPolicy: OnFailure

2. 在 K8s 坦克部队当中列车运行该 CronJob,查看 pod 此前和摘要

发现原生的 CronJob 只能查看最近3条拒绝执行记录下来,自已要查看更久之前的记录下来无法看着,这在企业出现具体情况自已核查的时候就更为尤为困难为。

哈吉幽提高效率

哈吉特殊任务调动 SchedulerX 可以托管地原生 K8s 特殊任务,方便用作移植,用作 SchedulerX 托管地,可以享有特殊任务调动的功能性,比如特殊任务重跑、此前、摘要客户服务、出事管控等。

1. 完工后 K8s 特殊任务,特殊任务类型为了让 K8s,资源类型为了让 Job-YAML,打印 bpi(-1)

2. 通过基本功能来转换成 cron 表达式,比如每天内第 8 分钟跑

3. 调动时间还没到,也可以手动点选“列车运行一次”来来进行测试

4. 在 K8s 坦克部队当中可以看着 Job 和 Pod 开启事与愿违

5. 在 SchedulerX 控制面板也可以看着历史文化拒绝执行记录下来

6. 在 SchedulerX 控制面板可以看着特殊任务列车运行摘要

7. 在线改动特殊任务的 YAML,打印 bpi(100)

8. 不能够删减 Job,通过控制面板来重跑特殊任务

9. 特殊任务重跑事与愿违,且能看着新的摘要

后面通过一个表格来对比两个方案的差异

功能性三:增强原生 Job,支持者三幅形特殊任务解说

在数据处理场面下,特殊任务之间往往有依赖性关系,比如 A 特殊任务依赖性 B 特殊任务的完成才能开始拒绝执行。

Kubernetes 原生提高效率

局限性 K8s 当中主引的提高效率是用作 argo 来进行文书工作引解说,比如定义一个 DAG 如下:

# The following workflow executes a diamond workflow

#

# A

# /

# B C

# /

# D

apiVersion: argoproj.io/v1alpha1

kind: Workflow

metadata:

generateName: dag-diamond

spec:

entrypoint: diamond

templates:

- name: diamond

dag:

tasks:

- name: A

template: echo

arguments:

parameters: [{name: message, value: A}]

- name: B

depends: "A"

template: echo

arguments:

parameters: [{name: message, value: B}]

- name: C

depends: "A"

template: echo

arguments:

parameters: [{name: message, value: C}]

- name: D

depends: "B && C"

template: echo

arguments:

parameters: [{name: message, value: D}]

- name: echo

inputs:

parameters:

- name: message

container:

image: alpine:3.7

command: [echo, "{{inputs.parameters.message}}"]

我们看着构建这么简单的一个 DAG,就能够写这么多 YAML,如果依赖性关系复杂,则 YAML 就更为更为难为维护。

哈吉幽提高效率

哈吉特殊任务调动 SchedulerX 支持者通过三幅形的文书工作引来进行特殊任务解说

1. 创建一个文书工作引,可以导入特殊任务,也可以在局限性画布完工后特殊任务,通过借助于构建一个文书工作引

2. 点选列车运行一次,可以实时看着文书工作引的列车运行具体情况,方便用作核查特殊任务卡在哪个节目:

3. 如果有特殊任务失败了,通过控制面板查看摘要

4. 把特殊任务改动正确,在文书工作引程序当中三幅上,原地重跑失败的节点

5. 失败的特殊任务会原先按照除此以外的内容拒绝执行

6. 当上游都拒绝执行事与愿违,上游就可以继续拒绝执行了

总结

通过特殊任务调动 SchedulerX 来调动你的 K8s 特殊任务,能够增大修习开销,减慢开发效率,让你的特殊任务失败可出事,出具体情况可核查,充分运用幽原生可观测体系下的三幅形 K8s 特殊任务。

原文页面:

本文为哈吉幽原创内容,予以强制不得发表文章。

关节僵硬怎么办吃什么药
艾拉莫德片的作用是什么
石家庄男科检查哪家医院好
艾得辛和来氟米特哪个效果好
南京治白癜风医院
投资者提问:请问公司持有人牌照什么时候可以办下来

注资者发问:请问新公司免税牌照什么时候可以接办下来董秘回答步 步 较高SZ002251:您好!如有就其谈及的事项,新公司将在指定新闻媒体上进行谈及。忘了!查看非常多...

友情链接