返回顶部
首页 > 资讯 > 服务器 >浅析kubernetes的控制器和标签
  • 692
分享到

浅析kubernetes的控制器和标签

2024-04-02 19:04:59 692人浏览 泡泡鱼
摘要

目录01 k8s中的常用控制器RC控制器Deployment控制器Statefulset控制器02 Label(标签)的概念01 k8s中的常用控制器     &

01 k8s中的常用控制器

      之前我们了解了Pod是k8s集群中调度的最小单元,Pod是由Pause容器+应用容器组成的。

      在k8s中,经常会出现一种资源对象管理另一种资源对象的情况,我们把这类资源对象称之为"控制器"。

      我们简单看看控制器的类型,以及他们的功能,其实每种控制器都有他们的特点,后续我们会逐一分析,现在只需要有个概念即可。

RC控制器

     它定义了一个期望的场景,它声明某种Pod的副本数量任意时刻都符合某个特定的预期值。例如Mysql的一主两从结构,我们期望,任意时刻都有2个从库,如果不够了,就需要扩充一个从库。

     它的定义中,需要下面3个关键参数:

1、预期的Pod数量

2、Pod的标签,也就是一个类型标识

3、创建新Pod的Pod模板

     它的大概结构如下:


apiVersion:vl
kind: ReplicationController
metadata:
    name: rc-mysql-slave
spec :
    replicas: 2  # 期望值
    selector:    # 标签
      app: mysql
    template:    # 模板
      xxx:  xxx

      对照上面的文字,可以看到RC的基本yaml文件模板。

     RC一旦定义并提交到k8s的master,那么controller manager就会巡检当前存活的目标Pod,并确保当前存活的Pod等于期望的Pod,如果多了,则删除,如果少了,则创建。

Deployment控制器

    它是k8s 1.2版本引入的新概念,这个控制器和RC控制器的相似程度达到了90%,它和RC的不同是它可以随时获取当前Pod的"部署进度"。它的yaml文件定义大概如下:


apiVersion: extensions / vlbetal
kind : Deployment
metadata:
    name: dep-mysql-slave
spec:
    replicas: 2
    selector:
       xxxx:xxxx
    template:
       xxxx:xxxx

    有了Deployment之后,使用RC的场景几乎都可以使用Deployment来替代。

Statefulset控制器

    这个控制器也是生成某些Pod的期望值,但是它与RC和Deployment的不同点在于,它生成的Pod是有状态的。

    在RC和Deployment生成的Pod中,我们只需要生成期望值个Pod即可,类似1主2从架构中MySQL的2个从库一样。他们没有先后顺序、权重的概念。而Statefulset控制器控制的Pod,生成顺序或者权重存在一定的逻辑关系,例如MySQL主从架构中,需要先生成主节点,然后在生成从节点,这个时候,使用statefulset就比较合适。

常用的控制器类型还有一些,这些内容我们下次再详细分享,这里我们知道"控制器"的概念即可。

02 Label(标签)的概念

      上一篇文章中,我们说了k8s中Pod的yaml文件中的几个关键字段,今天我们来看另外一个Pod的一个属性,就是Label。

       Label的含义是标签,它的格式也是key-value格式的,它可以附加到k8s集群中的某个对象上,包括但不限于Pod,node,RC等。资源对象和Label的绑定关系可以使一对一,也可以是多对一,不同的label可以对资源进行分组管理。

       当我们给某个资源打上标签后,就可以使用标签选择器Label Selector来选择这个资源进行调度,如下:


apiVersion : vl
kind: Pod
metadata:
    name : myWEB
    labels:
       app : mysql

上面的例子为我们定义一个Pod,它的标签是app=mysql。

然后我们定义一个"控制器",利用控制器中的标签选择器selector,让它选择这个app=mysql的这个Pod,并保持这个Pod在集群中有2个副本,方法如下:


apiVersion : vl
kind : ReplicationController
metadata:
    name: myweb
spec :
    replicas : 2
    selector:
        app : mysql
    template:
        xxxx

新版本的Selector还可以指定更为详细的筛选条件,它主要借助下面参数:


apiVersion : vl
kind : ReplicationController
metadata:
    name: myweb
spec :
    replicas : 1
    selector:
       matchLabels :
         app: myweb
       matchExpressions:
        - {key: aaa , perator: In , values: [mysql-slave]}
        - {key: bbb , operator : Notin , values: [mysql-master)}
    template:
        xxxx

一个参数是matchLabels,他后面可以跟多个key-value格式的label条件;

另外一个参数是matchExpression,它可以指定一个数组,并结合条件运算,上述例子中表示aaa参数在mysql-slave中,而bbb参数不在mysql-master中的那些Pod

如果这两个参数同时出现,则会自动取AND,以他们的交集作为最终的筛选条件去筛选Pod

可以看到,标签的使用,使得"控制器"选择被控制对象,更加灵活,更加方便了。

以上就是浅析kubernetes的控制器和标签的详细内容,更多关于kubernetes 控制器和标签的资料请关注编程网其它相关文章!

--结束END--

本文标题: 浅析kubernetes的控制器和标签

本文链接: https://lsjlt.com/news/122748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅析kubernetes的控制器和标签
    目录01 k8s中的常用控制器RC控制器Deployment控制器Statefulset控制器02 Label(标签)的概念01 k8s中的常用控制器     &...
    99+
    2024-04-02
  • kubernetes中控制器和标签的示例分析
    小编给大家分享一下kubernetes中控制器和标签的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!01 k8s中的常用控制器      之前我们了解了Pod是k8s集群中调度的最小单...
    99+
    2023-06-14
  • 浅析JavaScript中的程序控制流和函数
    从字面上就能理解他们的含义。简单示例如下:<script> console.log("Pear"=="Pear"); console.log(5<4); console.log...
    99+
    2022-11-22
    javascript
  • 删除无法运行 kubernetes 操作员控制器的指标
    php小编鱼仔介绍:在使用kubernetes操作员控制器时,我们有时会遇到删除无法运行的指标的情况。这可能会导致运行时错误和不一致性。为了解决这个问题,我们需要采取一些步骤来删除这些...
    99+
    2024-02-10
  • 浅析form标签中的GET和POST提交方式区别
    目录form标签中的GET和POST1.form表单使用post方式提交的例子2.form表单使用get方式提交的例子3.一键多值的getlist方法后端如何通过获取多选框用户选中的...
    99+
    2024-04-02
  • 深入浅析Java中的条件控制与循环控制
    今天就跟大家聊聊有关深入浅析Java中的条件控制与循环控制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。条件控制语句:1. if-else语句if(条件1){代码块1;}else i...
    99+
    2023-05-31
    java 循环控制 条件控制
  • 一文浅析Golang中的流程控制
    本篇文章带大家学习一下Golang,聊聊Go语言基础中的流程控制,希望对大家有所帮助。Go语言基础之流程控制主要包括以下内容:条件语句if条件语句switch条件语句select循环语句for循环语句range循环控制Goto、B...
    99+
    2023-05-14
    流程控制 后端 Go
  • MySQL中流程控制和游标的示例分析
    小编给大家分享一下MySQL中流程控制和游标的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!学习或者了解过编程语言的都知道,任何一门编程语言都不可能只通过一两句语句代码完成。流程控...
    99+
    2024-04-02
  • 如何在GitLab中进行版本控制和标签管理
    如何在GitLab中进行版本控制和标签管理简介:在软件开发过程中,版本控制是一个重要的环节。GitLab作为一个强大的版本控制系统,为团队协作提供了便利。本文将介绍如何使用GitLab进行版本控制和标签管理,并提供具体的代码示例。一、创建项...
    99+
    2023-10-27
    gitlab 版本控制 标签管理
  • HTML5 video标签播放控制的技巧有哪些
    这篇文章主要介绍“HTML5 video标签播放控制的技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5 video标签播放控制的技巧有哪些”文章能...
    99+
    2024-04-02
  • Java中常见的并发控制手段浅析
    目录前言1.1 同步代码块1.2 CAS自旋方式1.3 锁1.4 阻塞队列1.5 信号量Semaphore1.6 计数器CountDownLatch1.7 栅栏 CyclicBarr...
    99+
    2024-04-02
  • 控制字体加粗显示的html标签是哪个
    这篇文章主要介绍了控制字体加粗显示的html标签是哪个,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。控制字体加粗显示的html标签:1、“<b>”标签,可以定义粗...
    99+
    2023-06-15
  • 解密 HTML noscript 标签的秘密:掌握脚本控制
    在 Web 开发中,控制脚本执行对于确保安全性和用户体验至关重要。HTML noscript 标签提供了一种在脚本禁用时显示替代内容的优雅解决方案。本指南将深入探索 noscript 标签,揭示其强大功能和使用技巧。 noscript 标...
    99+
    2024-04-02
  • 浅析React中的受控组件和非受控组件
    目录非受控组件 受控组件 注意 结论 非受控组件 表单数据由DOM本身处理。即不受setState()的控制,与传统的HTML表单输入相似,input输入值即显示最新值(使用 re...
    99+
    2024-04-02
  • VISION控制器标定及网络分析工具
          VISION 标定和数据采集软件是一个强大的集成工具包,各个工具包可以无缝组合在一起,提供集成的可定制的应用程序,从而能够实现完整的标定和数据分析功能,包括从电子控制单元及外部源收集数据,测量输入和...
    99+
    2023-06-03
  • 更新 golang 中自定义 Kubernetes 控制器的状态
    php小编柚子为您带来最新的技术分享:本文将深入探讨如何在golang中自定义Kubernetes控制器的状态更新。Kubernetes作为一个开源容器编排引擎,已成为云原生应用开发的...
    99+
    2024-02-11
    overflow
  • ElementUI中<el-form>标签中ref、:model、:rules的作用浅析
    目录首先看一下代码Element官方文档中写到:补充:注意点总结首先看一下代码 <el-form ref="loginForm" :model="log...
    99+
    2023-01-31
    el-form ref属性 el-form ref el-form的rules
  • html5中p标签默认和div标签默认属性的示例分析
    这篇文章主要为大家展示了“html5中p标签默认和div标签默认属性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5中p标签默认和div标签默...
    99+
    2024-04-02
  • CSS中DIV标签如何实现定位单元的控制
    这篇文章将为大家详细讲解有关CSS中DIV标签如何实现定位单元的控制,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。你对CSS中DIV标签的用法是否了解,DIV的起始标签和...
    99+
    2024-04-02
  • html中如何使用pre标签对空行和空格进行控制
    这篇文章主要为大家展示了“html中如何使用pre标签对空行和空格进行控制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html中如何使用pre标签对空行和空格...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作