跳转至

一、pod控制器controller

1.1 Controller作用及分类

image-20240329171548120

有许多不同类型的控制器。以下是一些内置的 Kubernetes controllers

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应

  • 命名空间控制器(Namespace Controller):命名空间控制器用于管理Kubernetes集群中的命名空间。它负责创建、删除和监视命名空间,并确保命名空间的资源按照预期进行分配和使用。

  • 部署控制器(Deployment Controller):部署控制器负责管理应用程序的部署。它通过创建和更新副本集(ReplicaSet)来实现部署的目标状态,并确保所需的Pod副本数目达到预期值。如果发生故障或需要进行更新,部署控制器会自动处理副本集的创建、删除和替换。

  • StatefulSets : 部署有状态应用,结合Service、存储等实现对有状态应用部署

  • 副本集控制器(ReplicaSet Controller):副本集控制器负责监控Pod副本的状态,并根据用户定义的副本数目来维护Pod的稳定运行。当Pod的副本数目与期望的副本数目不一致时,副本集控制器会自动创建或删除Pod副本,以使副本数目达到预期值。

  • 守护进程集控制器(DaemonSet Controller):守护进程集控制器用于在Kubernetes集群中运行具有相同Pod配置的守护进程。它确保每个节点上都运行一个该类型的Pod副本,无论集群中的节点数目如何变化。当有新的节点加入集群或现有节点离开集群时,守护进程集控制器会相应地调整Pod的副本分布。

  • 任务控制器(Job Controller):任务控制器用于管理一次性任务的执行。它监测代表任务的Job对象,并创建Pod来运行这些任务直至完成。任务控制器确保任务成功完成,并可选择性地重试失败的任务。

  • 定时任务控制器(CronJob Controller):定时任务控制器负责周期性地运行任务。它基于用户定义的时间表创建和管理CronJob对象,并在指定的时间触发任务的执行。定时任务控制器可以帮助自动化需要按计划运行的任务,如定期备份、日志清理等。

  • 端点控制器(Endpoint Controller):端点控制器负责管理Service和与之关联的Pod之间的连接。它根据Service和Pod的变化来更新Endpoint对象,以确保流量正确路由到相应的Pod上。

  • 服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)。