22、Kubernetes 中批量任务处理与活性探测的深入解析

Kubernetes 中批量任务处理与活性探测的深入解析

1. 批量任务处理的对象选择

在处理批量工作时,若希望任务队列持续运行,Deployment 是 Kubernetes 中合适的对象;若要处理有限的批量工作,Job 则是理想之选。例如,使用动态工作队列数据库时,若希望队列清空后工作节点完全关闭,Job 就能实现这一需求。而使用 Deployment 时,可能需要像 HorizontalPodAutoscaler 这样的单独系统来对工作节点 Pod 进行伸缩。使用 Job 时,工作节点 Pod 完成工作后能向 Job 控制器发出信号,随后关闭并回收资源。

2. 使用 Job 进行动态队列处理
2.1 动态队列的重新设计

将之前使用 Deployment 的动态队列重新设计为使用 Job。Kubernetes 的 Deployment 和 Job 都允许创建多个 Pod 工作节点,且在 Pod 失败时都会重新创建。但关键区别在于,由 Job 管理的 Pod 以“成功”代码(Unix 中为 exit 0)退出时,会向 Kubernetes 表明整个队列的工作已完成,不会再创建新的 Pod 工作节点,而正在运行的 Pod 可完成剩余工作。

2.2 工作节点代码的调整

为使工作节点在 Job 中正常工作,需调整代码,让队列清空时发出成功信号。以下是调整后的工作节点代码:

import os
import signal
import redis
from pi import *
redis_host = os.environ.get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值