当前位置: 首页 > news >正文

k8s控制器

目录

一、控制器简介

二、控制器类型

1、RC和RS

2、Deployment

3、DaemonSet

4、Job

5、CronJob

6、StateFulSet

7、HPA


一、控制器简介

在kubernetes中,按照Pod的创建方式可以将其分为两类:

  • 自主式:kubernetes直接创建出来的Pod,这种Pod删除后就没有了,也不会重建。
  • 控制器创建pod:通过Pod控制器创建的Pod,这种Pod删除之后还会自动重建。

Pod控制器是管理Pod的中间层,使用了Pod控制器之后,我们只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它就会创建出满足条件的Pod并确保每一个Pod处于用户期望的状态,如果Pod在运行中出现故障,控制器会基于指定的策略重启或重新创建pod。

二、控制器类型

控制器分为以下类型:

  • ReplicationController 和 ReplicaSet
  • Deployment (最常用)
  • DaemonSet
  • StateFulSet
  • Job/CronJob
  • Horizontal Pod Autoscaling

1、RC和RS

RC目前不太采用,都采用RS方式。

RC用来控制pod维持一个正常稳定的数量

RS支持集合式的selector,可以根据标签匹配

样例:

apiVersion: apps/v1
kind: ReplicaSet
metadata:name: myRS
spec:selector:matchLabels:auth: myAuthreplicas: 3template:metadata:labels:auth: myAuthspec:containers:- name: myAuthimage: icepear/dendalion-auth:2.0.0imagePullPolicy: IfNotPresentports:- containerPort: 8080

2、Deployment

提供声明式的定义方法,用来替代RC

  • 定义deployment来创建pod和replicaSet
  • 提供滚动升级和回滚应用
  • 扩容和缩容
  • 暂停和继续 deployment

deployment跟replicaSet以及pod的关系

声明式的创建建议要用kubectl apply····,不要使用kubectl create··· --record参数可以记录命令,可以方便查看每次reversion的变化

1)部署简单的应用

比如我要开启三个 Nginx 的pod 应用

样例:

apiVersion: apps/v1
kind: Deployment
metadata:name: myNginxlabels:app: myNginx
spec:replicas: 3template:metadata:name: myNginxlabels:app: myNginxspec:containers:- name: myNginximage: nginx:1.7.9imagePullPolicy: IfNotPresentrestartPolicy: Alwaysselector:matchLabels:app: myNginx

2)扩容

样例:

kubectl scale deployment myNginx --replicas=10

3)高可用扩容

集群如果支持HPA,还可以设置条件,当cpu到达某种程度,开启多少个,最低开启多少个

kubecl autoscale deployment myNginx --min=10 --max=15 --cpu-percent=80

4)更新镜像

kubectl set image deployment/myNginx nginx:1.8.0
  • 25%-25%的策略,首先会在新的replicas中新建25%,旧的replicas中删除25%。按照这种规律更新
  • rollover 策略,当还在创建的时候就更新新的版本,deployment会直接干掉之前创建的rs,直接生成新的

5)版本回滚

kubectl rollout undo deployment/myNginx --to-version=2 #回滚操作,设置回退的版本号kubectl rollout status deployment myNginx #查看回滚状态kubectl rollout history deployment/myNginx #查看历史版本信息kubectl rollout pause deployment/myNginx #暂停回滚更新

3、DaemonSet

DaemonSet确保全部node上运行一个pod的副本,新增或删除node时,node上对应的pod也会被新增或删除,删除DaemonSet将删除它创建的pod

  • 运行集群存储daemon,例如在每个node上运行glusterd、ceph
  • 在每个node上运行日志收集daemon、例如logstash、fluentd
  • 在每个node上运行监控daemon、例如Promethenus node exporter

创建使用kubectl create

4、Job

Job负责批处理任务,可以理解为就是用来运行脚本的控制器

  • spec.template格式同pod
  • RestartPolicy仅支持Never或Onfailure
  • 单个Pod时,默认Pod成功运行后Job即结束
  • spec.completions 标志job结束需要成功运行的Pod个数,默认为1
  • spec.parallelism 标志并行运行的Pod的个数,默认为1
  • spec.activeDeadlineSeconds 标志失败Pod的重试最大时间,超过不再重试

例如:创建一个使用perl语言,计算圆周率打印2000位

apiVersion: batch/v1
kind: Job
metadata:name: pi
spec:template:metadata:name: pispec:containers:- name: piimage: perlcommand: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]restartPolicy: Never

5、CronJob

在Job的基础上,提供了定时执行,周期执行的方案

  • spec.schedule 运行周期,格式采用Cron
  • spec.jobTemplate Job模板,格式采用Job
  • spec.startingDeadlineSeconds 启动Job的期限,秒
  • spec.concurrencyPolicy 并发策略,因为有可能在第一个job没完成的时候,第二个job又被创建了,就会形成并发
  • Allow 允许
  • Firbid 禁止
  • Replace 取消当前的,用新的替换
  • sper.suspend 挂起
  • spec.successfulJobHistoryLimit和failedJobsHistoryLimit 设置job成功或失败的保留的pod数,默认成功是3个,失败是1个

例子:

apiVersion: batch/v1
kind: CronJob
metadata:name: myCronjob
spec:schedule: "*/1 * * * *"jobTemplate:spec:template:spec:containers:- name: myCronjobimage: busyboxargs:- /bin/sh- -c- date; echo Hello k8srestartPolicy: OnFailure

CronJob 运行的结果应该是幂等的,就是每次运行的结果应该一样

6、StateFulSet

StateFulSet解决了有状态的服务运行的问题

  • 稳定的持久化存储,即pod重新调度之后依然能访问到相同的持久化数据,基于PVC实现
  • 稳定的网络标志,即pod重新调度之后,podName和HostName不变,基于Headless service实现
  • 有序部署,有序扩展,pod启动是有序的,依据顺序依次进行,只有前一个pod启动成功之后,下面才能继续进行
  • 有序收缩,有序删除,从后往前删除

7、HPA

用于pod的自动扩展,在高峰时扩容,低谷时删除一些资源,提高系统稳定性

相关文章:

k8s控制器

目录 一、控制器简介 二、控制器类型 1、RC和RS 2、Deployment 3、DaemonSet 4、Job 5、CronJob 6、StateFulSet 7、HPA 一、控制器简介 在kubernetes中,按照Pod的创建方式可以将其分为两类: 自主式:kubernetes直接创建出来的Pod,…...

嵌入式学习笔记——认识STM32的 GPIO口

寄存器开发STM32GPIO口前言认识GPIOGPIO是什么GPIO有什么用GPIO怎么用STM32上GPIO的命名以及数量GPIO口的框图(重点)输入框图解析三种输入模式GPIO输入时内部器件及其作用1.保护二极管2.上下拉电阻(可配置)3.施密特触发器4.输入数…...

类和对象(中)

文章目录 继承的概念继承的语法父类成员访问super关键字子类构造方法super和this初始化protected关键字继承方式final关键字继承与组合一、继承的概念 继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类…...

Java——单词接龙

题目链接 leetcode在线oj题——单词接龙 题目描述 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> … -> sk&#xff1a; 每一对相邻的单词只差一个字母。 对于 1 < i < k 时&#xff…...

HTML DOM 事件监听器

通过JavaScript&#xff0c;我们可以给页面的某些元素添加事件的监听器&#xff0c;当元素触发相应事件的时候监听器就会捕捉到这个事件并执行相应的代码。addEventListener() 方法实例当用户点击按钮时触发监听事件&#xff1a;document.getElementById("myBtn").ad…...

java基本数据类型取值范围

在JAVA中一共有八种基本数据类型&#xff0c;他们分别是 byte、short、int、long、float、double、char、boolean 整型 其中byte、short、int、long都是表示整数的&#xff0c;只不过他们的取值范围不一样 byte的取值范围为-128~127&#xff0c;占用1个字节&#xff08;-2的…...

maven的安装配置

目录 1. Maven的安装配置 1.1检测jdk的版本 1.2下载maven 1.3配置maven环境变量 2.认识maven的目录结构 2.1 创建一个文件夹作为项目的根目录 1.创建如下结构的目录 2. 在pom.xml文件中写入如下内容(不用记忆) 3.在mian-->java--》下边创建java文件​编辑 4.cmd下…...

【转载】System Verilog 上下文context的含义以及设置导入函数的作用域

放丢失&#xff0c;转载一下&#xff0c;原文&#xff1a;https://blog.csdn.net/qq_31348733/article/details/1010546251. 上下文(context)的含义导入函数的上下文是该函数定义所在的位置&#xff0c;比如$unit 、模块、program或者package作用域(scope)&#xff0c;这一点跟…...

redis数据类型

Redis 数据类型 redis无论什么数据类型&#xff0c;在数据库中都是以key-value形式保存&#xff0c;并且所有的key(键)都是字符串&#xff0c;所以讨论基础数据结构都是讨论的value值的数据类型 1. 字符串操作 set key value [ex seconds] [px milliseconds] [nx|xx] 设置ke…...

【独家】华为OD机试 - 最多获得的短信条数(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

【剧前爆米花--爪哇岛寻宝】包装类的装拆箱和泛型的擦除机制

作者&#xff1a;困了电视剧 专栏&#xff1a;《数据结构--Java》 文章分布&#xff1a;这是关于数据结构的基础之一泛型的文章&#xff0c;希望对你有所帮助。 目录 包装类 装箱 装箱源码小细节 拆箱 泛型 什么是泛型 泛型编译的擦除机制 不能实例化泛型类型数组 包装…...

BufferQueue研究

我们在工作的过程中&#xff0c;肯定听过分析卡顿或者冻屏问题的时候&#xff0c;定位到APP卡在dequeueBuffer方法里面&#xff0c;或者也听身边的同事老说3Buffer等信息。所以3Buffer是什么鬼&#xff1f;什么是BufferQueue?搞Android&#xff0c;你一定知道Graphic Buffer和…...

【计组笔记08】计算机组成与原理之IO设备系统(输入、输出设备、外存储器)

这篇文章,主要介绍计算机组成与原理之IO设备系统(输入、输出设备、外存储器)。 目录 一、IO设备系统 1.1、IO系统的演变 (1)早期阶段 (2)接口模块和DMA阶段...

使用Vue实现数据可视化大屏功能(一)

导语   现在在很多的工程项目中&#xff0c;都有有关于数据大屏相关的监控内容&#xff0c;这里我们就来看一下如何用Vue来搭建一个数据可视化大屏应用。 创建项目 使用WebStorm工具创建一个Vue的项目。如下图所示&#xff0c;配置好vue的脚手架工具和nodejs的运行环境&#…...

华为OD机试真题Python实现【整数对最小和】真题+解题思路+代码(20222023)

整数对最小和 题目 给定两个整数数组 array1 array2 数组元素按升序排列 假设从array1 array2中分别取出一个元素可构成一对元素 现在需要取出K个元素 并对取出的所有元素求和 计算和的最小值 注意: 两对元素如果对应于array1 array2中的两个下标均相同,则视为同一个元素 �…...

2023年绿色建筑国际会议(ICoGB 2023)

2023年绿色建筑国际会议&#xff08;ICoGB 2023&#xff09; 重要信息 会议网址&#xff1a;www.icogb.org 会议时间&#xff1a;2023年5月19-21日 召开地点&#xff1a;斯德哥尔摩 截稿时间&#xff1a;2023年4月1日 录用通知&#xff1a;投稿后2周内 收录检索&#xff…...

【力扣1653】使字符串平衡的最少删除次数

给你一个字符串 s &#xff0c;它仅包含字符 a 和 b​​​​ 。你可以删除 s 中任意数目的字符&#xff0c;使得 s 平衡 。当不存在下标对 (i,j) 满足 i < j &#xff0c;且 s[i] b 的同时 s[j] a &#xff0c;此时认为 s 是 平衡 的。请你返回使 s 平衡 的 最少 删除次数。…...

链表的中间结点与链表的倒数第k个结点(精美图示详解哦)

全文目录引言链表的中间结点题目描述与思路实现链表的倒数第k个结点题目描述与思路实现总结引言 在上一篇文章中&#xff0c;介绍了反转链表 我们利用了链表是逻辑连续的特点&#xff0c;逆置了链表的逻辑连接顺序&#xff0c;从而实现反转链表&#xff1a; 戳我查看反转链表详…...

防静电监控仪可以检测现场设备是否和实际大地接触

随着电子产品集成化度越来越高&#xff0c;对于电子产品装配来说&#xff0c;静电的危害严重影响到产品的质量、成品率和可靠性, 必须对用于电子产品装配的净化间进行系统防静电措施&#xff0c;将生产过程中的静电危害程度降至最低。近年来电子企业对ESD的危害的深入认识&…...

计算机网络第八版——第二章课后题答案(超详细)

第二章 该答案为博主在网络上整理&#xff0c;排版不易&#xff0c;希望大家多多点赞支持。后续将会持续更新&#xff08;可以给博主点个关注~ 第一章 答案 【2-01】物理层要解决哪些问题&#xff1f;物理层的主要特点是什么&#xff1f; 解答&#xff1a;物理层考虑的是怎…...

超声引导手术中的‘呼吸’难题:我们如何用体外标记法搞定肝部超声-CT的实时配准?

超声与CT影像实时配准&#xff1a;破解呼吸运动干扰的临床实战方案 在肝癌射频消融或穿刺活检手术中&#xff0c;影像引导的精准度直接决定治疗效果。超声凭借其实时性成为首选引导工具&#xff0c;但图像质量局限常需与高分辨率的CT影像融合。这一过程中&#xff0c;呼吸运动导…...

Windows平台APK部署技术探索:轻量级安卓应用安装实践指南

Windows平台APK部署技术探索&#xff1a;轻量级安卓应用安装实践指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在跨平台应用开发与部署日益普及的今天&#xff0…...

Diem存储协议终极指南:如何构建高性能分布式文件存储系统

Diem存储协议终极指南&#xff1a;如何构建高性能分布式文件存储系统 【免费下载链接】diem Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world. 项目地址: https://gitcode.com/gh_mirrors/di…...

Shoelace自动加载器:终极懒加载Web组件完整指南 [特殊字符]

Shoelace自动加载器&#xff1a;终极懒加载Web组件完整指南 &#x1f680; 【免费下载链接】shoelace Shoelace is now Web Awesome. Come see what’s new! 项目地址: https://gitcode.com/gh_mirrors/sh/shoelace Shoelace自动加载器是Shoelace Web组件库中一个革命性…...

VTOL无人机微多普勒特征分析与6G感知技术

1. VTOL无人机微多普勒特征分析的技术背景垂直起降&#xff08;VTOL&#xff09;无人机因其独特的飞行能力在军事和民用领域获得广泛应用&#xff0c;但同时也带来了空域管理的新挑战。传统雷达识别方法主要依赖目标的宏观运动特征&#xff0c;难以精确区分VTOL的不同飞行阶段。…...

Windows 11安卓子系统WSA:在电脑上流畅运行手机应用的完整指南

Windows 11安卓子系统WSA&#xff1a;在电脑上流畅运行手机应用的完整指南 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 你是否曾想过在Windows电脑上直接…...

Windows和Office激活难题?KMS智能激活脚本让你轻松告别烦恼

Windows和Office激活难题&#xff1f;KMS智能激活脚本让你轻松告别烦恼 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾经因为Windows系统突然弹出激活提示而中断工作&#xff1f;是否遇…...

Python 爬虫数据处理:重复页面数据智能合并去重

前言 在规模化 Python 爬虫采集项目中&#xff0c;重复页面数据是高频出现的核心问题&#xff0c;源于站点分页逻辑错乱、镜像页面分发、动态接口返回冗余数据、多入口同源页面采集等多重因素。重复数据若不做处理&#xff0c;不仅会造成数据库存储冗余、占用服务器资源&#…...

别再只调API了!深入Qt QGraphicsView事件流,彻底搞懂拖拽缩放背后的‘为什么’

深入Qt QGraphicsView事件流&#xff1a;从拖拽缩放的底层机制到高效调试 在Qt的图形视图框架中&#xff0c;QGraphicsView、QGraphicsScene和QGraphicsItem构成了一个强大的交互系统。许多开发者虽然能够通过调用API实现基本功能&#xff0c;但当遇到事件被意外吞噬、坐标计算…...

白嫖新网免费云主机,挂QQ机器人亲测可用

申请门槛低&#xff1a;只要手机号&#xff0c;不需要人脸识别&#xff0c;不想太麻烦就选择阿贝云 配置够用&#xff1a;1核1G 20G SSD&#xff0c;挂QQ机器人完全够 国内速度快&#xff1a;独立公网IP&#xff0c;延迟低&#xff0c;不掉线申请花了不到5分钟&#xff0c;装完…...