# 工作负载状态
工作负载是运行在 Kubernetes 上的一个应用程序,在 Kubernetes 中,无论您的应用程序是由单个同一组件或是由多个不同的组件构成,都可以使用一组 Pod 来运行它。Kubernetes 提供了五种内置的工作负载资源来管理 Pod:
- [无状态工作负载](../create-deployment.md)
- [有状态工作负载](../create-statefulset.md)
- [守护进程](../create-daemonset.md)
- [任务](../create-job.md)
- [定时任务](../create-cronjob.md)
您也可以通过设置[自定义资源 CRD](../../custom-resources/create.md) 来实现对工作负载资源的扩展。在第五代容器管理中,支持对工作负载进行创建、更新、扩容、监控、日志、删除、版本管理等全生命周期管理。
## Pod 状态
Pod 是 Kuberneters 中创建和管理的、最小的计算单元,即一组容器的集合。这些容器共享存储、网络以及管理控制容器运行方式的策略。
Pod 通常不由用户直接创建,而是通过工作负载资源来创建。
Pod 遵循一个预定义的生命周期,起始于 __Pending__ [阶段](https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase),如果至少其中有一个主要容器正常启动,则进入 __Running__ ,之后取决于 Pod 中是否有容器以失败状态结束而进入 __Succeeded__ 或者 __Failed__ 阶段。
## 工作负载状态
第五代容器管理模块依据 Pod 的状态、副本数等因素,设计了一种内置的工作负载生命周期的状态集,以让用户能够更加真实的感知工作负载运行情况。
由于不同的工作负载类型(比如无状态工作负载和任务)对 Pod 的管理机制不一致,因此,不同的工作负载在运行过程中会呈现不同的生命周期状态,具体如下表:
### 无状态负载、有状态负载、守护进程状态
| 状态 | 描述 |
| :---------------------- | :----------------------------------------------------------- |
| 等待中 | 1. 工作负载创建正在进行中,工作负载处于此状态。
2. 触发升级或者回滚动作后,工作负载处于此状态。
3. 触发暂停/扩缩容等操作,工作负载处在此状态。 |
| 运行中 | 负载下的所有实例都在运行中且副本数与用户预定义的数量一致时处于此状态。 |
| 删除中 | 执行删除操作时,负载处于此状态,直到删除完成。 |
| 异常 | 因为某些原因无法取得工作负载的状态。这种情况通常是因为与 Pod 所在主机通信失败。 |
| 未就绪 | 容器处于异常,pending 状态时,因未知错误导致负载无法启动时显示此状态 |
### 任务状态
| 状态 | 描述 |
| :------- | :----------------------------------------------------------- |
| 等待中 | 任务创建正在进行中,工作负载处于此状态。 |
| 执行中 | 任务正在执行中,工作负载处于此状态。 |
| 执行完成 | 任务执行完成,工作负载处于此状态。 |
| 删除中 | 触发删除操作,工作负载处在此状态。 |
| 异常 | 因为某些原因无法取得 Pod 的状态。这种情况通常是因为与 Pod 所在主机通信失败。 |
### 定时任务状态
| 状态 | 描述 |
| :----- | :----------------------------------------------------------- |
| 等待中 | 定时任务创建正在进行中,定时任务处于此状态。 |
| 已启动 | 创建定时任务成功后,正常运行或将已暂停的任务启动时定时任务处于此状态。 |
| 已停止 | 执行停止任务操作时,定时任务处于此状态。 |
| 删除中 | 触发删除操作,定时任务处在此状态。 |
当工作负载处于异常或未就绪状态时,您可以通过将鼠标移动到负载的状态值上,系统将通过提示框展示更加详细的错误信息。您也可以通过查看[日志](../../../../insight/user-guide/data-query/log.md)或事件来获取工作负载的相关运行信息。