Kubernetes入门系列之ReplicationController(RC)和ReplicaSet(RS)说明 – 21运维
通知: .-...

Kubernetes入门系列之ReplicationController(RC)和ReplicaSet(RS)说明

K8S 21运维 728浏览

一,Kubernetes Replication Controller:
1,概念
ReplicationController(简称RC)是确保用户定义的Pod副本数保持不变。

在用户定义范围内,如果pod增多,则ReplicationController会终止额外的pod,如果减少,RC会创建新的pod,始终保持在定义范围。
ReplicationController会替换由于某些原因而被删除或终止的pod,例如在节点故障或中断节点维护(例如内核升级)的情况下。
即使应用只需要一个pod,我们也建议使用ReplicationController。
RC跨多个Node节点监视多个pod。

2,管理
删除ReplicationController及其Pods:
使用kubectl delete命令删除ReplicationController及其所有pod。
只删除 ReplicationController:
在删除ReplicationController时,可以不影响任何pod。
使用kubectl,为kubectl delete指定- cascade = false选项。
ReplicationController隔离pod:
通过更改标签来从ReplicationController的目标集中删除Pod。

3,RC常用方式:
Rescheduling(重新规划)
扩展
滚动更新
多版本跟踪
使用ReplicationControllers与关联的Services

4,API对象:
Replication controller是Kubernetes REST API中的顶级资源。

 

 

二,Kubernetes ReplicaSets:

1,说明
ReplicaSet(RS)是Replication Controller(RC)的升级版本。
ReplicaSet 和  Replication Controller之间的唯一区别是对选择器的支持。
ReplicaSet支持labels user guide中描述的set-based选择器要求
Replication Controller仅支持equality-based的选择器要求。
2,RC 替代方法:
(1)ReplicaSet:
ReplicaSet是支持新的set-based选择器要求的下一代ReplicationController 。
主要用作Deployment协调pod创建、删除和更新。请注意,除非需要自定义更新编排或根本不需要更新,否则建议使用Deployment而不是直接使用ReplicaSets。
(2)Deployment(推荐):
Deployment是一个高级的API对象,以类似的方式更新其底层的副本集和它们的Pods kubectl rolling-update。
Bare Pods:
与用户直接创建pod的情况不同,ReplicationController会替换由于某些原因而被删除或终止的pod,例如在节点故障或中断节点维护(例如内核升级)的情况下。
即使应用只需要一个pod,我们也建议使用ReplicationController。

3,对比

大多数kubectl 支持Replication Controller 命令的也支持ReplicaSets。
ReplicaSets可以独立使用,但它主要被 Deployments用作pod 机制的创建、删除和更新。
使用Deployment时,你不必担心创建pod的ReplicaSets,因为可以通过Deployment实现管理ReplicaSets。
ReplicaSet能确保运行指定数量的pod。
Deployment 是一个更高层次的概念,它能管理ReplicaSets,并提供对pod的更新等功能。
建议使用Deployment来管理ReplicaSets,除非你需要自定义更新编排。

ReplicaSet as an Horizontal Pod Autoscaler target:
ReplicaSet也可以作为 Horizontal Pod Autoscalers (HPA)的目标 。
一个ReplicaSet可以由一个HPA来自动伸缩。

内容整理自Kubernetes中文社区:https://www.kubernetes.org.cn/

转载请注明:21运维 » Kubernetes入门系列之ReplicationController(RC)和ReplicaSet(RS)说明