当前位置:网站首页>kubernetes之ReplicationController与ReplicaSet
kubernetes之ReplicationController与ReplicaSet
2022-07-26 16:07:00 【keyson R】
kubernetes之ReplicationController与ReplicaSet
文章目录
ReplicationController组成部分
一个ReplicationController 有三个主要部分组成:
label selector(标签选择器):用于确定ReplicationController作用域中有哪些pod。replica count(副本个数):指定应运行的pod数量。pod template(pod模板):用于创建新的pod副本。
上面三个部分都可以随时修改,其中replica count即副本个数变更会影响现有的pod。更改标签选择器
会使现有的pod脱离ReplicationController的范围,因此控制器会停止关注它们。
使用ReplicationController的好处
- 确保一个
pod或多个pod副本持续运行,方法是在现在pod丢失时启动一个新pod。 - 集群节点发生故障时,它将为故障节点上运行的所有
pod(即受ReplicationController控制的节点上的pod)创建替代副本。 - 它能轻松实现
pod的水平伸缩。
编辑ReplicationController
查看拥有的rc:kubectl get rc
编辑rc:kubectl edit re kubia
删除ReplicationController并保持pod正常运行
当使用 kubectl delete删除ReplicationController时,可以通过给命令增加--cascade=false选项来保持pod运行。
即:kubectl delete rc kubia --cascade=false
使用ReplicaSet而不是ReplicationController
ReplicaSet是新一代的ReplicationController,并且将旧的完全替换掉,即ReplicationController最终将被弃用。
也就是说我们应该创建ReplicaSet而不是ReplicationController,它们几乎完全相同,所以不会有什么学习成本。
ReplicaSet的优点是什么?
其pod选择器的表达能力更强。举个例子,单个ReplicationController无法将pod与标签env=a与env=b同时匹配,它只能匹配带
有env=a标签或env=b标签的pod。但ReplicaSet可以匹配两组pod并将它们视为一个大组。
可以通过matchExpressions属性来重写选择器,如部分示例:
selector:
matchExpressions:
- key: app # 此选择器要求该pod包含名为app的标签
operator: In
values:
- dev # 标签值必是values值:即dev
如上示例,每个表达式都必须包含一个key,一个operator(运算符),并且可能还有一个values的列表(取决于运行符)。
有效的运行符:
In:Label的值必须与其中一个指定的values匹配。NotIn:Label的值与任何指定的values不匹配。Exists:pod必须包含一个指定名称的标签,值不重要,使用此运算符时,不应指定values字段。DoesNotExist:pod不得包含有指定名称的标签。values属性不得指定。
要注意的是,如果指定了多个表达式,则所有这些表达式都必须为true才能使选择器与pod匹配。如果同时指定matchLabels和matchExpressions,
则所有标签都必须匹配,并且所有表达必须计算为true,才能使该pod与选择器匹配。
如何定义ReplicaSet?
一样是创建yaml文件,不过要注意的是ReplicaSet不是V1 API的一部分,但属于apps API组的v1beta2版本。因此你需要确保在
创建资源时指定正确的apiVersion。除kind需要由ReplicationController改成ReplicaSet,其它的内容与创建ReplicationController大致相同。
值得注意的是ReplicaSet缩写是rs。可能通过kubectl get rs来查看ReplicaSet。
参考书籍:《Kubernetes in action》
边栏推荐
- Linux安装mysql8.0.29详细教程
- Compiler analysis of clojure operation principle
- Clojure operation principle bytecode generation
- 综合设计一个OPPE主页--顶部,头部的设计
- Re8:读论文 Hier-SPCNet: A Legal Statute Hierarchy-based Heterogeneous Network for Computing Legal Case
- Modify the password of the root user of MySQL database
- How to configure tke cluster node Max pod
- Pat class a 1047 student list for course
- Parker solenoid valve d1vw020dnypz5
- 【物理模拟】超简单的shape matching模拟刚体运动
猜你喜欢

Google Earth Engine——MERRA-2 M2T1NXSLV:1980-至今全球压力、温度、风等数据集

German EMG electric actuator eb800-60ii

Mapwithstate of spark streaming state flow
最终一致性性分布式事务 TCC
![[ten thousand words long text] Based on LSM tree thought Net 6.0 C # realize kV database (case version)](/img/84/640de0bf779cd45498204909be56d1.png)
[ten thousand words long text] Based on LSM tree thought Net 6.0 C # realize kV database (case version)

SQL statement -- single line comment and multi line comment

【物理模拟】最简单的shape matching的原理与实践

综合设计一个OPPE主页--明星机型的设计

研发效能的道与术 - 道篇

Bugku login1
随机推荐
2022牛客暑期多校训练营2(BDGHJKL)
vlang捣鼓之路
Mapwithstate of spark streaming state flow
该怎么写单元测试呢
C # set different text watermarks for each page of word
spark-streaming状态流之mapWithState
Interface test for quick start of JMeter
使用 ClojureScript 开发浏览器插件的过程与收获
最终一致性性分布式事务 TCC
Want the clouds in the picture to float? Video editing services can be achieved in three steps with one click
[BJDCTF2020]Easy MD5
Octree establishes map and realizes path planning and navigation
Jmeter快速上手之接口测试
工作流引擎在vivo营销自动化中的应用实践
ACL-IJCAI-SIGIR顶级会议论文报告会(AIS 2022)笔记3:对话和生成
Google Earth engine - merra-2 m2t1nxaer: aerosol daily data set from 1980 to 2022
物联网工业级串口转WiFi转网口转以太网模块的选型
How to configure tke cluster node Max pod
想让照片中的云飘起来?视频编辑服务一键动效3步就能实现
Bugku login2