工作负载
工作负载是在 Kubernetes 上运行的应用程序。
在 Kubernetes 中,无论你的负载是由单个组件还是由多个一同工作的组件构成, 你都可以在一组 Pod 中运行它。 在 Kubernetes 中, 代表的是集群上处于运行状态的一组 的集合。
Kubernetes Pod 遵循预定义的生命周期。 例如,当在你的集群中运行了某个 Pod,但是 Pod 所在的 出现致命错误时, 所有该节点上的 Pod 的状态都会变成失败。Kubernetes 将这类失败视为最终状态: 即使该节点后来恢复正常运行,你也需要创建新的 Pod
以恢复应用。
Kubernetes 提供若干种内置的工作负载资源:
StatefulSet 让你能够运行一个或者多个以某种方式跟踪应用状态的 Pod。 例如,如果你的负载会将数据作持久存储,你可以运行一个 ,将每个
Pod
与某个 对应起来。你在StatefulSet
中各个Pod
内运行的代码可以将数据复制到同一StatefulSet
中的其它Pod
中以提高整体的服务可靠性。DaemonSet 定义提供节点本地支撑设施的 。这些 Pod 可能对于你的集群的运维是 非常重要的,例如作为网络链接的辅助工具或者作为网络 的一部分等等。每次你向集群中添加一个新节点时,如果该节点与某
DaemonSet
的规约匹配,则控制平面会为该DaemonSet
调度一个Pod
到该新节点上运行。- Job 和 。 定义一些一直运行到结束并停止的任务。
Job
用来执行一次性任务,而CronJob
用来执行的根据时间规划反复运行的任务。
除了阅读了解每类资源外,你还可以了解与这些资源相关的任务:
- 以或者多副本集合 的形式运行有状态的应用;
要了解 Kubernetes 将代码与配置分离的实现机制,可参阅配置部分。
关于 Kubernetes 如何为应用管理 Pod,还有两个支撑概念能够提供相关背景信息:
- 机制负责在 对象的属主资源被删除时在集群中清理这些对象。