Kubernetes (六) 控制器类型及详解示例

news/2024/7/4 8:10:07 标签: kubernetes, 容器, 云原生, linux, 运维

一.   控制器详解                                                                                                                

            详情查看官方地址:        Deployments | Kubernetesicon-default.png?t=N7T8https://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/

  二.  控制器类型                                                                                                               

                               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的创建情况

                          

           

           

               

                   

             


http://www.niftyadmin.cn/n/5294102.html

相关文章

【React源码 - ReactDom.render发生了什么】

在React开发中,在入口文件我们都会执行ReactDom.render来讲整个应用挂载在主document中,那其中发生了什么,React是如何讲我们写的JSX代码,一步一步更新Fiber进而挂载渲染的呢。本文主要是基于react17.0.2的源码以及自己的理解来简…

Python/R/GUI/BI类型常用数据可视化工具

什么是数据可视化工具? 数据可视化工具是指旨在可视化数据的所有形式的软件。它们处理数据输入,将其转换为用户可以根据自己的需求进行定制的视觉效果。 不同的工具可以包含不同的功能,但最基本的是,数据可视化工具提供输入数据集…

【AIGC科技展望】预测AIGC2025年的机会与挑战

2025年,AIGC的机会与挑战 在未来的五年里,AIGC(AI Generated Content)将会成为一个越来越重要的领域。但是,伴随着机会而来的是挑战。在这篇文章中,我们将一起探讨AIGC的机会与挑战,并预测2025…

Android MVVM 写法

前言 Model:负责数据逻辑 View:负责视图逻辑 ViewModel:负责业务逻辑 持有关系: 1、ViewModel 持有 View 2、ViewModel 持有 Model 3、Model 持有 ViewModel 辅助工具:DataBinding 执行流程:View &g…

Go指针初始化

var post *models.Post res : postDao.SavePost(post)var post models.Post res : postDao.SavePost(&post)在1中将models.Pos声明为指针但是并没有为其分配内存空间,这意味着它的值为 nil,并且没有指向有效的 models.Post 对象。 func Test1(t *te…

数据仓库系列01-规划篇

企业在构建数据仓库时,首先需要整体上对数据仓库进行规划,制定规范。数仓架构师需要对数仓分层、业务分类、数据域、业务过程、数据集市、主题域进行设计。这样模型设计时,可以将模型关联到数仓分层、业务分类、数据域、业务过程等对所建模型…

istio envoyfilter yaml 解释

envoyfilter 内容较多,每个部分分开解释 workloadSelector 描述后续的限流操作在哪些负载上生效 如果省略则将配置应用到 namespace 下所有的负载,如果 namespace 为根 namespace(istio-system)则应用于所有命名空间下的负载 s…

Spark作业的调度与执行流程

Apache Spark是一个分布式计算框架,用于处理大规模数据。了解Spark作业的调度与执行流程是构建高效分布式应用程序的关键。本文将深入探讨Spark作业的组成部分、调度过程以及执行流程,并提供丰富的示例代码来帮助大家更好地理解这些概念。 Spark作业的组…