一、Kubernetes 工作负载资源(Workload Resources)
此字幕由 AI 自动生成。本节将讨论 Kubernetes 的工作负载资源。
1. 课前回顾
- Pod 是 Kubernetes 集群中部署独立应用的基本单元。
- 当 Pod 所在节点发生硬件、软件或操作系统故障时,Pod 会被终止,且不会自动恢复。
- Kubernetes 控制的是容器的重启(依据
restartPolicy),而不是 Pod 的创建与销毁。
2. 为什么要学习 Workload Resources?
- 独立 Pod 的缺陷:需手动管理 Pod 的生命周期,Kubernetes 不保证故障后的自动恢复。
- 关键应用部署的风险:独立 Pod 无法确保高可用性。
- Workload Resources 的核心价值:通过控制器自动管理 Pod 生命周期,确保实际状态与预期状态一致。
3. Workload Resources 介绍
Kubernetes 提供多种内置的工作负载资源类型,每种适应不同的使用场景:
(1)ReplicationController
- 运行多个 Pod 副本的基础控制器。ReplicaSet 是它的升级版,目前更多使用后者。
(2)ReplicaSet
- 确保总有指定数量的 Pod 副本在运行。
- 通常由 Deployment 管理,不建议直接使用。
(3)Deployment
- 最常用的负载资源,管理无状态应用的 Pod。
- 核心功能包括:扩缩容、滚动更新与回滚、版本管理等。
(4)DaemonSet
- 确保集群中每个节点(或某些节点)都运行指定 Pod,一个节点对应一个副本。
- 常用于日志收集、监控守护进程等节点级服务。
(5)StatefulSet
- 用于有状态应用,提供稳定的网络标识和持久化存储支持。
- 常见于数据库、消息队列等场景。
(6)Job 与 CronJob
- Job:执行一次性任务(如数据备份/恢复),完成后自动清理。
- CronJob:定期执行任务(如每日备份),基于 cron 调度。
4. 应用 Workload Resources 能带来哪些收益?
- 控制器会持续监控并确保 Pod 数量和状态符合预期,无需手动干预。
- Workload Resources 简化了应用部署操作,提高可靠性与可维护性。
总结与补充
- Pod 是基础单元,但生产环境应通过 Deployment、StatefulSet 等控制器管理。
- Deployment 是最常用的资源,支持高可用性、滚动更新、回滚等特性。
- StatefulSet 适用于需要持久性和唯一标识的应用;DaemonSet 用于节点级服务;Job / CronJob 用于处理一次性或周期性任务。
- 使用 Workload Resources 是 Kubernetes 最核心、最重要的实践方式。