【05】Kubernets:资源清单(控制器)

写在前面的话

从上一章节开始,我们一直在学习关于自主式 Pod 的资源清单编写, 但是自主式 Pod 存在着一个问题,就是和我们直接 docker run 运行 docker 容器一样。如果我们想以集群的形式并配合复杂的处理逻辑就不那么好用了。

针对这点,我们将 Pod 的处理交给了控制器。

关于控制器

再详细讲解控制器怎么使用之前,我们得知道控制器是啥,以及我们需要使用哪些。

在讲解 K8S 的 Master 组成的时候说过,Master 节点有个重要组件叫做 Controller Manager。

Controller Manager 由 kube-controller-manager 和 cloud-controller-manager 组成,是 K8S 的核心。

Cloud controller 一般在配合云服务的时候再使用,所以不是我们关心得重点。

kube-controller-manager 由以下主要的控制器组成:

1. Replication Controller(已经废弃)

2. Replicaset

3. Deployment Controller

4. DaemonSet Controller

5. Job / CronJob Controller

6. Volume Controller

7. StatefulSet Controller

8. Node Controller

9. Service Controller

10. 等等...

常见控制器说明

Replication Controller:

保证了再特定时间内运行的副本数了,多退少补。并且不会去关注 pod 的状态,只要你被删除或者被终止,自动就把你替换掉。他就像一个进程管理器监管着多个节点的 pod。 

该控制器只对 restartPolicy 配置为默认 Always 的生效,且控制器永远不会自己关闭。但我们更希望控制器是伴随着服务的生命周期创建删除,因为程序会更新。

ReplicaSet:

新一代的副本控制器,属于 Replication Controller 的升级版,区别在于新版本支持更为高级的 selector。

Deployment:

调度 ReplicaSet 实现我们的需求,官方也建议我们使用 Deployment 替代 ReplicaSet。例如:

使用 Deployment 来创建 ReplicaSet,ReplicaSet 会在后台启动相关的 Pod 并检测其状态。

当我们更新 Deployment 中定义的 Pod 状态时,会新建 ReplicaSet 并根据配置的策略,让 ReplicaSet 按照一定的规则来重建 Pod,实现切换。

StatefulSet:

主要用于解决有状态的服务的问题。后面会专门用到。

DaemonSet:

保证每个节点上都有运行一个副本,常用来作为集群日志收集,监控。

猜你喜欢

转载自www.cnblogs.com/Dy1an/p/10950058.html