功能
- 维持集群中一定数量pod的replics处于运行状态
- pod异常时,自动创建新的replics
- 管理pod的生命周期
- 尽量让所有的pod都通过RC创建,即使一个,RC能保证pod服务的稳定性
Labels on the ReplicationController
- .metadata.labels一般和.spec.template.metadata.labels 相同,
- 如果.metadata.labels没有设置,那么会默认和.spec.template.metadata.labels 相同
- .metadata.labels 和 .spec.template.metadata.labels 允许不同
- 一般的做法,只设置.metadata.labels
Pod Selector
- .spec.template.metadata.labels 和 .spec.selector 必须保持相同,否则会被api拒绝
- 选择器最好保持与其他object的选择器都不相同,如果相同时ReplicationController会认为其他的pods也是由它创建的(kubectl describe 会筛选出非rc的,但是匹配的selector),
- Kubernetes 不会对selector做唯一性验证,用户必须自己控制
删除rc
删除rc
- 缩小rc中的replics 为0 ,
- 删除每个pod
- 删除rc本身
- 如果产生任何中断,删除流程会重新启动
删除rc,不删除pod
- --cascade=false
- 删除rc后,可以创建新的rc,通过指定相同.spec.selector 将会适配旧的pod,匹配后不会更新存在的pod
从rc中隔离pod
- kubectl edit pod xxx
- 修改label标签(rc通过标签匹配pod)
- 经过一段时间后,会重新创建新的pod,修改标签后的pod就被隔离
- kubectl delete rc 后,隔离的pod还存在
Rolling updates 滚动更新机制
新的更新被采用后,rc会一个个更新pod
kubectl rolling-update 管理RC工具
使用新的RC(新的pod template)一个个更新替换旧的pod
多个rc的应用
多个rc在service中的应用
- 多版本api使用多个rc
- 多个不同的子服务,多个不同的rc
多个rc用于追踪不同的release track
ReplicationController 相关概念
ReplicaSet
支持 set-based选择器的RC
deployment
高级API对象,包含更多功能
Job
批量处理job,或者pod执行流程处理工作,处理完就结束
DamonSet
随着宿主机开启的Dameon Pod,提供机器级别的功能,例如资源监控,机器日志。它的生命周期,跟随着机器的生命周期
网友评论