kubernetes中控制器和标签的示例分析

  介绍

小编给大家分享一下kubernetes中控制器和标签的示例分析,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

01 k8中的常用控制器

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

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

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

RC控制器

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

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

1,预期的荚数量

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

3,创建新舱的舱模板

,,,它的大概结构如下:

apiVersion:六世   :ReplicationController   元数据:   ,,,的名字:rc-mysql-slave   spec :   副本,,,,,2,,#,期望值   ,,,选择器:,,,,#,标签   ,,,,,的应用:mysql   模板:,,,,,,,#,模板   ,,,,,xxx:,, xxx

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

,,,RC一旦定义并提交到美丽的主人,那么控制器经理就会巡检当前存活的目标,并确保当前存活的豆荚等于期望的豆荚,如果多了,则删除,如果少了,则创建。

部署控制器

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

apiVersion:, extensions /vlbetal   kind :部署   元数据:   ,,,的名字:dep-mysql-slave   规范:   ,,,副本:2   ,,,选择器:   ,,,,,,xxxx: xxxx   ,,,模板:   ,,,,,,xxxx: xxxx

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

Statefulset控制器

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

,,在钢筋混凝土和部署生成的圆荚体中,我们只需要生成期望值个吊舱即可,类似1主2从架构中MySQL的2个从库一样。他们没有先后顺序,权重的概念。而Statefulset控制器控制的豆荚,生成顺序或者权重存在一定的逻辑关系,例如MySQL主从架构中,需要先生成主节点,然后在生成从节点,这个时候,使用Statefulset就比较合适。

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

02标签(标签)的概念

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

,,,,标签的含义是标签,它的格式也是键值格式的,它可以附加到k8集群中的某个对象上,包括但不限于仓,节点,RC等。资源对象和标签的绑定关系可以使一对一,也可以是多对一,不同的标签可以对资源进行分组管理。

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

apiVersion :六世   :豆荚   元数据:   ,,,name : myweb   ,,,标签:   ,,,,,,app :, mysql

上面的例子为我们定义一个吊舱,它的标签是应用=mysql。

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

apiVersion :六世   kind : ReplicationController   元数据:   ,,,的名字:myweb   spec :   ,,,replicas : 2   ,,,选择器:   ,,,,,,,app : mysql   ,,,模板:   ,,,,,,,xxxx

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

apiVersion :六世   kind : ReplicationController   元数据:   ,,,的名字:myweb   spec :   ,,,replicas : 1   ,,,选择器:   ,,,,,,matchLabels :   ,,,,,,,,的应用:myweb   ,,,,,,matchExpressions:   ,,,,,,,今天早上,{关键:aaa ,, perator:,拷贝,,价值观:,(mysql-slave)}   ,,,,,,,今天早上,{关键:bbb ,, operator :, Notin ,,价值观:,[mysql-master)}   ,,,模板:   ,,,,,,,xxxx

kubernetes中控制器和标签的示例分析