Kubernetes通过创建控制器来管理Pod的生命周期。为了满足不同需求的场景,Kubernetes开发了 不同的控制器,如:Deployment、DaemonSet、Job、CronJob、StatefuleSet等。
视频讲解如下:
一、为什么需要控制器?
Pod在Kubernetes中是存在生命周期的。因此Pod作为最小的部署单元,就要求有一种方式去操作和管理它的状态和生命周期。这就需要用到Kubernetes提供的控制器了。
试想一下以下的两种场景:
- 双十一期间用户的访问量剧增,服务器服务承受暴增的请求。
- Node节点突然发生了宕机,造成运行在上面的Pod不能正常提供服务了。
如何解决这样的问题?当然作为开发人员来说,当然可以手动增加Node节点以启动更多的Pod来承受业务访问量的暴增;或者通过手动重启Node节点达到重新启动Pod的目的。对于一个大型而又复杂的系统来说,采用人工手动的方式去解决这样的问题视乎不太现实。但有了Kubernetes的控制器以后,就可以非常方便地帮助我们来解决这样的问题。当Pod的个数不够了,控制器会自动增加Pod的副本以承受客户端的请求;当Pod出现了故障,控制器也会自动在其他合适的Node节点重新启动新的Pod。
二、Kubernetes的控制器类型
Kubernetes提供的主要控制器类型以及它们的作用,如下表所示。而最常用的控制器是Deployment。