Kubernetes 作业模式:批量作业与定期作业详解
1. 行为模式概述
在 Kubernetes 中,行为模式主要关注 Pod 与管理平台之间的通信和交互。根据所使用的管理控制器类型,Pod 可以运行至完成,也可以定期调度运行。它可以作为守护进程运行,或者确保其副本的唯一性。Kubernetes 中有多种运行 Pod 的方式,选择合适的 Pod 管理原语需要了解它们的行为。常见的行为模式包括批量作业、定期作业、守护服务、单例服务、无状态服务、有状态服务、服务发现和自我感知等。
2. 批量作业
2.1 问题提出
Kubernetes 中管理和运行容器的主要原语是 Pod,创建 Pod 有不同的方式,各有特点:
- 裸 Pod :可以手动创建 Pod 来运行容器,但当运行该 Pod 的节点发生故障时,Pod 不会重启。除了开发或测试目的外,不建议以这种方式运行 Pod,这种机制也被称为非托管或裸 Pod。
- ReplicaSet :用于创建和管理预期持续运行的 Pod 的生命周期(例如运行 Web 服务器容器)。它在任何给定时间维护一组稳定的副本 Pod 运行,并保证指定数量的相同 Pod 的可用性。
- DaemonSet :在每个节点上运行单个 Pod,用于管理平台功能,如监控、日志聚合、存储容器等。
这些 Pod 的一个共同特点是它们代表长期运行的进程,不打算在特定时间后停止。然而,在某些情况下,需要可靠地执行预定义的有限工作单元,然后关闭容器。为此,Kubernetes 提供了 J