工作负载管理
Kubernetes 提供了多个内置 API,用于对您的 工作负载 及其组件进行声明式管理。
最终,您的应用程序将作为容器在 Pod 中运行;但是,管理单个 Pod 会非常费力。例如,如果 Pod 失败,您可能希望运行一个新的 Pod 来替换它。Kubernetes 可以为您做到这一点。
您可以使用 Kubernetes API 创建一个工作负载 对象,它代表比 Pod 更高的抽象级别,然后 Kubernetes 控制平面 会根据您定义的工作负载对象的规范,自动为您管理 Pod 对象。
用于管理工作负载的内置 API 是
部署(以及间接的 副本集),这是在集群上运行应用程序的最常见方法。部署非常适合在集群上管理无状态应用程序工作负载,其中部署中的任何 Pod 都是可互换的,并且可以在需要时进行替换。(部署是传统 复制控制器 API 的替代品)。
有状态集 允许您管理一个或多个 Pod(所有 Pod 都运行相同的应用程序代码),其中 Pod 依赖于具有不同的身份。这与部署不同,部署中的 Pod 预计是可互换的。有状态集最常见的用途是能够在其 Pod 与其持久存储之间建立链接。例如,您可以运行一个有状态集,将每个 Pod 与一个 持久卷 关联。如果有状态集中的某个 Pod 失败,Kubernetes 会创建一个连接到相同持久卷的替换 Pod。
守护进程集 定义了为特定 节点 提供设施的 Pod;例如,一个驱动程序,它允许该节点上的容器访问存储系统。当驱动程序或其他节点级服务必须在有用的节点上运行时,您使用守护进程集。守护进程集中每个 Pod 执行的角色类似于经典 Unix/POSIX 服务器上的系统守护进程。守护进程集可能是集群运行的基础,例如一个插件,它允许该节点访问 集群网络,它可能有助于您管理节点,或者它可以提供增强您正在运行的容器平台的不太重要的设施。您可以在集群中的每个节点上运行守护进程集(及其 Pod),也可以只在子集中运行(例如,只在安装了 GPU 的节点上安装 GPU 加速器驱动程序)。
您可以使用 作业 和/或 Cron 作业 来定义运行到完成然后停止的任务。作业表示一次性任务,而每个 Cron 作业会根据计划重复执行。
本节中的其他主题