25、Kubernetes 中批量任务处理与存活探针的使用

Kubernetes 中批量任务处理与存活探针的使用

1. 批量任务处理的场景与选择

在处理批量工作时,我们有不同的选择。如果需要一个持续运行的任务队列,Deployment 是合适的 Kubernetes 对象;但如果要处理有限的批量工作,Job 则是理想之选。

Job 有一个重要特性,即允许单个工作节点在工作完成时发出信号。在动态的 Kubernetes 环境(如具有自动缩放功能的环境)中,Job 可以让我们“设置后就不用管”,工作完成后资源消耗降为零。不过,Job 完成后不能再次扩大规模,但可以删除并重新创建。

2. 使用 Job 进行动态队列处理
2.1 动态队列处理的原理

将之前使用 Deployment 的动态队列重新设计为使用 Job。Deployment 和 Job 都允许创建多个 Pod 工作节点,并且在失败时都会重新创建 Pod。但 Deployment 没有 Pod“完成”的概念,它会始终保持指定的副本数量运行;而 Job 管理的 Pod 以成功退出码(如 exit 0)终止时,会向 Job 控制器表明工作已成功完成,Pod 不会重启。

2.2 代码实现与配置

为了让任务工作容器在 Job 环境中正常工作,需要添加队列清空时的成功退出条件。以下是修改后的工作代码:

import os
import signal
import redis
from pi import *

redis_host = os.environ.get('REDIS_HOST')
assert redis_hos
### 配置存活探针(Liveness Probe)和就绪探针(Readiness Probe) 在 Kubernetes 中,存活探针(livenessProbe)和就绪探针(readinessProbe)用于管理容器的健康状态。它们分别通过不同的方式影响 Pod 的状态和流量调度。 #### 存活探针(Liveness Probe) 存活探针用于检测容器中的应用程序是否仍然处于运行状态。如果探针检测失败,Kubernetes 会认为容器已经崩溃,并根据 Pod 的重启策略重启容器。这种探针适用于需要自动恢复的应用场景,例如 Web 服务器或数据库服务。 存活探针的配置通常包括探测方式(HTTP、TCP 或 Exec)、探测路径、端口、初始延迟时间(initialDelaySeconds)和探测间隔时间(periodSeconds)等参数。 以下是一个基于 HTTP 的存活探针配置示例: ```yaml livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 30 periodSeconds: 10 ``` 存活探针的检测结果会体现在 Pod 的状态信息中。如果探测成功,Pod 的状态为 Running;如果探测失败,kubelet 会根据 Pod 的重启策略来重启容器 [^2]。 #### 就绪探针(Readiness Probe) 就绪探针用于检测容器是否已经准备好接收流量。如果探针检测失败,Kubernetes 会将该容器从服务的负载均衡池中移除,直到探针检测成功。这种探针适用于需要确保应用完全就绪后才接收请求的场景,例如需要加载大量数据或依赖外部服务的应用。 就绪探针的配置方式存活探针类似,包括探测方式、路径、端口、初始延迟时间和探测间隔时间等。 以下是一个基于 HTTP 的就绪探针配置示例: ```yaml readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 10 ``` 就绪探针的作用是确保只有在容器应用完全准备好后才接收流量,从而避免将请求发送到尚未就绪的容器 [^1]。 #### 综合配置示例 以下是一个完整的 Pod 配置示例,包含存活探针和就绪探针的定义: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx ports: - containerPort: 80 livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 10 ``` 通过合理配置存活探针和就绪探针,可以有效提升容器化应用的稳定性和可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值