一. 控制器详解
详情查看官方地址: Deployments | Kuberneteshttps://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/
二. 控制器类型 ![](https://img-blog.csdnimg.cn/direct/e0ce664c474e4287aff54685123fa846.png)
Replicaset控制器示例
ReplicaSet简称(rs) 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合。 因此,它通常用来保证给定数量的、完全相同的 Pod 的可用性 ,主要用于扩容缩容
1. 创建编辑文件 vim replicaset.yaml
2. 应用后查看所属标签 更改副本数直接在文件修改重新应用即可
3. 这里看到即使更改标签,控制器会重建一个pod保持给定标签副本数
4. 即使删除也会重新建保持给定副本数
Deployment控制器示例
一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。
你负责描述 Deployment 中的 目标状态,而 Deployment 控制器(Controller) 以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。
1. 创建编辑文件 vim deployment.yaml
2. 应用后查看到 deployment 连接rs ,rs用来控制副本数
3. 在文件中直接修改版本然后apply应用 并查看到更新成功
在你更新一个 Deployment 的时候,或者计划更新它的时候, 你可以在触发一个或多个更新之前暂停 Deployment 的上线过程。 当你准备应用这些变更时,你可以重新恢复 Deployment 上线过程。 这样做使得你能够在暂停和恢复执行之间应用多个修补程序,而不会触发不必要的上线作。
1. 暂停避免触发不必要的线上更新 这里看到调整副本数不受影响
2. 用命令更改版本号
3. 此时查看因为暂停 其实并没有更新 (你可以此时做更多的资源设置)
4. 取消暂停命令开始执行更改的设置 (这里发现已经回到v1版本)
DaemonSet控制器示例
1. 创建编辑文件 vim daemonset.yaml
2. 应用后查看到运行在node上
3. 如果要master也参与调度编辑文件即可
Job 控制器示例
Job 会创建一个或者多个 Pod,并将继续重试 Pod 的执行,直到指定数量的 Pod 成功终止。 随着 Pod 成功结束,Job 跟踪记录成功完成的 Pod 个数。 当数量达到指定的成功个数阈值时,任务(即 Job)结束。 删除 Job 的操作会清除所创建的全部 Pod。 挂起 Job 的操作会删除 Job 的所有活跃 Pod,直到 Job 被再次恢复执行。
1. 创建编辑文件 vim job.yaml
2. 应用后查看到成功且是两两运行因为设置了并行
Cronjob 控制器示例
cronjob创建基于时隔重复调度的 Jobscronjob是周期化的创建一个job控制器,在由job控制器创建pod,相当于job和pod的一个申明式定义
1. 创建编辑文件 vim cronjob.yaml
2. 应用后查看job和pod的创建情况