14、Kubernetes 中任务调度与服务管理全解析

Kubernetes 中任务调度与服务管理全解析

1. 可完成任务的 Pod 运行

在 Kubernetes 里,之前讨论的 Pod 大多需要持续运行,但也存在仅执行一次且完成后即终止的任务场景。ReplicationControllers、ReplicaSets 和 DaemonSets 运行的是永不会被视为完成的连续任务,这类 Pod 中的进程退出时会被重启;而可完成任务的 Pod,其进程终止后不应再重启。

1.1 Job 资源介绍

Kubernetes 通过 Job 资源支持此类任务。Job 与本章讨论的其他资源类似,但它允许运行一个容器,当容器内进程成功完成时不会重启,一旦完成,该 Pod 即被视为完成。

在节点故障时,由 Job 管理的该节点上的 Pod 会像 ReplicaSet 的 Pod 一样被重新调度到其他节点。若进程本身失败(进程返回错误退出码),Job 可配置为重启容器或不重启。

例如,对于临时任务,Job 非常有用。若在非托管 Pod 中运行任务,在节点故障或 Pod 被驱逐时,需手动重新创建,这显然不合理,尤其是任务需要数小时才能完成时。

下面是一个示例,模拟处理存储的数据并进行转换和导出,运行基于 busybox 镜像构建的容器镜像,该镜像调用 sleep 命令两分钟:

# 这里只是示意调用 sleep 命令的容器镜像逻辑,实际构建可参考相关代码
# 已经构建并推送到 Docker Hub 的镜像为 luksa/batch-job
1.2 定义 Job 资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值